《加密与解密》笔记(三)

手动脱壳一般分为三步:1.查找程序的真正入口点2.抓取内存映像文件3.PE文件重建

 

程序的真正入口点称为OEP original entry point

 

抓取内存映像,也称为转存,即Dump

 

主要的两类反汇编算法是线性扫描算法和递归行进算法

线性扫描算法的缺点是使得无法将代码和数据分开,数据也将被作为代码来解码,从而导致反汇编出现错误

 

巧妙构造代码和数据,在指令流中插入很多“数据垃圾”,从而使反汇编无法缺点起始位置,这类代码数据称为“花指令”

 

对于多字节指令来说,反汇编软件需要确定指令的第一个字节的起始位置,操作码的位置,才能正确反汇编

 

SMC:self-modifying code在一段代码执行之前先对它进行修改

 

不同的字节码之间不通用

 

虚拟机保护技术即使将基于X86汇编系统的可执行代码转换为字节码指令系统的代码。这种指令执行系统和intel80x86指令系统并不在同一个层次上,比如说80x86汇编指令是在CPU中执行的,而字节码指令系统是通过解释指令来执行的,字节码指令系统建立在x86指令系统上

 

字节码其实就是指令执行系统定义的一套指令和数据组成的一串数据流

 

指令按功能分为4类:

普通指令:算术指令,数据传输指令

栈指令:poppush等进行栈操作的指令

流指令:jmp,jmpc,call,retn等会更改程序执行流程的指令

不可模拟指令:无法再次模拟,如int3,syscenter,in,out

 

Windows操作系统提供了2中层次的进程控制和修改机制:1.跨进程内存存取机制

2.Debug API监控目标进程运行信息

 

数据对象是CPU结构的一部分,对齐的目的是为了提高CPU运行效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值