| 
注册时间2005-6-29
阅读权限255
最后登录1970-1-1UID2198 副坛主   
 
 该用户从未签到 | 
 
| x64_dbg (Latest Version: V2.3ALPHA (30 December 2014))调试器目前用起来已经比较爽了,最新版是 release_023.rar。 从21就开始支持了汇编级修改,和将修改保存至文件,这两点来看已经是一个破解调试器了。
 
 
 HomePage: http://x64dbg.com/
 DownLoad:http://sourceforge.net/projects/x64dbg/
 Source: https://bitbucket.org/mrexodia/x64_dbg/downloads
 
 本地上传一份:
 工具下载:链接: http://pan.baidu.com/s/1sjHNSFb 密码: m4on
 源码下载(V2.2ALPHA):链接: http://pan.baidu.com/s/1hq6ATHa 密码: 5nj5
 
 玩X64得了解X64的习性,和X86有哪些区别。
 
 目前来看有这样一些:
 寄存器的扩展
 传参模式
 模块加载地址
 函数内部没有 push ebp  mov ebp,esp 这样的指令了 但是读起汇编来,也是很愉快的。
 
 
 一些资料在这里:
 Windows下的64位汇编语言:http://bbs.pediy.com/showthread.php?p=1240650
 Windows X64汇编入门 (1):http://bbs.pediy.com/showthread.php?t=43967
 Windows X64汇编入门 (2):http://bbs.pediy.com/showthread.php?t=44078
 
 开始进行 64 位 Windows 系统编程之前需要了解的所有信息(中译)
 http://www.microsoft.com/china/M ... esx64.mspx?mfr=true
 Everything You Need To Know To Start Programming 64-Bit Windows Systems(原英):
 http://msdn.microsoft.com/zh-cn/magazine/cc300794(en-us).aspx#fig1
 
 
 
 复制代码
int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPTSTR lpstrCmdLine, int nCmdShow)
000000013F0450A9 | 44 8B 8C 24 B8 00 00 00    | mov r9d,dword ptr ss:[rsp+B8]            |
000000013F0450B1 | 4C 8B 84 24 98 00 00 00    | mov r8,qword ptr ss:[rsp+98]             |
000000013F0450B9 | 33 D2                      | xor edx,edx                              |
000000013F0450BB | 48 8D 0D 3E AF FD FF       | lea rcx,qword ptr ds:[<__ImageBase>]     | ;rcx:__ImageBase
000000013F0450C2 | E8 1F C5 FD FF             | call <nscrackme.@ILT+1505(wWinMain)>     |
F7:
000000013F0222B0 | 44 89 4C 24 20             | mov dword ptr ss:[rsp+20],r9d            | ;nscrackme.cpp:38
000000013F0222B5 | 4C 89 44 24 18             | mov qword ptr ss:[rsp+18],r8             |
000000013F0222BA | 48 89 54 24 10             | mov qword ptr ss:[rsp+10],rdx            |
000000013F0222BF | 48 89 4C 24 08             | mov qword ptr ss:[rsp+8],rcx             | ;rcx:__ImageBase
000000013F0222C4 | 57                         | push rdi                                 |
// 但不是所有的函数都这样去搞预留位的 
 复制代码
// MessageBoxW
0000000077901314 | 48 83 EC 38                      | sub rsp,38                               |
0000000077901318 | 45 33 DB                         | xor r11d,r11d                            |
000000007790131B | 44 39 1D 1A 0E 02 00             | cmp dword ptr ds:[7792213C],r11d         |
0000000077901322 | 74 2E                            | je user32.77901352                       |               | nop     
Detours Hook  Fix 8 Byte :
0000000077901314 | E9 5F EE FF BF             | jmp 37900178                             |  // JUMP to Func Table ... 
0000000077901319 | CC                         | int3                                     |
000000007790131A | CC                         | int3                                     |
0000000037900178 | FF 25 F2 FF FF FF          | jmp qword ptr ds:[37900170]              | // JUMP to New Func ... 
000000003790017E | CC                         | int3                                     |
000000003790017F | CC                         | int3                                     |
000000013FA21000 | 48 8D 15 39 32 00 00       | lea rdx,qword ptr ds:[13FA24240]         | ;new func code ...
000000013FA21007 | 48 FF 25 0A 66 00 00       | jmp qword ptr ds:[13FA27618]             |  // jump to 000000007790131B
 
 这里有 Detours X64 的工程,可以作为测试调试用例。
 https://www.chinapyg.com/thread-75832-1-1.html
 
 总体来说,这个调试器上,OD应有的常用功能算是都有了。不习惯的地方可以就是 地址那0太多了,其实可以省略前5个0的 ^_^。 明天继续研究下X64下的DLL劫持。
 
 
 | 
 评分
查看全部评分
 |