分享

逆向教程

 Remind 2021-10-06
  1. 再Windows上运行,都遵循PE文件格式。
  • exe,dll,sys
      1,程序从哪里开始执行
      2,数据存在哪里

      3,程序存在哪里

          最终存储为0和1

  • 字节(BYTE):8位(两个十六进制数),     WORD(字):16位,      DWORD(双字):32位(BIT)
  • Windows操作系统存储从高位到低位 :E8 00 00 00  ——> 000000E8
  • PE查看器—>找到代码段起始地址—>找到第一个函数
  • 将16进制数转换成汇编的过程——反汇编
  • 二进制—》汇编—》C语言——逆向
  • 逻辑运算 —— 按位运算

    或( or   | )——有一则一定是一

    与( and    & )——有零则一定是一

    异或(xor  ^)——不一样的为一

    非(not   !)——1是0,0是1

    左移( << )——0010  <<  0100

例题:CPU运行:2+3=?


CPU只能做加法运算,存储数据的容器:CPU里---寄存器,内存条---内存(慢)

  • 32位通用寄存器:

EAX:       累加器

……

  • 汇编指令:

mov  把后面的立即数放到前面的寄存器里
add   加数再放回
sub   减数再放回

  • 客户端---密钥---服务器端
  • 内存:

【编号】成为地址,

32位计算机:寻址宽度(编号最大不能超过32位)——存储最大数据:FFFFFFFF+1  —》 4G

(包括00000000)

内存单位大小(内存单元)是一个字节

内存的读写:(练习时:地址可用ESP的)


DS(段寄存器):后面是立即数,与内存属性有关
SS:后面是ESP/EBP
ES:后面是EDI
PTR:后面是地址

LEA:取地址编号






堆栈:ESP(栈顶),EBP(栈底)

PUSH,POP--->(+4/-4)




    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多