Zprotect的shell是个dll,每个版本不一样,可以通过这个来判断版本号.
stub中会申请内存解压dll,记录申请的内存地址,等解码完毕后找个固定值判断一下偏移即可.
比如找到如下字符串:
申请的内存为00970000,只要判断RVA:3039C是否为kernel32.dll即可.这个偏移相同版本加壳后的都是一样的.不同版本的则不同.只要搜集到每个版本加壳的试炼品就可以整理出来了.
当然还可以匹配其他的特征码,随便你.
stub中会申请内存解压dll,记录申请的内存地址,等解码完毕后找个固定值判断一下偏移即可.
比如找到如下字符串:
引用
009A037C 00 00 00 00 CE DE B7 A8 B6 A8 CE BB D0 F2 CA FD ....无法定位序数
009A038C 25 30 38 58 20 D3 DA 25 73 20 C9 CF A3 A1 00 00 %08X 于%s 上!..
009A039C 6B 65 72 6E 65 6C 33 32 2E 64 6C 6C 00 00 00 00 kernel32.dll....
009A03AC 56 69 72 74 75 61 6C 41 6C 6C 6F 63 00 00 00 00 VirtualAlloc....
009A038C 25 30 38 58 20 D3 DA 25 73 20 C9 CF A3 A1 00 00 %08X 于%s 上!..
009A039C 6B 65 72 6E 65 6C 33 32 2E 64 6C 6C 00 00 00 00 kernel32.dll....
009A03AC 56 69 72 74 75 61 6C 41 6C 6C 6F 63 00 00 00 00 VirtualAlloc....
申请的内存为00970000,只要判断RVA:3039C是否为kernel32.dll即可.这个偏移相同版本加壳后的都是一样的.不同版本的则不同.只要搜集到每个版本加壳的试炼品就可以整理出来了.
当然还可以匹配其他的特征码,随便你.
作者:zgmap@zgmap
地址:http://www.zgmap.com/zprotect-banben/
版权所有©转载时必须以链接形式注明作者和原始出处及本声明!
motor
2010/01/08 15:23
大侠可以试试 Zp 加壳的一个文件吗?用了1.4的脚本未成功。
分页: 1/1
1
1


