扭曲变换加密 【目前防止软件被破解最好的方法】

验证码进化史:从文本扭曲到无感行为分析的技术攻防与未来 验证码(CAPTCHA)作为区分人类与计算机程序的核心安全机制,其技术原理经历了从依赖人机识别能力差异到基于行为模式分析的深刻演变。早期基于扭曲文本的验证码,利用OCR技术对形变字符处理的弱点来防御自动化脚本,但其安全性与用户体验的平衡始终是挑战。随着深度学习在计算机视觉领域的突破,图片点选等语义验证码应运而生,通过要求理解图像内容来提升技术门槛,但同时也催生了基于卷积神经网络的自动化破解手段。如今,以reCAPTCHA v3为代表的无感验证技术,通过采集鼠标轨迹、点击节奏等行为指纹,并运用机器学习模型进行 阅读详情
 
扭曲变换加密
作者:刘涛涛 me@liutaotao.com
网址:http://liutaotao.com/nqby.txt
一,一般来讲,加密就是加壳
我们经常考虑,一个可执行文件,怎么样加密才能安全呢?
一般用的手段,是加壳。加壳工具的工作原理,就是把可执行文件的代码与
数据都进行加密变换,作为数据存放。生成的目标文件入口代码是加壳软件
准备好的防跟踪代码。经过漫长的防跟踪代码后,会把原始可执行文件的代码
与数据段恢复,然后跳转到原来的入口处,继续运行。这样做的缺点是,不管
你的加密多强,防跟踪代码多牛,只要一运行,在内存中就全部恢复了。只要
把内存映象dump下来,反汇编一下,就清清楚楚了。甚至有工具可以直接把
dump下来的内存映象存为可执行文件。这样加密就彻底失败了。
简单加壳是不安全的,这大家都知道了。我们一般把上述简单的加壳方式叫“压缩壳”。
所以现在的加壳软件都在上述“压缩壳”的基础上,多做了一些工作,比如:
* 防止内存被 dump 。这实际上是不可能做到的。因为Windows操作系统就不是
一个安全系统,你怎么可能做到内存不被dump呢?曾有一个壳,我用了多种方法
dump都不成功。但最后还是找到了一个方法成功dump了。我这才惊叹dump原来有
这么多种方法,真是防不胜防。
* 修改文件入口代码。因为一般软件都是用常用的几种编译器编译生成的。如果
加壳软件知道你是用什么编译器编的(这很容易),把入口代码破坏掉,用另外一
段功能类似的代码替换它。这样dump下来的代码就比较难找到正确的入口,直接
被存为一个EXE的可能性就小多了。但还是会被反汇编的。
* 还有一些加壳软件,支持对一个或几个重点函数加密。甚至使用了虚拟机。但他们
都只能重点加密少数几个函数,不可能把所有函数都加密。而且对这个函数还有很多
要求。这可以想象。如果用汇编写一个函数,不加ret它可能连函数结束地址都找不到,
怎么可能加密呢
******
尽管加壳软件可以使用以上多种技术防止被跟踪,分析,还原,但我认为,它们仍然没
没摆脱“壳”的这个中心思想。以上的这些技术不过是在“壳”的大前提下所做的一些
小的插曲。它仍然是不安全的
二,扭曲编译的思想
做个比喻。加壳保护就好比是你桌上有宝贝,为了保护它,你在屋外围了一圈铁丝网。只
要有人突破了这道铁丝网,进入你的屋子,一眼就看到了桌上的宝贝。这当然不安全。
重点函数加密的思想,就好比是,我屋外围了一圈铁丝网,我还把宝贝放进了
保险箱里。如果有人突破了铁丝网,进入屋子,一眼就看到了保险箱。虽然保险箱不会被轻
易打开,但他如果把保险箱搬走,慢慢分析呢?这也不够安全。
最安全的,就是进了屋子,却什么也找不着。没有目标,这才是最让人头疼的。
现在的编译器,都是追求生成高效率的运行代码。这些代码的模式基本一成不变。有经验
的程序员看反汇编代码简单跟看源码一样,毫无秘密可言。如果我们有一个编译器,它的编译
目标不是为了高效,而是为了防止被读懂,那该多好啊!我有C++源码,我能看懂。一旦编译,
谁也别想通过反汇编看懂我想做什么,或者很难。遗憾的是,这样的编译器还没有。
如果我们自己编一个这样的编译器呢?不现实。工作量太大了。即使是找一个开源的C++编译器
来改工作量也不得了。
直接做一个会加密的编译器行不通。而一旦编译连接生成EXE后,就只能加壳了。难道就没有办法
了吗?我想出一个主意,就是加密编译的中间文件OBJ,输出ASM文件,用ML编译成OBJ,然后再link连接!
这个方法有几个好处:
* OBJ文件格式相对简单。不象处理C++源文件那么工作量大。
* OBJ文件中保留了很多源文件的信息,比如符号名,代码与数据,标号等等。方便加密。这些信
息很多在LINK的过程中被丢掉了。所以LINK为EXE后再处理就极不方便了。
* 这是一个全新的思想!对代码的加密已经不限于加壳,而是加密每一个函数,每一条指令。再也
没有一目了然的汇编了。
* 可以很容易设定加密的强度。可以根据需要,对一部分代码轻量级加密,而对另一部分代码重点
加密。
* 可以嵌套加密。重复使用几种加密变换,无限制地使代码膨胀
* 因为是加密OBJ文件,所以不管DLL还是EXE都可顺利加密,驱动程序也可以
基于这个思想,我们的加密软件就要出台了!我们暂时叫它扭曲变换器 1.0
三,扭曲变换器
有了思想,就开始动手编码。原以为OBJ文件格式是有文档的,工程进度应该很快。没想到其中还是
有很多内容需要考虑。每每说这是最后一个问题,解决了就没事了,却总是后延。前前后后居然写
了差不多半年时间。
主要遇到的技术问题:
* 汇编器ML会把所有的代码放到一个段中,这是不可以的。CL则通常是一个函数一个段。
* 汇编器ML不能生成 COMDAT 段。尽管文档中讲它支持COMMON,但加了这个关键字无效果。
* 汇编器ML不支持 WEAKEXTERN
* 汇编器ML只支持 defaultlib 这一个 drectve 关键字,其它 export, include 等关键字不支持.
总之,CL编译的OBJ其中有很多属性是ML无法生成的。微软的masm真的该升级了。
还有一些问题:
* 分不清代码与数据。数据段中肯定是数据,但代码段中却有可能不是代码,是数据。这时如果你试图
反汇编它,就会出错。
* ?????
不管怎样,这些问题都一一解决了(别问我怎么做的)。
采用的代码扭曲方法:
* 用 JMP 把代码打乱。这已经不是什么新鲜的招数了,但它依然有效。
* 用 JMP 把多个函数缠绕在一起。这样可以让分析者找不到函数从什么地方开始,到什么地方结束。
* 把 call 改掉。破解者对 call 是极敏感的,这举可以让他找不到一个 call。比如,我可以把
 call sub1
    改为:
 mov eax, offset sub1 + 3
 push offset @1
 sub eax, 3
 jmp eax
    @1:
