新手破解练习Crackme160之072 - fireworx.3
-
去NAG, 把主界面当成NAG界面干掉它, 直接让程序显示注册界面, Delphi4-5写的, 反编译出来的代码可知, 注册界面不在代码开始创建的, 是点击注册按钮后才创建的, 那我们就在显示主界面之前直接跳转到注册界面去, OD载入程序, F8单步运行, 执行到00445B33处时程序即将要显示主界面TForm1了, 这时我们F7进入方法, 继续F8运行到0043F95B处mov dl, 1将主界面显示状态设置为1(即显示), 下一行call方法即是显示主界面, 那这行, 我们就不继续执行了, 就在这行改为跳转到注册界面去, 0043F95B处改为jmp 0044591C(注册按钮方法入口), 再将下一行0043F960改为retn, 免得程序会继续执行其它代码导致异常~, 保存运行测试正常跳过主界面显示了注册界面, 但关闭会异常~不是那么完美, 所以我们还需要继续努力, 找出关闭和cancel按钮事件, 用DelphiDecompiler分析源码没找到对应事件(IDR也没找到), 那我们就用OD自身插件来找吧, 菜单栏->插件->API断点设置工具->常用断点设置->限制程序功能函数->EnableWindow(勾上),
1). 注册界面关闭(与cancel), 点关闭或cancel, 程序成功停下, OD界面右侧的K面板中可以看到K 调用堆栈: 主线程 地址 堆栈 函数过程 / 参数 调用来自 结构 0019F038 00437026 <jmp.&user32.EnableWindow> fireworx.00437021 0019F088 0019F03C 00992114 hWnd = 00992114 ('fireworx',class= 0019F040 FFFFFFFF Enable = TRUE 0019F04C 0043CC84 fireworx.00437004 fireworx.0043CC7Ffireworx.00437004 这个便是入口地址了
2). 主界面关闭, 同上操作, 看到
K 调用堆栈: 主线程 地址 堆栈 函数过程 / 参数 调用来自 结构 0019FE5C 7718D6FD ntdll.ZwTerminateProcess ntdll.7718D6F8 0019FF30 0019FF34 75904663 ntdll.RtlExitUserProcess kernel32.7590465D 0019FF30 0019FF48 00403761 ? <jmp.&kernel32.ExitProcess> fireworx.0040375C 0019FF44 0019FF4C 00000000 ExitCode = 0x0<jmp.&kernel32.ExitProcess>看到这个关键词了吧, fireworx.0040375C 是这边调用的,
接着我们就用这两个找出来的地址做做事情, 关闭注册界面原来的功能是隐藏窗体, 现在我们直接改成关闭应用, 于是将00437004处改为mov eax, 0x0 将00437009改为jmp 0040375C, 保存, 完全去掉了主界面~
-
去灰, OD载入去NAG后的程序, 按钮OK默认是灰的, 由Interactive Delphi Reconstructor(IDR)分析源码可知, 在密码框的change事件中可知方法004455B8是设置Enabled属性的, 我们在IDR中双击这行可进入到方法(入口00423734), 判断dl与内存中的值是否相等, 不相等就设置相反, OD单步跟踪到00423734处时可知首次运行, 内存值为1, dl为0, 也就是说, 程序一进来, ok就会从默认的可用状态变更到不可用状态(变灰了), 那我们就强制不让它变更就行了, eax+0x48前后几个都有值为0的, 所以我就选了一个前面的改为eax+0x46, 即00423734处将 cmp dl, byte ptr ds[:[eax+0x48] 改为 cmp dl, byte ptr ds[:[eax+0x46], 保存, 运行成功去灰~
-
暴力破解, OD载入去灰后的程序, 搜索失败关键字定位到004458E3, 方法入口是004458D8, 此处下断点, 随便输入点ok断点处停下, 看数据区右侧有个返回到00445518, 点中后回车来到调用此失败方法的下一行, 往上找到方法入口00445474, 重新单步调试, 找到第一个跳00445494, 改为jmp 004454E6到成功分支, 保存成功~
-
正常破解, 将输入串转大写与004454C5处的固定串"RIDERSINTHENIGHT"对比是否一致, 所以答案很明确了就是这个固定串, 不区分大小写, 程序会强制转大写
Riders in the Night 是一首歌名,作者应该是名爱音乐的程序员吧_
1~160每个破解过程,在吾爱破解论坛都有高手破解过了,也有整理好现成的, 我这边主要就是自己动手操作的过程,与他们的不太一样
附上高手们的连接: 点击前往查看
使用的工具连接(工具有点多有点大,可以先下OD,其它的后面慢慢下) 点击前往下载
新人入门教程"玩玩破解,写给新人看" 点击前往查看
我就是从这里开始的,对我这样的小白感觉超级友好~
下面是我的OD的界面布局,我觉得这4个是最常用的界面,其它的我基本上没用到~


浙公网安备 33010602011771号