6.5Demo由于反编译(F5)时极容易崩溃(崩溃原因可能与全局资源请求保护有关http://www.hexblog.com/?p=788),所以暂不提供。
现在提供6.4Demo(IDA v6.4.130702)官方最后的版本的修改版(修复了bTree引擎潜在漏洞http://www.hexblog.com/?p=764)
破解笔记
破解单步次数限制(jl改为jmp)
.text:0048C566 3D F0 01 00 00 cmp eax, 1F0h
.text:0048C56B 7C 14 jl short loc_48C581
.text:0048C56D 68 F8 5A 5B 00 push offset aThankYouForUsi
启动时弹出About对话框(全部nop)
.text:00410494 51 push ecx
.text:00410495 E8 16 D0 12 00 call sub_53D4B0
.text:0041049A 83 C4 04 add esp, 4
过一段时间显示欢迎使用IDA demo版(004128B0处改为retn)
.text:004128B0 8B 0D 98 11 69 00 mov ecx, dword_691198
.text:004128B6 FF 25 C4 48 5A 00 jmp ds:?exec@QDialog@QT@@QAEHXZ ; QT::QDialog::exec(void)
关闭时显示欢迎使用IDA demo版(将mov ecx, dword_690198及call ds:?exec@QDialog@QT@@QAEHXZ 语句nop掉)
.text:00415043 8B 0D 98 11 69 00 mov ecx, dword_691198
.text:00415049 57 push edi
.text:0041504A FF 15 C4 48 5A 00 call ds:?exec@QDialog@QT@@QAEHXZ ; QT::QDialog::exec(void)
已经打开一个反汇编,再打开一个新的反汇编显示欢迎使用IDA demo版(同上)
.text:004146A0 8B 0D 98 11 69 00 mov ecx, dword_691198
.text:004146A6 FF 15 C4 48 5A 00 call ds:?exec@QDialog@QT@@QAEHXZ ; QT::QDialog::exec(void)
.text:004146AC A1 9C 20 5A 00 mov eax, ds:database_flags
.text:004146B1 83 08 01 or dword ptr [eax], 1
.text:004146B4 B0 01 mov al, 1
.text:004146B6 C3 retn
关闭当前反汇编显示欢迎使用IDA demo版(同上)
.text:004146C0 sub_4146C0 proc near ; DATA XREF: sub_596940+43Bo
.text:004146C0 8B 0D 98 11 69 00 mov ecx, dword_691198
.text:004146C6 FF 15 C4 48 5A 00 call ds:?exec@QDialog@QT@@QAEHXZ ; QT::QDialog::exec(void)
.text:004146CC A1 9C 20 5A 00 mov eax, ds:database_flags
.text:004146D1 83 08 01 or dword ptr [eax], 1
复制代码行数限制(nop掉jge语句)
.text:0042CB65 81 FB 00 01 00 00 cmp ebx, 100h
.text:0042CB6B 0F 8D 19 01 00 00 jge loc_42CC8A
使用时间只能用一年,也就是2014年3月22日将会过期(004104A4处jz改为jmp)
.text:0041049D E8 FE AF 12 00 call sub_53B4A0
.text:004104A2 84 C0 test al, al
.text:004104A4 74 1F jz short loc_4104C5
.text:004104A6 68 68 6A 5A 00 push offset aIconErrorAutoh ; "ICON ERROR\nAUTOHIDE NONE\nSorry, the e"...
.text:004104AB E8 40 D7 FF FF call sub_40DBF0
不能反汇编自己(00426A3F处jz改为jmp)
.text:00426A35 E8 76 AA FF FF call sub_4214B0
.text:00426A3A 83 C4 04 add esp, 4
.text:00426A3D 84 C0 test al, al
.text:00426A3F 74 0F jz short loc_426A50
.text:00426A41 68 40 9E 5A 00 push offset aIconErrorAut_9 ; "ICON ERROR\nAUTOHIDE NONE\nSorry, the d"...
只能反汇编PE,ELF,Mach-O文件(原因是只尝试加载了那三种类型的Loader,所以改为遍历加载整个loaders目录下的x86或者x64代码模块Loader,由于代码不是一两行,所以实现在IDA6DemoMore.dll中)
最后为了防止EXE镜像在WIN7等环境下被加载到非默认入口地址的其他地方,给Nt_headers->FileHeader.Characteristics加上IMAGE_FILE_RELOCS_STRIPPED位。
保存可以通过保存idc代替实现,现在Demo版也就几乎接近完整版了