Notes-Reverse
写十种注入方式,demo,防护
IDA 定位 main 函数
强制解释为代码/汇编,格式转换,n/d键
IDA自动识别特征码函数,从系统lib提取,自动替换标识
- 识别程序所用的lib
- link -lib /extract:build\intel\st_obj\printf.obj libc.lib ;生成printf.obj
- pcf printf.obj ;生成printf.pat特征码文件
- sigmake -n”vc6_printf” printf.pat printf.sig
三操作数值
加一位等于乘于二??
shl edx, 1
左移一位等于 2^
汇编优化
数学方面的,移位,高版本优化,优化模型
无符号、有符号数操作,后期补,加减乘除汇编代码
有种在熟悉常见的汇编表达的感觉,算是在补基础
基本信息收集
静态分析:
C/C++语言 -> IDA Pro
Delphi -> Delphi Decompiler
VB ->
.NET(C#) -> dnspy
Java -> JUI 反编译
- API信息
- 查看导入的API
- 看导出的API
- 查看字符串信息
动态调试:
- 创建DLL到临时目录,在创建文件和关闭文件汇编中间拷贝出生成的DLL(动态调试)
脱不掉壳&调试软件打不开:
行为监控
- PCHunter
- HRSword
- 火绒剑
- Process Monitor
检查壳和开发语言工具:
DIE_winxp_portable_3.01
exeinfope
PEID 0.95
壳
原理
壳 - 保护可执行文件(*.exe,*.dll)
压缩壳 - 减小可执行文件体积
加密壳 - 对抗逆向分析
UPX压缩壳
空节,sizeofImage
硬件断点、执行断点、内存断点
- 识别是否加壳
- 找OEP(入口点)
- 远跳,跨节
- 经验看所有的OEP,熟悉OEP,汇编无特征
- ESP定律
- API
- 单步跟踪(步过循环,只向跳转)
- dump
- 修复PE
无对抗修表
手动dump一次
压缩壳实现(加壳部分)
压缩壳实现(壳代码部分)
脱壳