-
-
inline patch MaxtoCode(纯属恶搞)大牛勿进。
-
发表于:
2006-10-29 00:28
11056
-
inline patch MaxtoCode(纯属恶搞)大牛勿进。
rick大牛,已经写出了MaxtoCode得unpacker.太牛了。不知道是不是把所有的mathod都执行一遍,然后Dump-〉修复。
unpacker还不公开,所以像我这种小菜想破解MaxtoCode还得inline patch。
patch主程序不是很现实,因为原始的mathod已经被Kill了,运行的时候动态的填充。那怎么办呢?
很简单,随便在能运行到的method上内存写入断点,断下来后在system.data.dll里面,这个dll就是MaxtoCode的DLL,负责动态的解密IL.patch这个是不错的选择。
注意看断下来的地方的指令
mov dl,byte ptr [ecx+eax]
mov byte ptr [eax],dl
这里eax是被填充的地址,dl就是IL opcode.
上面的指令刚好是5 byte.so........
改为jmp xxxxxxxx(具体地址根据实际情况选择,选择reloc段不错)。
然后就可以Do what U want to do了
我做了这些:
mov dl,byte ptr [ecx+eax]
cmp eax,xxxxxxxx
jnz end
mov dl,xx
cmp eax xxxxxxxx
jnz end
mov dl,xx
end:
mov byte ptr [eax],dl
jmp xxxxxxxx
应该能看懂吧?
猜测:其实完全可以利用这个DLL做个unpacker。
TO Jason.NET:.NET保护只能走VFP那条路,自己接管EE,JITCompiler.但是那样.NET就失去了意义。所以目前没啥好办法保护.NET程序
rick的unpacker似乎只支持2.0.我也没见过,听说而已。这个方法1.0 2.0通吃。
可能利用MaxtoCode的DLL写unpacker可能是比较通吃也比较简便的办法
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)