crackme杂记 004
创建窗口函数: CreatWindowsExA,有时候想要找信息窗口找不到的话可以通过这个函数查找。
花指令:花指令就是类似于jmp,call,ret的指令用来影响我们正常进行反汇编,比如使用花指令的话,IDA就无法正常编译汇编代码。
举例:
如上图,我们自己写了一个裸函数,可以看到,先写一个jmp Lable,跳转到下面的Lable函数,然后通过 _emit 0e8h 写入一个e8,但是我们知道,e8是call对应的硬编码,所以od就会认为这是一个call ,但是call后面都会跟着一个地址啊,所以od就会将后面的代码理解成call的地址,如下图
但是花指令并不能影响程序的运行,因为花指令骗得只是反汇编工具,不如上面的jmp,程序运行的时候该怎么跳就怎么跳,(所以我们设计花指令的思路应该是构造一个恒成立的跳转,然后跳转中间插入无效的代码)我们在调试程序的时候碰到这种情况的话,可以直接将跳转代码的位置
与跳转想要跳转的位置之间的代码直接nop掉就好了,所以说,花指令防的住静态调试,但并防不住静态调试。
那么花指令远离如上,我们可以一个一个去nop,但是如果花指令特别多怎么办,可以使用插件。
但是这样一个一个nop难免会使代码的可读性变低,我们还有其他方法:
然后重新右键分析就可以了。效果如下图
od快捷键:
ctrl+f9 执行到函数返回
ida操作基础:
如果代码是一个函数,IDA会将其命名为sub_xxxxx,所以有时候我们遇到loc开头的东西的话说明不是一个函数。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 z1inのblog!
评论