带壳VM二次验证DLL动态地址补码打补丁教程+源码
带壳VM二次验证DLL动态地址补码打补丁教程+源码今天给大家做个如何Crack DLL加壳后的二次验证和打动态地址打补丁加补码。
看到挺多人需要的,这里我做个教程,由于方法也挺多的,这里我就做了一个最简单的。
要对打有壳的DLL打补丁,必须条件是在他初始化前比他先注入我们的破解补丁,然后对二次验证的DLL判断他是否解码。
方法一般是用到HOOK API判断是否解码,由于很多都不懂怎么去找解码的API,这里我就用了另一种循环取模块句柄判断DLL
是否解码,这样会对配置差的电脑可能会卡,不过也不影响,因为只要Crack完毕,我们的破解补丁就不会继续工作了
这里我用的是劫持的DLL来注入我们的破解补丁实现Crack,我已经提前写好了1个本地验证的DLL,我拿LOL来做例子,
无壳的我就不演示了,无壳的都懂直接OD修改就可以了,这里我是VM掉加了VMP壳的,下面看看卡密如果正确提示什么
这里我随便写了 卡密如果是1就是正确的,其他都不会提示正确,TP3Helper和League of Legends都会加载Bugtrace.dll
所以我随便用哪个进程来调试也可以了。带VMP壳的,要运行才能解码,这里就是我验证的地方了,被V成狗了。
怎么破解我就不多解释了,要破一个exe或者dll 可以先在OD尝试改好,然后确定你的数据没错了就可以做补丁了。
现在我做一下补丁,对于怎么破解DLL的验证这个
你们自己去找了,我直接演示怎么破解我这个本地DLL并打补丁。
100080E9 68 58C6DD81 push 0x81DDC658
BugTrace.dll+80E9 - CC - int 3
100080EE 68 E8C34E0B push 0xB4EC3E8
BugTrace.dll+80EE - CC - int 3
找到之后BugTrace.dll+80EE 这样的 不管他地址变成什么,我们都可以取到他地址了。
由于DLL基本都是动态的,和普通的打补丁不同 我们要破解的地址他是随时会变的,这里就要取他偏移来定位做补丁。
现在开始写下 打补丁和补码 这里我要赋值eax为0 才会破解成功。
先去DLL的空白地址 记录下偏移 这里的整个块 不要勾选,勾选了会跳到其他模块,每个DLL都会有一些空白的地方,
这样就让我们可以方便补码过去了,如果没空白内存地址,就用易语言的申请临时空间,自己申请一个空白的地址。
100094CA 0000 add byte ptr ds:,al
BugTrace.dll+94CA - 00 00 - add ,al
100094D4^\E9 15ECFFFF jmp 100080EE
BugTrace.dll+94D4 - CC - int 3
把原来的数据补上 跳回去,OD里写好了,然后制作补丁,这里的跳回JMP 不能直接复制他的二进制代码,不然软件重启了
地址就会变,OD里写的是固定方法的,所以这里用到JMP_Addr,自动计算跳回地址
也就是 在10094D4我们要跳到100080EE补丁里写就 跳转地址 写你要跳转回去的地址,入口地址就是写这里10094D4
你们也可以用另一个方法写个test.exe测试下写入,确认下写内存的方式和地址没错,就可以了。
好了,手动注入我们的破解DLL测试没问题。
好了 补丁写好了 我测试下。这里我会把劫持的DLL打包上 因为你没有劫持的DLL 是不会加载我们的破解补丁的
也可以自己写一个 还有要说下 每个程序 并不是那种劫持都可以用的,例如TP3Helper.exe 这个就只认winmm.dll
我的另一个劫持DLL 就没加载到了 看看League of Legends 加载哪个League of Legends加载Version.dll,winmm.dll
所以你要先看看软件是加载哪个劫持DLL对应使用,百度也有源码,我的就是写了加载我的DLL。
这样就破解了,这里看到地址已经变了,这是源码里写的补丁数据。
整理一下吧,可能啰嗦了,总之就很简单,用我发的劫持DLL 然后源码直接写破解补丁即可。Bugtrace.dll自己更改。
好了教程到此结束。编译后的破解补丁不要改名字 否则劫持无法加载。
**** Hidden Message *****
膜拜神贴,后面的请保持队形! 膜拜神贴,后面的请保持队形!
膜拜神贴,后面的请保持队形! 膜拜神贴,后面的请保持队形! 0 学习了!!! 怎么里面只有一个补丁工具呀 66666666666666 6666666