能力值:
( LV2,RANK:10 )
|
-
-
2 楼
ESP直接脱,于是就只有退出的时候提示错误了。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
ESP也好,单步手动脱也一样,都要出错,奇怪了,请帮忙看看
|
能力值:
(RANK:210 )
|
-
-
4 楼
脱壳后出现明显anti,要补段,注意段名。启动验证。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
补段早就补了,现在找出问题根源了:
程序有自校验,可恶的是自校验的结果是直接异常,让你不小心就想不到问题,还以为脱壳哪里没修复
在风涧仁的提示下,我们可以总结了如下要求:
1,要补区段,否则无法通过自校验
2,程序偏移1F9出储存程序大小数据,脱壳后要把现在的大小转成十六进制,将此数据替换到1F9处
这样就算脱壳完成了,不需要优化大小 今天就到这里吧,研究该程序的自校验还真的经典,还可以直接断在获取文件大小的函数上,不久就可以看到这些代码了
Found commands
地址 反汇编 注释
004A2B18 MOV EDX,1F9
004A2E96 MOV EDX,1F9
第一处:
004A2B13 B9 04000000 MOV ECX,4
004A2B18 BA F9010000 MOV EDX,1F9
004A2B1D 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004A2B20 E8 8F15F6FF CALL 搜索.004040B4
004A2B25 A1 5C0B4B00 MOV EAX,DWORD PTR DS:[4B0B5C]
004A2B2A E8 6D8CFDFF CALL 搜索.0047B79C
004A2B2F 8BD8 MOV EBX,EAX
004A2B31 8D55 F4 LEA EDX,DWORD PTR SS:[EBP-C]
004A2B34 8BC3 MOV EAX,EBX
004A2B36 E8 C963F6FF CALL 搜索.00408F04
004A2B3B 8B55 F4 MOV EDX,DWORD PTR SS:[EBP-C]
004A2B3E B8 5C0B4B00 MOV EAX,搜索.004B0B5C
004A2B43 E8 3811F6FF CALL 搜索.00403C80
004A2B48 A1 5C0B4B00 MOV EAX,DWORD PTR DS:[4B0B5C]
004A2B4D E8 1664F6FF CALL 搜索.00408F68
第二处:
004A2E91 B9 04000000 MOV ECX,4
004A2E96 BA F9010000 MOV EDX,1F9
004A2E9B 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
004A2E9E E8 1112F6FF CALL 搜索.004040B4
004A2EA3 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
004A2EA6 E8 F188FDFF CALL 搜索.0047B79C
004A2EAB A3 6C0B4B00 MOV DWORD PTR DS:[4B0B6C],EAX
004A2EB0 A1 6C0B4B00 MOV EAX,DWORD PTR DS:[4B0B6C]
004A2EB5 3B05 680B4B00 CMP EAX,DWORD PTR DS:[4B0B68]
004A2EBB 0F94C3 SETE BL
004A2EBE 33C0 XOR EAX,EAX
004A2EC0 5A POP EDX
004A2EC1 59 POP ECX
004A2EC2 59 POP ECX
004A2EC3 64:8910 MOV DWORD PTR FS:[EAX],EDX
004A2EC6 68 EB2E4A00 PUSH 搜索.004A2EEB
004A2ECB 8D85 A4FEFFFF LEA EAX,DWORD PTR SS:[EBP-15C]
004A2ED1 BA 02000000 MOV EDX,2
004A2ED6 E8 750DF6FF CALL 搜索.00403C50
004A2EDB 8D45 F8 LEA EAX,DWORD PTR SS:[EBP-8]
004A2EDE E8 490DF6FF CALL 搜索.00403C2C
004A2EE3 C3 RETN
接下来的破解程序应该是很简单的了,我们也不继续研究了.大不了爆破,不是吗?
|
能力值:
(RANK:210 )
|
-
-
6 楼
注意有个pid检查,错了会把od关掉。
|