新手破解010 Editor v8.0 x64 附破解文件
本帖最后由 var 于 2017-8-2 15:26 编辑本文使用工具:x64 Dbg
平台:Windows 10 x64
破解软件:010 Editor v8.0 x64
根据http://www.52pojie.cn/thread-576457-1-1.html教程学习
新手学习破解,大神轻拍。
下载地址在文尾,大神们还可以帮忙测试下联网验证的问题哦
1. 打开注册页面
图中 注册按钮④,就是需要激活的页面,Name、Password填写完整即可,内容任意。
2. 使用x64 Dbg附加到进程
无图
3. 点击 注册按钮④
会弹出一个提示窗口说明验证码不正确的MessageBox,因为010 Editor是QT界面,所以这会触发Windows API 中的CreateWindowEx,我们将这个设置为断点
切换到 符号 标签页,按照①,②的方式搜索到user32下的CreateWindow
按下F2,将CreateWindowExW CreateWindowExA设置为断点。其实断点最终走的是CreateWindowW,也就是Unicode窗口函数,这个大家在跟踪的时候就会知道,不过都断比较保险,应对部分老程序走的是Ansi字符集。
4. 再次点击 注册按钮④
程序被断住了,这时候我们切换到 调用堆栈页
一看东西挺多,其实大部分是QT调取的栈,我们往下找,找到了3个用户区的函数栈,现在就是去一个一个看这三个哪个符合要求
5. 一个一个点开
发现第二个双击之后出现了很多字符串,貌似是弹窗的英文
红线部分就是堆栈链,这个不重要。
6.往上下滚动一下
发现了正确授权的英文,往上滚动一点就可以看到,红框框的部分就是
往上看,只有一个cmp ebx,DB,这个if确定了是显示成功或者失败的分支
也就是 ebx 等于 0xDB的时候,表示提示注册成功的MessageBox,先给这个cmp下断,F9运行之后,重新点击 注册按钮④
这时候右边的FPU窗口,显示RBP是0x113,肯定不等于0xDB,那将jne改成je,就弹出了注册成功的提示窗口了,不过这样每次启动的时候都会提示让注册,改这个破解没意义。所以,这里不改,注意不改,仍然是jne
所以需要去改动它的注册验证函数,做到重启之后都判断为注册成功
7. 那我们往上滚动
找到这个函数的段首,也就是push rbp move rbp,rsp 的地方,设断之后,重新F9并点击 注册按钮④
然后按下Ctrl+A,分析这个函数,这样跳转的逻辑就显示出来了,
8. 可以看到很多call
不过都是QT的Call,所以都不用管,往下F8走,找到了5个
有时间的可以一个一个的进去看,不过这里直接透露谜底,就在第5个call里面。
原因如下:
9. 我们回到显示正确英文的区块这里
在Ctrl+A之后,已经分析出了是谁跳转过来,我们发现cmp ebx DB 左边有一个 > 符号,选中之后,一个红色的细线箭头指向到了上面第5个call的下面一行
注意图中是je,其实是我先改了,再次重申,这里不要改,仍然是jne。
10. 向上滚动到跳转源头
发现的有两个 je 指向这里,这应该就是 if( esi == 0xe7 || ds: == 0) 的意思
往上一点可以看到
(关键知识点)
esi 由第4个call返回
rcx貌似是读取的一个变量,是否是属于函数内的变量,这里没深究
ebx 由第5个函数返回,所以ebx ,就在这个函数体了
这里插一句:eax一般是函数return的寄存器,所以在call下面的eax,一般都是return的结果
11.我们给第五个call设断
之后F7跟进去
在这个函数的结尾发现了 mov eax DB,真是踏破铁鞋无觅处,这里也是一个if分支,根据 > 符号的箭头指向到了头部
12. 这个函数的头部有一个 if (!) return 0x113;的语句,红圈处
通过监视 是0,因为也没深究这个是哪个变量,所以经过多次试验,我们将其改为jne
13. 跳过函数体,直接进入ret
这里是直接跳到move exa DB的地方,将其改为 jne,直接跳到函数结尾。
自此,修改就结束了。
14. Ctrl+P保存补丁为另外一个exe文件之后,重启这个文件发现无需注册了,并且注册内容任意。
内存中修改的主要是:
是dbgx64的内存补丁,文件的在下面
0000000000AF5F23:74->75
0000000000AF5F3E:84->85
文件中修改是:
AF5323 74->75
AF533E 84->85
不知道是否反弹,大神可以测试一下,毕竟这个还有网络验证。
已经修改之后的文件是:https://pan.baidu.com/s/1slyhNGD
下载地址是:x64https://www.sweetscape.com/download/010EditorWin64Installer.exe
本帖最后由 gfjykldd 于 2018-1-7 19:31 编辑
经过测试,用楼主的方法似乎是可行的,但在楼主的第12步中增加一处修改。
00007FF6D43F61F0 | 48 89 5C 24 08 | mov qword ptr ss:,rbx |
00007FF6D43F61F5 | 57 | push rdi |
00007FF6D43F61F6 | 48 83 EC 20 | sub rsp,20 |
00007FF6D43F61FA | 83 79 3C 00 | cmp dword ptr ds:,0 |
00007FF6D43F61FE | 8B FA | mov edi,edx |
00007FF6D43F6200 | 48 8B D9 | mov rbx,rcx |
00007FF6D43F6203 | 74 10 | je 010editor.7FF6D43F6215 |
00007FF6D43F6205 | B8 DB 00 00 00 | mov eax,DB | Patch:mov eax, 113 -> mov eax, DB
00007FF6D43F620A | 48 8B 5C 24 30 | mov rbx,qword ptr ss: |
00007FF6D43F620F | 48 83 C4 20 | add rsp,20 |
00007FF6D43F6213 | 5F | pop rdi |
00007FF6D43F6214 | C3 | ret |
00007FF6D43F6215 | E8 2C DB 50 FF | call 010editor.7FF6D3903D46 |
00007FF6D43F621A | 83 F8 2D | cmp eax,2D | 2D:'-'
00007FF6D43F621D | E9 CC 00 00 00 | jmp 010editor.7FF6D43F62EE | Patch: je 0x00007FF6D43F62EE -> jmp 0x00007FF6D43F62EE
00007FF6D43F6222 | 90 | nop |
00007FF6D43F6223 | 83 F8 4E | cmp eax,4E | 4E:'N'
00007FF6D43F6226 | 0F 84 90 00 00 00 | je 010editor.7FF6D43F62BC |
00007FF6D43F622C | 3D E7 00 00 00 | cmp eax,E7 |
00007FF6D43F6231 | 74 79 | je 010editor.7FF6D43F62AC |
00007FF6D43F6233 | 8B D7 | mov edx,edi |
00007FF6D43F6235 | 48 8B CB | mov rcx,rbx |
00007FF6D43F6238 | E8 17 0E 51 FF | call 010editor.7FF6D3907054 |
00007FF6D43F623D | 83 F8 17 | cmp eax,17 |
00007FF6D43F6240 | 74 5A | je 010editor.7FF6D43F629C |
00007FF6D43F6242 | 83 F8 2A | cmp eax,2A | 2A:'*'
00007FF6D43F6245 | 74 2E | je 010editor.7FF6D43F6275 |
00007FF6D43F6247 | 3D 38 01 00 00 | cmp eax,138 |
00007FF6D43F624C | 75 5E | jne 010editor.7FF6D43F62AC |
00007FF6D43F624E | 48 8B CB | mov rcx,rbx |
00007FF6D43F6251 | E8 B4 0C 51 FF | call 010editor.7FF6D3906F0A |
即把
je 010editor.7FF6D43F6215 |
00007FF6D43F6205 | B8 DB 00 00 00 | mov eax,113 | Patch:mov eax, 113 -> mov eax, DB
00007FF6D43F620A | 48 8B 5C 24 30 | mov rbx,qword ptr ss:
改成:
je 010editor.7FF6D43F6215 |
00007FF6D43F6205 | B8 DB 00 00 00 | mov eax,DB | Patch:mov eax, 113 -> mov eax, DB
00007FF6D43F620A | 48 8B 5C 24 30 | mov rbx,qword ptr ss:
下图是dump后注册的结果:
disth 发表于 2017-7-6 16:35
修改应该是:
0000000000AF5323:74->75
0000000000AF533E:84->85
我测试也一样,怀疑官方的版本和楼主提供的不一样,不过
140AF62FD:0F850B010000jne 00AF640Eh
cmp ebx,DB
和这个的切入点IDA中流程图能看得更清晰些。 厉害 学习了。{:1_912:} 楼主学到位了 我还在摸索进行中 厉害厉害,楼主好样的。 厉害了 亲受教了 修改应该是:
0000000000AF5323:74->75
0000000000AF533E:84->85
我这里仍然无法注册。。。。。 多谢楼主分享 disth 发表于 2017-7-6 16:35
修改应该是:
0000000000AF5323:74->75
0000000000AF533E:84->85
文件中修改是:
AF5323 74->75
AF533E 84->85
我那个是x64dbg的内存补丁 谢谢分享。 尼斯指導,謝謝分享!