【取证】程序逆向分析相关
寄存器
寄存器是用来储存常用数据的,在16/32位架构中,包含8个16/32位的通用寄存器:AX/EAX、 BX/EBX、 CX/ECX、DX/EDX、 SP/ESP、BP/EBP、DI/EDI及SI/ESI。 AX/EAX、BX/EBX、CX/ECX、DX/EDX在一般情况下作为通用的数据寄存器,用来暂时存放计算过程中所用到的操作数、结果或其他信息。它们还可分为两个独立的8位寄存器使用,命名为AL、AH、BL、BH、CL、CH、DL和DH。除了这些还有其他的寄存器,像IP/EIP寄存器存放的一直都是下一条执行指令的地址。在64位中,寄存器都以R开头,例如,RAX、RBX、RCX和RDX这样。
通常ESP是栈顶地址,EIP是下一条执行指令的地址
操作指令
数据传送类指令:
这是使用最频繁的指令,格式为:MOV DEST,SRC (move)
功能:将一个字节、字或双字从源操作数SRC传送至目的操作数DEST。push 入栈
pop 出栈
算数、逻辑运算指令:
如add、sub、mul、div、and、or、xor等算数逻辑运算。(add eax,1) (add eax,ebx)
- 控制执行流程指令:
cmp:对两个操作数执行减法操作,修改状态标识寄存器Z。
test:对两个操作数执行与操作,修改状态标识寄存器。
jmp:强制跳转指令。 jump - 条件跳转指令,包括jz、jnz等,这里的z代表的是ZF标志位,如图3,是条件跳转指令表。

题型
勒索病毒
- 加密算法:AES,DES,RSA,RC4等
- 文件相关:后缀,文件名,监控文件注册表等变化工具:procmon(火绒剑)
- 相关提示信息:警告.txt,钱包地址
远控木马
- C2地址,端口,执行功能(监控键盘记录,监控屏幕)
C/C++逆向
python逆向
混淆的py源码
pyc文件,反编译方法:uncompyle3,pycdc,在线网站,转字节码
1 | import dis |
Pyinstaller 打包的exe:pyinstxtractor-ng
pyd,cpython:ida
.net逆向
dnspy