VMProtect逆向分析_图文**********,这里是对应源程序的入口,一开始vmp会压入一个key,,这里做了改变,估计主要是因为Nooby公开了猜函数的方法。>$-#入口变成了一条JMP指令00406AE0>:[ESP]>MOVDWORDPTRSS:[ESP+28],202A160#:[ESP],:[ESP],:[ESP+4],>MOVDWORDPTRSS:[ESP+28],D5D26166#模拟旧版call的返回地址,:[ESP],DWORDPTRSS:[ESP+30]00406B17.^,首先是抹除了68????????E8这样的特征码,其次是不再使用push来写入key,上面那两个push都是花指令来的,是用来迷惑使用push定位的。无论新版还是旧版,那个call的返回地址都是没有用的,因为vmp从来不会返回,因此新版里使用JMP时,丢失返回地址对vmp一点影响都没有。接着虚拟机入口,;ESP=;ESP=0007FF28010011DBMainPUSHFD;ESP=0007FF24010011DCMainMOVDWORDPTRSS:[ESP+4],EBX010011E0MainPUSHDWORDPTRSS:[ESP];ESP=0007FF20010011E3MainMOVDWORDPTRSS:[ESP+4],EBP010011E7MainPUSHB553C5B8;ESP=0007FF1C010011ECMainPUSHEDX;ESP=0007FF18010011EDMainPUSHFD;ESP=0007FF14010011EEMainPUSHFD;ESP=0007FF10010011EFMainLEAESP,DWORDPTRSS:[ESP+14];ESP=;ESP=0007FF2001013AA8MainMOVSXBP,CL;EBP=0007FFB001013AACMainXCHGDWORDPTRSS:[ESP],ECX;ECX=01007A5D01013AAFMainPUSHAD;ESP=0007FF0001013AB0MainMOVDWORDPTRSS:[ESP+1C],EDX01013AB4MainPUSHFD;ESP=0007FEFC01013AB5MainXCHGDWORDPTRSS:[ESP+1C],ESI;ESI=;ESP=;ESP=0007FEF401013256MainMOVDWORDPTRSS:[ESP+20],EAX0101325AMainMOVSXSI,DL;ESI=0100FF940101325EMainMOVDWORDPTRSS:[ESP+1C],EDX01013262MainMOVSXEBP,DL;EBP=FFFFFF9401013265MainBSWAPSI;ESI=0100000001013268Main
VMProtect逆向分析 图文 来自淘豆网www.taodocs.com转载请标明出处.