Acid burn
查壳
拖入DIE,结果无壳、32位
运行
弹框
单步-断点法
首先有一个弹框,通过断点-步入配合可以找到如图位置,这里有条件跳转,改成无条件跳转即可去除弹框
函数调用法
用search for
->search all intermodelar call
找到messagebox
,每个打断点,然后运行,发现在如图断点位置停住,往上找到当前函数开始位置,打断点,在栈中寻找函数的返回地址
重新运行,断住后发现返回地址,go to
这个地址,
找到函数入口,可以修改红框处位retn
,不让函数执行,copy executable
->save file
,去除弹框
也可以继续往上找,找到单步-断点法那个位置。
左边按钮
主界面,点击Serial
按钮,随便输入,点击check
会有一个messagebox
(try again),此时按f12
中断程序,然后按alt+f9
(execute till user code),然后在函数开始断,按alt+k
查看调用堆栈(call stack)找到上一层。
到达上一层,在ida中找到42FB32
处,f5查看反汇编代码
发现一处判断42FB03
,对应去od找该位置,是jnz
,下断,运行程序,断后改zf为1,运行,成功
右边按钮
方法和左边按钮一样,这边ida的关键位置在42F4D5
算法
待补充