博客地址:http://blog.csdn.net/qq1084283172/article/details/53158970


return 0;  C语言返回0语句的汇编形式


Intel-32汇编:

leave
xor eax, eax
ret

AT&T汇编:

leave
xorl %eax, %eax
ret

从汇编的结果可以看出,返回0的C语言语句,在编译器生成的汇编语句中并没有包含常量,这是编译器优化的结果,它认为复制零的操作比执行异或的运算更耗资源。


操作码与Shellcode:Shellcode其实是一系列的操作码,一般保存在C字符串数组里,,称它为shellcode主要是因为这一系列的操作码是执行shell(例如:/bin/sh或cmd.exe)所必须的指令。


《IDA Pro 代码破解解密》笔记一


Windows汇编语言中常用寄存器的介绍:

《IDA Pro 代码破解解密》笔记一

《IDA Pro 代码破解解密》笔记一

《IDA Pro 代码破解解密》笔记一


汇编语言中栈结构的学习:

《IDA Pro 代码破解解密》笔记一

《IDA Pro 代码破解解密》笔记一

《IDA Pro 代码破解解密》笔记一

《IDA Pro 代码破解解密》笔记一


汇编语言中堆结构的学习:

《IDA Pro 代码破解解密》笔记一

《IDA Pro 代码破解解密》笔记一


常用的汇编语言指令:

《IDA Pro 代码破解解密》笔记一


《IDA Pro 代码破解解密》笔记一

《IDA Pro 代码破解解密》笔记一



《IDA Pro 代码破解解密》笔记一

《IDA Pro 代码破解解密》笔记一



注意:jmp指令和call指令的区别(下面这2个指令真的很重要,要理解透彻)


jmp指令只是单纯的代码执行的跳转,call指令在执行的时候会先将保存下一条将要执行的地址即先保存CS:EIP的值,然后再进行代码执行流程的跳转

《IDA Pro 代码破解解密》笔记一


注意 ret指令的执行步骤


ret指令在执行的时候,会先获取栈帧中保存的CS和EIP的值,恢复和设置CS和EIP的值,使程序的流程得以正常继续下去。

《IDA Pro 代码破解解密》笔记一


简单的做个笔记,本来打算打字敲一下笔记的,后来觉得太费时间了,直接截图了--方便。感觉这些知识点是逆向工程学习的基础,工作一段时间了,很多东西都没接触了,快忘了,简短的记录一下。




书籍参考:

《IDA Pro 代码破解解密》







相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-11-28
  • 2021-12-04
  • 2021-11-20
  • 2021-12-07
  • 2021-11-24
  • 2021-07-02
猜你喜欢
  • 2022-12-23
  • 2021-11-14
  • 2021-07-05
  • 2022-12-23
  • 2021-06-28
  • 2021-09-30
  • 2022-12-23
相关资源
相似解决方案