* 把 ret 改掉。破解者对 ret 是极敏感的,这举可以让他找不到一个 ret。比如,我可以把ret写作
 push ecx
 mov ecx, [esp+4]
 add esp,8
 jmp ecx
* 改条件跳。条件跳也是极敏感的指令,比如我们可以把
        cmp reg1, reg2
        jge L_DST    
    L_NEXT:
写作:
        push eax
        mov eax, reg1
        sub eax, reg2
        shr eax, 1fh
        neg eax
        and eax, L2 - L1
        add eax, L1
        jmp eax
    L1:
        pop eax
        jmp L_DST
    L2:
        pop eax
    L_NEXT:
 再看这个,你能看懂是什么意思吗
push offset @@L - offset L_3 + 23h
jmp L_1
L_2:
        jz L_3
        ret 4
L_3:      
        add dword ptr [esp+4], offset L_3 - 23h
        add esp,4
        ret
L_1:
call L_2
        ...
 这里出现了call和ret,但又不是一般所期望的那种。这里的call不代表你发现了一个函数调用。
这里的ret不代表是一个函数的结束。
* 使用堆栈代替寄存器。比如:
 MOV     EAX, DWORD PTR [ECX+0AD8h]
 PUSH    EAX
 MOV     ECX, DWORD PTR [EAX]
