实战enablesoft网络验证加VMProtect







12D006C 直接nop掉 让他无论如何也载入程序窗口
一直走进去 你会发现他退出掉了
我们来重新载入OD
当然我试过 ExitProcess 断不下来
然而我发现他是用WM_DESTROY来关闭程序的
所以我们可以下PostQuitMessage断点
PostQuitMessage 函数向系统表明有个线程有终止请求
进入exd模块ctrl+G


77D2CA5A下断点
在登陆下试试

OD在这个函数下断下了 第一次断下的时候他并没有对出 你可以单步F8下去
也可以直接F9运行 第二次断下在00452333

直接在堆栈 call到PostQuiMessage回到程序领空

来到了这里 那么关键就在于
0045232D 84C0 test al,al
0045232F 74 07 je XRMScript.00452338
把0045232F的je改成jmp就好了

OK 现在程序已经进来了
但是别高兴的太早了 因为我看过这个验证 他在3-5分钟的时候还会退出一次
他这次是用终止所有线程
我们可以下TerminateProcess

他触发这个api后 就回断在这里
0012FB44 012D2340 /CALL 到 TerminateProcess 来自 RMScri_1.012D233B
在这里回车返回到012D2340处

和PostQuitMessage一样 在012D2329 /75 19 jnz XRMScri_1.012D2344
处 把jnz改成jmp让他强制跳过去 就好了
很早以前做的一个教程 现在最新版的enablesoft不知道是否通用 没看过 看看思路就好了
随便提下为什么是用TerminateProcess 和PostQuitMessage来下断 DLL退出EXE 无非就是用线程来结束进程
PostQuitMessage 该函数向系统表明有个线程有终止请求
TerminateProcess 函数终止指定进程及其所有线程
1142

被折叠的 条评论
为什么被折叠?



