逆向工程

逆向工程有什么用

  • 破解
  • 反外挂
  • 病毒分析
  • 二进制审计

    代码保护趋势

从加壳到虚拟机技术

虚拟机技术

加大代码可读性难度

mov eax,1
会改成
mov eax,5
sbb eax
sbb eax
sbb eax
sbb eax

常见虚拟机:VMProtect,Themida,SE

常用工具

  • Ollydbg
  • IDA Pro

    Ollydbg 断点

  • IAT3

  • 硬件断点
  • 内存断点
  • 消息断点
  • 条件断点
  • 条件记录断点

IAT3断点

F2断点,添加了普通的断点,将该指令的第一个字节改为cc,用于让CPU暂停中断。

硬件断点

比较寄存器的值
寄存器DR0到DR3可以设置硬件断点
优点是速度快,不会改变源码
缺点是只有四个寄存器可以使用

内存断点

在代码节下断点(.text)可以快速回到内存段

消息断点

基于消息事件
比如在按钮上下断点

条件断点

当寄存器中数据符合某条件的时候产生中断

条件记录断点

条件日志中设置断点



IDA Pro

逆向工程从何开始

指令,一切代码终归为指令序列

例如一个C函数都做了什么。

  • stdcall调用约定(子调用函数处理堆栈)
  • c调用约定 (父调用函数处理堆栈)
  • ret

OD使用

alt+e 查看程序调用了什么库

查看在系统空间还是用户空间,看标题,module 后面是否文件名,是就是用户空间

just-in-time debugger 实时调试器,一个程序崩溃前,可以调用OD暂停在崩溃的代码前(调试IIS漏洞)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值