可以写作:
 PUSH    EAX
 PUSH    ECX
 MOV     EAX, DWORD PTR [ESP]
 ADD     EAX, 0AD8h
 MOV     EAX, DWORD PTR [EAX]
 MOV     DWORD PTR [ESP+04h], EAX
 PUSH    DWORD PTR [ESP+04h]
 MOV     EAX, DWORD PTR [ESP]
 MOV     DWORD PTR [ESP+08h], EAX
 MOV     EAX, DWORD PTR [ESP]
 MOV     EAX, DWORD PTR [EAX]
 MOV     DWORD PTR [ESP+04h], EAX
 MOV     EAX, DWORD PTR [ESP]
 MOV     ECX, DWORD PTR [ESP+04h]
 ADD     ESP, 08h
你能看懂吗?很明显,这个变换是不可逆变换。因为它本来使用了哪个寄存器,已经没有办法知道了。
* ……还可以想出很多扭曲变换的方法。化繁为简只有一种方法,化简为繁可以有无穷多种方法。
还有一些功能:
* 在C语言中,使用 #pragma code_seg(".code$curve_NoChange") 来指示后面的代码不做任何加密。因
为有时候有些代码含有大量的循环,加密它会严重影响效率。
* 在C语言中,使用 #pragma code_seg(".code$curve_Max") 来指示后面的代码重点加密。比如后面是
与注册算法相关。
现在的扭曲变换器我叫它1.0版,已经非常稳定了。我用它把VC6的库文件LIB都处理了一遍,再用LIB.exe工具
写回LIB文件中,我们就有了一套加密后的库。如果用这套库来LINK你的软件,分析者就很难从汇编中找到哪
个是printf哪个是strcpy,IDA也无法识别MFC静态链接的库函数了。能把VC6的库都加密一遍不出错,我
相信它已经很强壮很稳定了。
用它来加密我们做的一个共享软件,就再也没人写出注册机了。去读懂大量的经过以上变换的代码是不可
想象的。但还是有人暴破了,真佩服他。我会不断丰富加密方法,让暴破者都放弃。
现在的扭曲变换器还只支持VC6使用的COFF格式的OBJ,下一步,要分析一下VS2005的OBJ格式,尽快支持它。
我经常喜欢反汇编一下,分析点什么东西。我有不少朋友也经常在做反汇编或破解的工作。我不希望扭曲变换
器在网上一公布,被广泛使用。有一天我想分析点什么却无法下手。所以,这软件暂时还不提供下载,也不出售。
如果你有一段小程序想测试一下,可以把OBJ发给我,我加密一下给你。如果你有一个商业项目需要安全地加密,
也可以谈谈。
附上一个为CCG写的crackme,用扭曲变换器加密,带部分源码,供参考。
 http://liutaotao.com/CrackMe.zip

 LiuTaoTao 2006.7.7
有几点:
    * 本软件暂时不对外发布,只自己使用。如果有朋友想对自己的代码加密,
