csaw2013reversing2
——第一个动态调试题目
首先运行程序发现是乱码
由题目知运行就能拿到flag,那就直接载入OD动态调试
一直F8单步运行来确定弹窗的位置
发现执行到这里时出现弹窗
于是下断点后,F9直接运行至断点,F7进入call,然后F8单步
在这里发现jnz未跳转,je跳转(有关跳转知识请见这里)
此后分析可知程序执行的是错误路径,于是把断点改在jnz处并通过修改Z标志位让他跳转(jnz是当Z标志位为0时跳转)
继续F8单步运行到int3处发现退出,重载程序并将它nop掉(按下空格将值改为nop)
当执行到这里时发现会跳向程序退出,也将其nop掉
第一个弹窗什么都没有,继续
此处jmp跳转后没有输出东西,也将其nop掉
执行到这里时发现出现flag
数据地址存储在eax寄存器里,在eax寄存器右键→数据窗口中跟随
然后再数据窗口辅助字符串
继续运行也可得到flag
flag{reversing_is_not_that_hard!}