追梦 发表于 2017-7-3 06:15

非明码比较,如何找突破口

http://pan.baidu.com/s/1qYe6R2s      一款文字校对软件。

软件加壳,用小生的自动脱壳机,无法成功。


搜索不到字符串,用暂停法可以断下来。


单步跟踪可以找到假码位置,但是此软件好像不是明码比较,找不到爆破突破口。

希望前辈们提供思路。如有违规请管理帮忙删除。

shizp 发表于 2017-7-3 06:15

告诉你方法了,而且软件试明码比较的,怎么既不结贴也不回复?
0479451C|.8D7424 10   lea esi,dword ptr ss:      //真吗
04794520|.8D8424 D00200>lea eax,dword ptr ss://假码
04794527|>8A10          /mov dl,byte ptr ds:
04794529|.8A1E          |mov bl,byte ptr ds:
0479452B|.8ACA          |mov cl,dl
0479452D|.3AD3          |cmp dl,bl
0479452F|.75 1E         |jnz short  .0479454F
04794531|.84C9          |test cl,cl
04794533|.74 16         |je short  .0479454B
04794535|.8A50 01       |mov dl,byte ptr ds:
04794538|.8A5E 01       |mov bl,byte ptr ds:
0479453B|.8ACA          |mov cl,dl
0479453D|.3AD3          |cmp dl,bl
0479453F|.75 0E         |jnz short  .0479454F
04794541|.83C0 02       |add eax,0x2
04794544|.83C6 02       |add esi,0x2
04794547|.84C9          |test cl,cl
04794549|.^ 75 DC         \jnz short  .04794527
0479454B|>33C0          xor eax,eax
0479454D|.EB 05         jmp short  .04794554
0479454F|>1BC0          sbb eax,eax
04794551|.83D8 FF       sbb eax,-0x1
04794554|>85C0          test eax,eax
04794556|.0F94C0      sete al               //爆破点
04794559|.33C9          xor ecx,ecx
0479455B|.A2 72743B08   mov byte ptr ds:,al
04794560|.8AC8          mov cl,al
04794562|.E8 D4930000   call  .0479D93B
04794567|.A0 72743B08   mov al,byte ptr ds:
0479456C|.5F            pop edi                                  ;USER32.756B8656
0479456D|.5E            pop esi                                  ;USER32.756B8656
0479456E|.5D            pop ebp                                  ;USER32.756B8656
0479456F|.5B            pop ebx                                  ;USER32.756B8656
04794570|.81C4 C0030000 add esp,0x3C0
04794576\.C3            retn
这个文件是动态生成。

byh3025 发表于 2017-7-3 13:43

首先我查的怎么是VMP的壳的呢?

shizp 发表于 2017-7-4 11:22

本帖最后由 shizp 于 2017-7-4 11:25 编辑


046E42BF|.83C9 FF       or ecx,0xFFFFFFFF
046E42C2|.33C0          xor eax,eax
046E42C4|.83C4 0C       add esp,0xC
046E42C7|.F2:AE         repne scas byte ptr es:
046E42C9|.F7D1          not ecx
046E42CB|.49            dec ecx
046E42CC|.83F9 3A       cmp ecx,0x3A   //输入假码的长度必须等于3A=58(十进制)
046E42CF|.74 14         je short  .046E42E5

输入假码长度58位(十进制)


04804551|.83D8 FF       sbb eax,-0x1
04804554|>85C0          test eax,eax
04804556      0F94C0      sete al       --》94改成95,或者 moval,1
04804559|.33C9          xor ecx,ecx
0480455B|.A2 72744208   mov byte ptr ds:,al
04804560|.8AC8          mov cl,al
04804562|.E8 D4930000   call  .0480D93B
04804567|.A0 72744208   mov al,byte ptr ds:

具体怎么打补丁就不说了。


dmxayjn 发表于 2017-7-5 23:44

追梦 发表于 2017-7-6 05:38

本帖最后由 追梦 于 2017-7-6 06:19 编辑

shizp 发表于 2017-7-5 23:30
告诉你方法了,而且软件试明码比较的,怎么既不结贴也不回复?
0479451C|.8D7424 10   lea esi,dwor ...
不好意思,这几天单位事太多,没有顾上登录论坛。通过查找命令,定位到了真码地址。

想知道逆向的思路。望大神指导。

XiaoNuo 发表于 2017-7-6 09:24

虽然不能帮助楼主,但是我还是要说一声楼主加油,

我心喜欢你 发表于 2017-7-7 17:21

!!!请大家说一下具体的过程啊让小白也学习下
页: [1]
查看完整版本: 非明码比较,如何找突破口