可以把OBJ文件发给我加密。防止所有的软件都用这个加密,我们会IDA的就没饭吃了 :(

    * 现在只支持VC6的OBJ格式,就是 COFF. 下一步想支持VS2005的OBJ格式,
遇到了问题。VS2005的debug编译OBJ还是 COFF, 但 release 编译的OBJ就不知道是什
么格式了,找不到资料。有哪位朋友能帮助解决一下这个问题?谢谢

allyesno:附bob破解过程

我们以 用户名 12345678
 错误的注册码 33333333  为例题

在40147E处下断,我们可以看到 程序把 我们的注册码 算成了16进制的 12 12 12 12 AF AF AF AF 然后后面继续,在40180A处把我们的注册码 算成 15 16 17 18 B6 B7 B8 B9。。。。。
然后再 405310 把我们的 用户名 展成 31 32 33 34 35 36 37 38。。
到此处为止 在堆栈里 把我们的用户名 注册码展成
堆栈地址 12FF18:
假注册码部分16进制:
32 12 12 12 AF AF AF AF 15 16 17 18 B6 B7 B8 B9 1D 1E 1F 20 BE BF C0 C1 25 26 27 28 C6 C7 C8 00
用户名部分:
31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37

展开后就是用户名与注册码混合运算了,

在40226A 处可以看到运算的结果(这个过程最为复杂,的确没时间仔细分析,所以没细看)

在 4083DD 处我们可以看到 
SUB EAX,3467ABDE  

这就是爆破口,把他改成 MOV EAX,00
爆破成功!!!!

小弟不才,献丑了!!!

我很怀恋我的老师(紫竹),希望我的老师身体健康,万事如意!
QQ:6237126

:eek: 我不能传附件吗?哭。。。。反正就是爆破 4083DD处,把他改为 B8 00 00 00 00, 运行就OK了!!!


验证码攻防演进史:从文本扭曲到行为光谱分析 CAPTCHA(全自动区分计算机和人类的图灵测试)是人机交互中基础且关键的安全机制,其核心原理在于利用人类视觉认知与行为模式的天然优势,构建机器难以模仿的识别门槛。随着OCR、深度学习与行为建模技术持续突破,验证码已从早期扭曲文字进化为融合图像识别、鼠标轨迹、设备指纹与实时评分的多维验证体系。这一演进不仅提升了对抗自动化攻击的能力,更催生了众包标注、自动驾驶数据采集等意外技术价值。当前主流方案如reCAPTCHA v3已转向无感式行为光谱分析,将安全判断隐于日常交互之中。本文基于真实攻防实践,解析验证码四代 阅读详情

相关推荐

逆向破解易盾文字点选验证码:从JS调试到拟人化轨迹生成

验证码作为区分人机操作的核心安全机制,其基本原理是通过图像、逻辑或行为挑战来拦截自动化程序。文字点选验证码是其中一种交互式验证方式,它要求用户识别并点击图片中的特定文字,其技术价值在于结合了OCR识别与行为分析,能有效防御简单的脚本攻击。在实际的Web安全与数据采集场景中,自动化程序需要模拟人类操作以通过此类验证,这涉及到对前端加密逻辑的逆向分析、坐标变换的解密以及拟人化鼠标轨迹的生成。本文以易盾验证码为例,深入剖析了其动态加载、坐标混淆和AES加密等反爬机制,并详细介绍了如何使用Python结合ddddo

weixin_33853794的博客 413

KCTF-CCG CrackMe crypto 1.0

到这里,逻辑分析完了,破解思路就是先计算Name的MD5,然后将前8个字节进行RC4解密,得到未编码的serial的前8字节,再根据已知e,n,c求出第9字节开始的数字,最后进行base64编码。sub_4088A0就是未修改的MD5Transform,可以看出,sub_408340和 sub_4085F0计算了Name的MD5.提示成功了,但运行不了,拖入IDA,发现逻辑正常,估计是加了保护,也懒得看,直接分析源码。之后判断MD5的前8个字节,与Serial解码后的前8个字节RC4加密后相同。

geesehoward20000的博客 909

EXE加密V7.1增强版VIP2——专业级软件保护解决方案

主流加壳工具按照开源与否可分为两大阵营:一类是以UPX为代表的开源压缩壳,广泛用于合法软件打包;另一类是以ASPack、FSG、MEW为代表的早期私有壳,曾大量出现在病毒与盗版软件中。尽管时代演进,这些工具仍具有研究价值,因其行为模式构成了现代壳检测的基础知识库。是目前最流行的开源压缩壳,支持多种平台(Windows、Linux、macOS)和架构(x86、x64、ARM)。其核心优势在于高压缩率与良好的兼容性。UPX采用LZMA算法对.text.data。

weixin_42596246的博客 1029

MFC程序逆向 – 消息篇

作 者: szdbg时 间: 2007-10-31,06:26:02链 接: http://bbs.pediy.com/showthread.php?t=54150 前言: 记得前一段时间,我刚接触软件破解和逆向这一行时,对于一些软件不知从何处跟踪按钮消息,试了好多方法,就是断不下来,在系统模块中经常转得晕头转向,而一无所获。 MFC程序是一种常见类型的程序,我静下心来,潜心研究了一下MFC消息...

phenixyf的专栏 1494

滴水三期二进制加密壳设计与实现

反调试技术可以分为两大类:静态反调试和动态反调试。静态反调试是在程序编译后的静态代码中插入无法通过静态分析识别的逻辑,如使用加密的代码段、垃圾代码、假分支等,使得静态分析变得异常困难。动态反调试则依赖于运行时环境,其通过检测调试器的存在、检测操作系统的行为异常等方式来阻止调试。例如,可以检测系统时间间隔的变化来判断是否运行在调试器下,因为调试器的单步执行会导致程序运行时间的异常变化。在数字安全领域,加密算法作为保护数据不被未经授权访问和篡改的基石,一直扮演着至关重要的角色。

weixin_42153793的博客 1528

RC4加密算法详解

RC4(也称为 Rivest Cipher 4)是流密码的一种形式,流密码逐字节操作数据流。RC4 流密码是使用最广泛的流密码之一,它通过算法一次一个字节地加密消息,简单并且操作速度快。RC4是一种在电子信息领域加密的技术手段,用于无线通信网络,是一种电子密码,只有经过授权的用户才能享受该服务,使用 64 位或 128 位密钥大小。它通常用于安全套接层 (SSL)、传输层安全 (TLS) 等应用,也用于 IEEE 802.11 无线 LAN 标准。在存储大量的信息时,RC4展现出它的实用性,面对大量的数据,

weixin_43211186的博客 1万+

MFC 实现程序有效使用期方法

获取当前系统时间 CTime time = CTime::GetCurrentTime(); //获取系统日期 CString date = time.Format(_T("%Y-%m-%d %H:%M:%S %W-%A"));//2006-10-13 17:23:47 41-Friday 时间比较 如果当前时间大于指定的时间,函数返回false bool CompareTime(int nYear, int nMonth, int nDay) { CTime t(nYear, nMonth

my_angle2016的博客 418

原子力显微镜AFM图像处理软件Gwyddion使用教程(图文)

Gwyddion使用教程Gwyddion简介Gwyddion user guide下载地址本次教程用的AFM扫描图像下载地址AFM/STM校准样品Gwyddion使用step1step2step3step4step5step6step7step8你没见过的CD磁道到底长啥样一张图总结 Gwyddion简介        &nbs...

王纯配的博客 5万+

记:破解MFC小程序02

在很久很久以前,有几个加密过的小程序 然后,他们被我破解了…. 现在我们来破解第三个小程序打开之后的页面是这样的感觉和上一个程序一样是输入正确密码才可以点亮“确定”按钮,运行程序后发现,这九个按钮只有 0 和 1这两个状态,那么肯定也是通过匹配正确密码来达到点亮“确定”按钮的目的的那么我们就像上次一样找到关键的几个密码就可以了还是找特征码,怎么找特征码我在破解MFC小程序01中已经详细说明了,不

DSQSYSPA的博客 833

DDR5内存设计实战:如何通过CA_ODT引脚优化信号完整性(附配置示例)

本文深入探讨DDR5内存设计中CA_ODT引脚的配置与优化策略,通过Group A/Group B分组控制提升信号完整性。详细解析了ODT机制、PCB布局要点及寄存器配置方法,并附实战案例与配置示例,帮助工程师解决高速信号传输中的反射问题,确保DDR5系统稳定运行。

weixin_29202213的博客 396

【Agora 本地录制最全总结- 基于Java SDK】

Agora 本地服务端录制

lizhengze1117的博客 1790

换一种方式做加密—著名程序员刘涛涛谈扭曲加密变换技术

换一种方式做加密—著名程序员刘涛涛谈扭曲加密变换技术 作者:刘涛涛 发布时间:2009-10-26 5:37:19 什么是扭曲加密变换呢?这是我开发的一款软件,可能官方的名词叫做“混淆加密”,我给自己的软件起名叫做扭曲加密变换技术。我断断续续用了一年多的时间开发这款软件,但是

Jingle的专栏 2069

大模型风电功率预测:短期,超短期,中长期的完整实现与代码详解

本文全面介绍了基于深度学习大模型的风电功率预测方法,涵盖超短期(15分钟-1小时)、短期(1-6小时)和中长期(1天-1周)三种时间尺度。文章详细阐述了数据准备与特征工程,包括数据收集、预处理和可视化分析。针对不同时间尺度,分别介绍了Temporal Fusion Transformer (TFT)、Informer和N-BEATS模型的构建、训练与评估方法,并提供了完整的开源代码实现。此外,文章还探讨了模型部署与生产环境集成,包括模型保存与加载、实时预测API以及模型监控与再训练。最后,文章总结了关键创新

专注AI大模型,软件混淆,授权 1887

扭曲变换加密

创建时间:2006-10-22 原文链接:http://www.xfocus.net/articles/9.html   扭曲变换加密 作者:刘涛涛 me@liutaotao.com网址:http://liutaotao.com/nqby.txt 一,一般来讲,加密就是加壳 我们经常考虑,一个可执行文件,怎么样加密才能安全呢? 一般用的手段,是加壳。加壳工具的工作原理,就是把可执

cwjxiuxing的专栏 407

基于STFT和卷积神经网络的时序数据分类

我们提供了相应的代码和数据,读者可以直接运行并尝试在自己的数据集上进行分类实验。在本文中,我们将介绍一种基于短时傅里叶变换(STFT)和卷积神经网络(CNN)的时序数据分类方法。我们将提供可直接运行的代码和数据,以帮助读者理解和实现这一方法。STFT可以提取信号的频谱信息,有助于捕捉时序数据中的关键特征。在这个例子中,我们将使用一个简化的手势识别数据集作为示例。在这段代码中,我们使用Adam优化器和稀疏分类交叉熵损失函数进行模型的编译。然后,我们使用训练集进行模型的训练,同时使用测试集进行模型性能的验证。

CodeWOW的博客 693

基于高频变压器的隔离式推挽栅极驱动电路

摘要:本文介绍了一种基于高频变压器的隔离式推挽栅极驱动电路,通过变压器实现电气隔离,为功率MOS管提供可靠驱动信号。电路包含输入侧PWM信号处理、变压器磁耦合隔离传输以及副边驱动逻辑等关键部分,利用电阻电容网络控制开关速度并防止误触发。该隔离驱动方案广泛应用于高压开关电源、新能源汽车电机控制器、光伏逆变器和工业变频器等需要高电压隔离及抗干扰能力的电力电子设备中,有效保障系统安全性和可靠性。

qq_37999850的博客 480

混淆字符串

基础知识 物极必反。我们已经研究了阅读Windows内核的方法,现在开始讨论在我们自己的驱动编码中采用特殊的编码方法,来简单地防止反汇编阅读。这是有趣的一种事态:一方面我们研究如何阅读别人的(尤其是MS的)代码;另一方面,我们不得不采取措施保护自己的技术不被他人简单地窃取。 我这里要用到的这种方法不同于加壳或者加密。加壳和加密的方法比较单一,从而容易被人以同

8240

22、光无线通信调制技术详解

本文详细介绍了光无线通信中的多种调制技术,包括开关键控(OOK)、脉冲位置调制(PPM)、数字脉冲间隔调制(DPIM)、副载波强度调制(SCM)、相移键控(PSK)、正交幅度调制(QAM)以及多载波调制(MCM)如OFDM和MSIM。文章分析了各类调制技术在带宽需求、功率效率、传输容量、传输速率和PAPR等方面的性能差异,并通过Matlab仿真展示了其在AWGN信道下的误码率表现。同时,对比了不同技术的适用场景,提出了调制选择流程,并结合室内光通信与自由空间光通信的应用案例,展望了未来调制技术向高频谱效率、

net55的博客 116

加密与解密技术

进入信息和网络化的时代以来,计算机正在我们的工作和生活中扮演着日益重要的角色。用户通过计算机来获取信息、处理信息,同时将自己最重要的信息以数据文件的形式保存在计算机中,方便而快捷的传送给其他用户。但是如果我们的网络中缺少最起码的安全手段,便捷又从何谈起呢?为此,51CTO安全频道特别收集整理了有关加密与解密的一系列文章,希望可以帮助你解决烦恼! ...

weixin_34326429的博客 296

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

CCS 2018论文解读:使用少量样本破解文本验证码

  文章发布于公号【数智物语】 (ID:decision_engine),关注公号不错过每一篇干货。       来源 | AI科技大本营(公众号ID:rgznai100)   1. 前言   相信大家在日常上网的时候都会遇到“千奇百怪”的验证码,而在种类繁多的验证码家族中,文本验证码是使用最广泛的一种,也是我们遇到最多的一种验证码方案。近年来,随着深度学习技术的...

数智物语 1158

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

逆向分析电商验证码:从JavaScript混淆到AES加密的攻防实战

验证码作为人机识别的基础安全组件,其核心原理在于区分人类用户与自动化脚本。从技术实现看,前端通过JavaScript动态生成验证码并采集用户交互数据,后端则依赖加密算法与行为分析进行验证。AES加密在此过程中扮演关键角色,用于保护传输的点击坐标等敏感数据,防止被轻易篡改或重放。在工程实践中,面对高度混淆的前端代码,逆向分析者需要掌握动态调试与网络抓包技术,逐步拆解加密流程与参数传递逻辑。这种对抗推动了风控技术的演进,尤其在电商等高安全需求场景中,验证码已发展为融合多种交互形式与实时风险评估的复合体系。本文以

weixin_34246551的博客 500

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

上一篇: MBA案例:为叫花子做的策划
下一篇: 鬼扯日记 - 38 世间好物不坚牢,彩云易碎琉璃脆
freexploit
博客等级 码龄22年 315粉丝 778原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值