硬件断点之-另类的注册信息保存
目标软件下载地址http://www.nine-head-bird.com申明:软件是国产的,咱们需要保护,我所讲到的只是方法。请大家珍惜别人的产品。废话不多说:安装后,查壳ASProtect 2.1x SKE -> Alexey Solodovnikov 脱壳就不说了,没有Stolen Code ,很简单,实在搞不定就用带壳分析,打补丁注册。脱壳后丢OD里运行查看启动窗口为未注册输入假码提示下次重启软件验证注册。此软件为重启验证!
我们就从这个“未注册”入手。查找字符串找到0045EE58 .FFD7 call edi ; \DrawTextA0045EE5A .A1 5C3E4B00 mov eax,dword ptr ds:0045EE5F .3958 F8 cmp dword ptr ds:,ebx0045EE62 .75 10 jnz XUnPack_.0045EE74 jnz跳了就是注册版了 0045EE64 .68 FCDD4A00 push UnPack_.004ADDFC ;未注册0045EE69 .8D4C24 10 lea ecx,dword ptr ss:0045EE6D .E8 B0F90100 call <jmp.&mfc42.#860>0045EE72 .EB 13 jmp XUnPack_.0045EE87我们就在0045EE58下断重启软件,改JNZ为jmp或je,软件启动后,软件注册框还在,软件的关于提示是注册的。这样的逆向不是我们要的!
再分析代码0045EE5A .A1 5C3E4B00 mov eax,dword ptr ds:0045EE5F .3958 F8 cmp dword ptr ds:,ebx 0045EE62 75 10 jnz XUnPack_.0045EE74
Ebx改为1就是我们上面的修改方案。好吧!我们动下ds:=00000000脑筋,下硬件断点重启软件
在oep的地方,我们点硬件断点跟随,查看数值的变化。003A4378初始值为4,在第三次中断后值为0,一直到软件启动完毕003A4378一直是0。好吧我们重启软件在第二次中断后单步,注意003A4378值的变化。0045D363 .74 12 je XUnPack_.0045D377 如果je跳了,003A4378=40045D365 .68 18394B00 push UnPack_.004B3918 这是我们想要的,不能让je跳0045D36A .8BCB mov ecx,ebx0045D36C .E8 B1140200 call <jmp.&mfc42.#860> 出call后003A4378=0我们向上再分析代码0045D34E > \33FF xor edi,edi0045D350 .33C0 xor eax,eax0045D352 .EB 07 jmp XUnPack_.0045D35B0045D354 >B8 01000000 mov eax,0x1 修改mov eax,0或xor eax,eax0045D359 .33FF xor edi,edi 0045D35B >3BC7 cmp eax,edi0045D35D .8986 EC000000 mov dword ptr ds:,eax0045D363 .74 12 je XUnPack_.0045D377 如果je跳了,0045D36C=4
好了0045D354 B8 00000000 mov eax,0x0爆破成功,注册框没有了,关于是Volx是默认的,这。。。。。。也不是我们想要的,继续!查看注册表注册项没有volx,本地目录有个StockMan.mdb,我们猜下他的注册信息放在什么地方呢?找一个access数据库浏览器查看下就知道了启动软件完美爆破 爆破后注册信息就保存了,用未脱壳的程序进去,软件也是注册的
国内软件太多了还是把这个给玩死吧{:5_188:}
写得还不错、但是有不足 我这里提一个意见吧
就是在你下完硬件断点以后 重启软件那一段,我也是没看懂、能不能补几个图详细说下
看了下 思路还算顺 没走弯路
感谢分享来学习下
520Kelly 发表于 2014-12-1 21:04
写得还不错、但是有不足 我这里提一个意见吧
就是在你下完硬件断点以后 重启软件那一段,我也是没看懂、 ...
补了3张图,做图文真的是说不清楚,下次改做视频吧{:5_121:}
mm475 发表于 2014-12-1 21:28
补了3张图,做图文真的是说不清楚,下次改做视频吧
其实你做视频更好点、写图文很多细节不能说清楚,做视频的话 用语音快点
学习了!谢谢楼主!
本帖最后由 Crack杰 于 2014-12-2 20:55 编辑
谢谢分享请大神指点一下 我的网名好三易语言
这个可以有。。厉害