ida pro 学习记录

ida pro功能菜单说明

  • IDA View-A是反汇编窗口,定位要修改的代码段在哪里
  • HexView-A是十六进制格式显示的窗口,用来修改我们的数据
  • Imports是导入表(程序中调用到的外面的函数)
  • Functions是函数表(这个程序中的函数),样本的所有函数窗口
  • Structures是结构
  • Enums是枚举
  • Names: 函数和参数的命名列表
  • Strings: 字符串显示窗口,会列出程序中的所有字符串
  • Exports是导出表(这个程序中能让外面调用的函数)

汇编知识

基础知识
  • EAX 是”累加器”(accumulator), 它是很多加法乘法指令的缺省寄存器。
  • EBX 是”基地址”(base)寄存器, 在内存寻址时存放基地址。
  • ECX 是计数器(counter), 是重复(REP)前缀指令和LOOP指令的内定计数器。
  • EDX 则总是被用来放整数除法产生的余数。
  • ESI/EDI 分别叫做”源/目标索引寄存器”(source/destination index),因为在很多字符串操作指令中, DS:ESI指向源串,而ES:EDI指向目标串。
  • EBP 是”基址指针”(BASE POINTER), 它最经常被用作高级语言函数调用的”框架指针”(frame pointer)。
  • ESP 专门用作堆栈指针,被形象地称为栈顶指针,堆栈的顶部是地址小的区域,压入堆栈的数据越多,ESP也就越来越小。在32位平台上,ESP每次减少4字节。
资料转移指令
  • MOV 移动
  • MOVC 程式记忆体移动
  • MOVX 外部RAM和扩展I/O口与累加器A的数据传送指令
  • PUSH 放入堆叠
  • POP 由堆叠取回
  • XCH 8位元交换
  • XCHD 低4位元交换
  • SWAP 高低4位元交换
算术指令
  • ADD 两数相加
  • ADDC 两数相加再加C
  • SUBB 两数相减再减C
  • INC 加一指令
  • DEC 减一指令
  • MUL (MUL AB乘法指令仅此一条)相乘指令,所得的16位二进制数低8位存累加器A高8位存B
  • DIV (DIV AB 除法指令仅此一条)相除指令,所得商存A,余数存B
  • DA (DA A 只此一条指令)调整为十进数
逻辑指令
  • RL 不带进位左环移
  • RLC 带进位左环移
  • RR 不带进位右环移
  • RRC 带进位右环移
  • CPL 取反指令
  • CLR 清除为0
  • ANL做AND(逻辑与)运算
  • ORL做OR(逻辑或)运算
  • XRL (逻辑异或)运算
控制转移类指令
  • JC C=1时跳
  • JNC C=0时跳
  • JB 位元=1时跳
  • JNB 位元=0时跳
  • JBC 位元=1时跳且清除此位元
  • LCALL 长调用子程序
  • ACALL 绝对调用子程序
  • RET 由副程式返回
  • RETI 由中断副程式返回
  • AJMP 绝对转移
  • SJMP 相对转移
  • JMP @A+DPTR 散转,相对DPTR的间接转移
  • JZ A=0时跳
  • JNZA 0时跳
  • CJNE 二数比较,不相等时跳
  • DJNZ 减一,不等於0时跳
  • NOP 空操作
位变量指令
  • SETB 设定为1
  • ORG 程序开始,规定程序的起始地址
  • END 程序结束
  • EQU 等值指令(先赋值后使用)例:SUM EQU 30H
  • DB 定义字节指令
  • DW 定义字内容
  • DS 定义保留一定的存贮单元数目
  • BIT 位地址符号指令 例:SAM BIT P1.0
  • RET 子程序返回指令
  • RETI 中断子程序返回指令
  • $ 本条指令地址
    参考:https://blog.csdn.net/re_psyche/article/details/78797689
    https://blog.csdn.net/wang010366/article/details/52505345

你可能感兴趣的:(ida pro 学习记录)