本文以Crackme160为例子,示例文件都在该例子中https://gitee.com/cnhellorui/Crackme160
节一:x64dbg逐步调试修复
前言与总结
该节里只需x64dbg即可,windows 7和windows 10,xp都可以。
该节中修复掉那个弹框关键做法:找到关键call,找到关键跳。
找到关键call的目的是:确定你所看到的那个弹框或者事件,在反汇编代码的哪个位置发生的,那么你知道那个事件在哪里发生的后,你所想要修复的逻辑就在他的附近。幸运汇编语言按行一条一条执行,找到那个关键call后,那个逻辑一般就在它的关键call的前面几行。
确定逻辑的大概位置后,我们不需要过于了解反汇编中的每个细节,只需要知道关键跳如jmp,je,jne,test,cmp
这些的比较指令。因为这些关键跳工作后,会修改ZF这种标志位寄存器。
那么其他的程序会根据这个修改后的ZF标志位寄存器,从而跳转到指定位置。
我们着手去修改这些关键跳后,让它不跳转到那些不想要的弹框和事件后就可以完成反汇编修复了。
示例
首先我们自己打开运行该需要修复的可执行软件(开始就打开只能在修改程序中用,在病毒和未知软件检查的时候不能冒然打开软件