附件里的程序加的是Enigma protector 1.xx的壳,为什么与加这个壳的其它程序OD入口处不一样呢?我在网上找脱壳的文章,入口处全部是pushad开始的,而这个程序是这样的:
0040BAC3 > /EB 10 JMP SHORT 文件生成.0040BAD5 //这个就是入口了
0040BAC5 |66:623A BOUND DI,DWORD PTR DS:[EDX]
0040BAC8 |43 INC EBX
0040BAC9 |2B2B SUB EBP,DWORD PTR DS:[EBX]
0040BACB |48 DEC EAX
0040BACC |4F DEC EDI
0040BACD |4F DEC EDI
0040BACE |4B DEC EBX
0040BACF |90 NOP
脱不了壳只能带壳分析了
下面是简单的分析:
1、运行程序,弹出注册对话框,只有注册才能进入主界面,下面是注册关键部分。
00456013 6A 00 PUSH 0
00456015 53 PUSH EBX
00456016 8BD8 MOV EBX,EAX
00456018 33C0 XOR EAX,EAX
0045601A 55 PUSH EBP
0045601B 68 7E604500 PUSH 文件生成.0045607E
00456020 64:FF30 PUSH DWORD PTR FS:[EAX]
00456023 64:8920 MOV DWORD PTR FS:[EAX],ESP
00456026 8D55 FC LEA EDX,DWORD PTR SS:[EBP-4]
00456029 8B83 08030000 MOV EAX,DWORD PTR DS:[EBX+308]
0045602F E8 4CF1FDFF CALL 文件生成.00435180 //读取假注册码(我输入的注册码)
00456034 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
00456037 E8 D0E2FAFF CALL 文件生成.0040430C
0045603C 50 PUSH EAX
0045603D 68 8C604500 PUSH 文件生成.0045608C ; ASCII "test"
00456042 E8 55FDFFFF CALL 文件生成.00455D9C //关键CALL,对比对比注册码是否正确,进入
00456047 84C0 TEST AL,AL
00456049 74 13 JE SHORT 文件生成.0045605E //关键跳转,注册码错误则实现跳转
0045604B B8 9C604500 MOV EAX,文件生成.0045609C
00456050 E8 BF26FDFF CALL 文件生成.00428714 //弹出“注册成功“对话框
00456055 8BC3 MOV EAX,EBX
00456057 E8 60B1FFFF CALL 文件生成.004511BC
0045605C EB 0A JMP SHORT 文件生成.00456068
0045605E B8 C4604500 MOV EAX,文件生成.004560C4
00456063 E8 AC26FDFF CALL 文件生成.00428714 //弹出“注册失败”对话框
00456068 33C0 XOR EAX,EAX
0045606A 5A POP EDX
0045606B 59 POP ECX
0045606C 59 POP ECX
0045606D 64:8910 MOV DWORD PTR FS:[EAX],EDX
00456070 68 85604500 PUSH 文件生成.00456085
00456075 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
00456078 E8 CFDDFAFF CALL 文件生成.00403E4C
0045607D C3 RETN
2、进入上面的关键CALL后,来到这里
0052B8F4 55 PUSH EBP
0052B8F5 8BEC MOV EBP,ESP
0052B8F7 53 PUSH EBX
0052B8F8 56 PUSH ESI
0052B8F9 57 PUSH EDI
0052B8FA 8B75 0C MOV ESI,DWORD PTR SS:[EBP+C]
0052B8FD 8B5D 08 MOV EBX,DWORD PTR SS:[EBP+8]
0052B900 33FF XOR EDI,EDI
0052B902 56 PUSH ESI
0052B903 53 PUSH EBX
0052B904 E8 5FEEFFFF CALL 文件生成.0052A768 //关键,里面的第三个CALL就是算法分析
0052B909 83F8 01 CMP EAX,1
0052B90C 75 09 JNZ SHORT 文件生成.0052B917 //如果注册码不正确则实现跳转
0052B90E 56 PUSH ESI
0052B90F 53 PUSH EBX
0052B910 E8 0FF2FFFF CALL 文件生成.0052AB24
0052B915 8BF8 MOV EDI,EAX
0052B917 8BC7 MOV EAX,EDI
0052B919 5F POP EDI
0052B91A 5E POP ESI
0052B91B 5B POP EBX
0052B91C 5D POP EBP
0052B91D C2 0800 RETN 8
因本人太菜,没法搞清注册算法;软件是重启较验型,修改上而的关键跳转只提示注册成功,但无法进入程序界面,而且重启程序的时候还是会出现注册对话框。希望高手能看一下。谢谢!
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课