-
-
[原创]弄掉VMP某个版本的CRC
-
发表于:
2020-3-7 09:50
14189
-
因为给一个程序打启动补丁,之前这个程序没加壳,现在加壳了,区段为vmp1,打启动补丁会被crc,所以试着弄了一下,发现挺简单的
程序拖入OD,然后找到要patch的位置,我要修改这个call
下个访问断点,重新开始,会停下来
停在这里以后,发现,ecx为扫描的地址,esi为储存代码的寄存器,每次扫描一次字节
这时候,我们patch那个call,然后将esi修改为patch前的字节数据,运行起来,发现crc并没有扫到我们的patch
于是构造一个shellcode对代码进行hook
039B0000 - movzx esi,byte ptr [ecx]
039B0003 - push eax
039B0004 - pushfd
039B0005 - mov eax,xxxxxx.dll+5B5CE
039B000A - cmp eax,ecx
039B000C - jne 039B0013
039B000E - mov esi,00000020
039B0013 - add eax,01
039B0016 - cmp eax,ecx
039B0018 - jne 039B001F
039B001A - mov esi,0000002A
039B001F - add eax,01
039B0022 - cmp eax,ecx
039B0024 - jne 039B002B
039B0026 - mov esi,00000005
039B002B - add eax,01
039B002E - cmp eax,ecx
039B0030 - jne 039B0037
039B0032 - mov esi,00000000
039B0037 - popfd
039B0038 - pop eax
039B0039 - xor esi,eax
039B003B - jmp xxxxxx.dll+8809D4
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2020-3-7 09:51
被はつゆき编辑
,原因: