记录一次.net程序网络验证破解
程序是.net写的 无壳初步测试是网络验证调试环境VMWARE 11+XP
思路. 挂钩Send 与recv挂钩messageboxw(前辈提出.net程序全部都是unicode编码所以挂钩W)
调试程序OD
程序以注册码形式登陆 post一条数据到一个地址中 地址这里就不写了
程序打开时需要输入验证码 经过一番查找本地验证码比较无果后 打开抓包工具发现是网络验证
由于不知道对方验证机制 所以挂钩recv
然后随意输入注册码点登陆
已知第一次返回数据为是否连接成功消息
所以直接F5一次第二次断到recv的时候应该就是远程数据返回的时候了
由于程序经过代码混淆 所以读起来很不方便
一直在F8中............
然后突然弹出了提示注册码失败 (每次遇到CALL 都会记录内存地址)
紧接着第二次跑起程序 根据上一次失败的位置找到如下位置
程序来到一个call处
03DF2D8B call 79B2EC00//判断返回值的地方
03DF2D90 test eax,eax
03DF2D92 jz 03DF2DAF//是否提示注册码无效或其他信息
03DF2D94 lea esp,
03DF2D97 pop ebx
03DF2D98 pop esi
03DF2D99 pop edi
03DF2D9A pop ebp
03DF2D9B ret
03DF2D9C cmp eax,5
03DF2D9F jnb 03DF2DA8
03DF2DA1 jmp dword ptr
03DF2DA8 mov eax,0x4
03DF2DAD jmp 03DF2D9C
03DF2DAF mov ecx,0x79B9FC0C
03DF2DB4 call 00A42020 //弹出注册码无效的 消息框关键call
03DF2DB9 mov edi,eax
03DF2DBB mov edx,esi
03DF2DBD mov ecx,edi
03DF2DBF call 7A042D98
03DF2DC4 mov ecx,edi
03DF2DC6 call 791CAD5E
03DF2DCB int 3
03DF2DCC add ,al
03DF2DCE add ,al
03DF2DD0 mov ,gs
03DF2DD3 add ebx,
jz 03DF2DAF判断返回值 然后是否弹出正常的消息
破解到这里就完成了
第一次写破解文章与破解程序···写的不好 主要提供一些思路
dy212300 发表于 2015-11-30 08:07
楼主的意思是把这里的JZ爆破掉是吗?
03DF2D8B call 79B2EC00//判断返回值的地方
03DF2D90 t ...
是这样的我在第一次调试的时候就注意这个jz了 然后我发现他是根据远程数据返回的长度来判断是否注册成功的如果注册成功那么返回的就是0位 楼主的意思是把这里的JZ爆破掉是吗?
03DF2D8B call 79B2EC00//判断返回值的地方
03DF2D90 test eax,eax
03DF2D92 jz 03DF2DAF//是否提示注册码无效或其他信息
写的不错,小弟想学习学习 小白看不懂 顶帖 哇哦 火速前排 大神眼熟我{:1_927:} 小白看不懂{:1_908:} 利害
我來研究一下
学习一下
页:
[1]
2