OD修改特征码技术详解
需积分: 49 52 浏览量
更新于2024-09-15
收藏 19KB DOCX 举报
"OD修改特征码的经典方法"
在逆向工程领域,修改特征码是一种常见的反病毒技术,用于规避杀毒软件的检测。本资源主要介绍了使用OllyDbg(OD)这一动态调试工具来修改特征码的经典方法。下面将详细阐述这两种主要的修改技巧:ADD改ADC和CMP改SUB。
**A开头部分:**
这部分主要展示了如何通过替换ADD指令来避免特征码被识别。ADD是汇编语言中的加法操作,而ADC则是带进位的加法。在某些情况下,通过将ADD指令替换为ADC,可以改变代码执行逻辑,从而改变特征码。例如:
1. `ADD [EAX],CH` 可以改为 `ADC [EAX],DH`
2. `ADD[EAX],BH0038` 可以改为 `ADD[EAX+40],AL004040`
3. `ADD[EAX+EAX*2+46],AL` 可以改为 `ADD[EAX+EAX*2+46],CL`
4. `ADD[EAX+40],DL005040` 可以改为 `ADD[EAX+40],DL`
5. `ADDAH,CH00EC` 可以改为 `ADDAH,DH`
这些替换旨在保持程序功能的同时,使特征码变得不同,从而逃避杀毒软件的检测。
**C开头部分:**
这部分涉及到的是如何通过替换CMP和CALL指令来实现特征码的修改。
1. `CMP改SUB`:CMP指令用于比较两个操作数,而SUB是减法操作。如果发现CMP指令后面跟着条件跳转(如JNZ),可以尝试将CMP替换为SUB,然后修改条件跳转,使得原本的条件不成立变为成立,以此改变执行路径,避开特征码的检查。
2. `CALL改NOP`:CALL指令用于调用函数,可以通过将其替换为NOP(空操作)指令来消除功能,但这样可能会破坏程序的正常运行。因此,更常见的是寻找附近的NOP指令,将其替换为CALL的地址,以保持功能的同时改变特征码。
3. `JNZ跳转修改`:如果CMP后有JNZ(不等于则跳转)指令,可以尝试修改跳转目标,使其总是跳过比较,从而绕过特征码的检测。
4. `CALLEAX|CALLEBX`:这些是基于寄存器的调用,可以考虑修改调用地址或在调用前后的指令,以混淆特征码。
OD修改特征码的经典方法主要是通过对关键指令的替换和调整,改变代码执行流程,以达到逃避杀毒软件检测的目的。然而,这些方法需要深入理解汇编语言和程序执行逻辑,而且对于现代的高级杀软,这种方法可能并不总是有效,因为它们可能会采用更复杂的检测机制,如行为分析和启发式扫描。因此,在实际应用时,还需要结合其他反逆向工程技术,如虚拟化、混淆等,以提高代码的抗分析能力。
2011-11-05 上传
2012-06-11 上传
2010-07-01 上传
2010-02-21 上传
hlwin1988
- 粉丝: 1
- 资源: 9
最新资源
- Fisher Iris Setosa数据的主成分分析及可视化- Matlab实现
- 深入理解JavaScript类与面向对象编程
- Argspect-0.0.1版本Python包发布与使用说明
- OpenNetAdmin v09.07.15 PHP项目源码下载
- 掌握Node.js: 构建高性能Web服务器与应用程序
- Matlab矢量绘图工具:polarG函数使用详解
- 实现Vue.js中PDF文件的签名显示功能
- 开源项目PSPSolver:资源约束调度问题求解器库
- 探索vwru系统:大众的虚拟现实招聘平台
- 深入理解cJSON:案例与源文件解析
- 多边形扩展算法在MATLAB中的应用与实现
- 用React类组件创建迷你待办事项列表指南
- Python库setuptools-58.5.3助力高效开发
- fmfiles工具:在MATLAB中查找丢失文件并列出错误
- 老枪二级域名系统PHP源码简易版发布
- 探索DOSGUI开源库:C/C++图形界面开发新篇章