常见汇编指令助记
JG / JNLE:Jump when Greater / Jump when Not Less or Equal
JL / JNGE:Jump when Less / Jump when Not Greater or Equal
JGE / JNL:Jump when Greater or Equal / Jump when Not Less
JLE / JNG:Jump when Less or Equal / Jump when Not Greater
JE / JZ:Jump when Less / Jump when Zero
字节序
windows操作系统兼容的CPU为小端(内存高位地址存放数据高位字节数据)方式,而UNIX操作系统所兼容的CPU大多为大端(内存高位地址存放数据低位字节数据)方式。此外,还有一个网络字节序,是指网络传输相关协议所规定的字节传输顺序,TCP/IP协议所使用的字节序为大端方式。
- 大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存
在内存的高地址中,这样的存储模式有点儿类似于把数据 当作字符串顺序处理:
地址由小向大增加,而数据从高位往低位放; 这和我们的阅读 习惯一致 - 小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存
在内存的低地址中,这种存储模式将地址的高低和数据位权有效 地结合起来,
高地址部分权值高,低地址部分权值低1
2
30000430: e684 6c4e 0100 1800 53ef 0100 0100 00000000440: b484 6c4e 004e ed00 0000 0000 0100 0000
在大端模式下,前32位应该这样读: e6 84 6c 4e ( 假设int占4个字节)
在小端 模式下,前32位应该这样读: 4e 6c 84 b4 ( 假设int占4个字节)
高级语言和低级语言
- 如上图所示,很好展示了低级语言、高级语言和机器码之间的联系
windows内存布局
- 和linux内存布局类似,windows的内存布局如下
X86汇编基础-栈
pe结构
Reference
- API 函数 -- API 绝密档案系列之一
http://bbs.pediy.com/user-22319-1.htm - Win32环境下函数调用的堆栈之研究
http://bbs.pediy.com/thread-69909.htm - 汇编的学习
http://bbs.pediy.com/user-90551-1-1.htm
http://bbs.pediy.com/user-202613-0-1.htm - window线程
http://bbs.pediy.com/thread-77556.htm - C++类虚函数逆向学习总结
http://bbs.pediy.com/thread-60538.htm - MFC逆向初级研究
http://bbs.pediy.com/thread-41087.htm - 驱动安全
http://blog.csdn.net/zuishikonghuan/