window逆向基础

常见汇编指令助记

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
    3
    0000430: 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个字节)

高级语言和低级语言