实战enablesoft网络验证加VMProtect
本帖最后由 altTab 于 2014-10-9 00:41 编辑实战enablesoft网络验证加VMProtectenablesoft网络验证 他的验证基本都是在释放出来的exd文件上载入ODAlt+F9 查看模块文件
双击进去exd文件一眼就可以看出是delphi的
找关键断 可以使用delphi的按钮事件 Ctrl+BFF93200100005BC353
来到这里
call dword ptr ds: 下断点现在在软件上输入假码让他断下 断下后F7单步步入进去
来到这里后 一步步单步下去012D188C单步进去一路单步下去 他发送的过程太漫长就直接到关键地方吧
12D006C 直接nop掉 让他无论如何也载入程序窗口
一直走进去 你会发现他退出掉了我们来重新载入OD当然我试过 ExitProcess 断不下来然而我发现他是用WM_DESTROY来关闭程序的 所以我们可以下PostQuitMessage断点PostQuitMessage 函数向系统表明有个线程有终止请求
进入exd模块ctrl+G77D2CA5A下断点在登陆下试试OD在这个函数下断下了第一次断下的时候他并没有对出 你可以单步F8下去
也可以直接F9运行 第二次断下在00452333直接在堆栈 call到PostQuiMessage回到程序领空来到了这里 那么关键就在于0045232D 84C0 test al,al0045232F 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 函数终止指定进程及其所有线程
新的教程,表示占个位置,教程好多-.- 瞬间联想到想破软件的思路了 谢了楼主 嗯不错的教程 赞一个 非常详细,可以加精华,不过是怎么判断他是用WM_DESTROY来关闭程序的,我觉得有必要稍微讲一下,不能一带而过。这样这帖子就完美了。{:5_116:} 我只是来看看的,别抓我{:6_158:} 不太适合新手{:5_118:} 很不错的教程,谢谢啦。 楼主如此的厉害!!!1
没用过这些断点,学习了