avatar

目录
吾爱破解培训第六课:潜伏在程序身边的黑影--实战给程序补丁

吾爱破解培训第六课:潜伏在程序身边的黑影–实战给程序补丁

吾爱破解内存补丁生成器V1.00:作程序补丁

image

1.拖入需要补丁的文件

2.输入需要修改位置的内存地址

3.输入要改成的指令的机器码

4.添加指令

5.导出补丁

KeyMake V2.0 修改版:做内存注册机

image
image

中断地址为真正注册注册码地址

选择内存方式,选择相应寄存器

实例

一.内存补丁

1.首先查壳>>vmp壳
2.运行程序点击注册看看是否有关键提示信息
3.OD载入程序,F9运行程序 Ctrl+G 输入00401000后确定Ctrl+A分析代码
4.搜索中文字符串 Ctrl+F 查找”注册失败”
5.找到后双击”注册失败”来到反汇编窗口,往上找到跳过注册失败的跳转

0040346B |. /75 07 jnz X00403474 ; 这里是关键跳转 jnz修改为nop 也就是把75 07 修改为90 90
0040346D |. |68 80E15700 push 0057E180 ; 注册成功
00403472 |. |EB 10 jmp X00403484
00403474 |> \68 8CE15700 push 0057E18C ; 注册失败 双击后来到这里往上找到关键跳

二.内存注册机.

Code
1.OD载入程序,F9运行程序  Ctrl+G 输入00401000后确定   Ctrl+A分析代码
2.搜索中文字符串 Ctrl+F 查找"注册失败"
3.找到后双击"注册失败"来到反汇编窗口,往上找到断首,在断首处下F2断点
4.然后F9运行程序输入用户名和key.点击注册后会断在刚才F2的断点处,然后一直F8单步跟踪,然后注意看各个寄存器的值是否有出现正确key
5.当其中一个寄存器出现正确的key时 此时反汇编窗口的地址就是我们写内存注册机的 内存地址.
6.运行到该地址时:
00403436 |. 8B4D E8 mov ecx,[local.6] 此时esi的值已经出现了我们的正确key
我们就可以取该内存地址: 00403436 做为写内存注册机的内存地址
如下:
内存地址: 00403436
中断次数: 1
第一字节: 8B
指令长度: 1

也可以取下面这里做为内存注册机的地址
此处的代码寄存器EAX的值也是正确的key.

Code
00403440  |>  8A10          /mov dl,byte ptr ds:[eax]   ;  此时EAX的值已经出现正确key
00403442 |. |3A11 |cmp dl,byte ptr ds:[ecx] ; 下面代码部分是真key和假key对比
00403444 |. |75 1A |jnz X00403460
00403446 |. |84D2 |test dl,dl
00403448 |. |74 12 |je X0040345C
0040344A |. |8A50 01 |mov dl,byte ptr ds:[eax+0x1]
0040344D |. |3A51 01 |cmp dl,byte ptr ds:[ecx+0x1]
00403450 |. |75 0E |jnz X00403460
00403452 |. |83C0 02 |add eax,0x2
00403455 |. |83C1 02 |add ecx,0x2
00403458 |. |84D2 |test dl,dl
0040345A |.^\75 E4 \jnz X00403440

内存地址: 00403440
中断次数: 1
第一字节: 8A
指令长度: 1
文章作者: kabeor
文章链接: https://kabeor.github.io/%E5%90%BE%E7%88%B1%E7%A0%B4%E8%A7%A3%E5%9F%B9%E8%AE%AD%E7%AC%AC%E5%85%AD%E8%AF%BE%EF%BC%9A%E6%BD%9C%E4%BC%8F%E5%9C%A8%E7%A8%8B%E5%BA%8F%E8%BA%AB%E8%BE%B9%E7%9A%84%E9%BB%91%E5%BD%B1--%E5%AE%9E%E6%88%98%E7%BB%99%E7%A8%8B%E5%BA%8F%E8%A1%A5%E4%B8%81/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 K's House

评论