软件逆向学习笔记

  软件逆向涉及的知识领域较广,特别是对分析师的编程基础要求较高,而且多存在于软件破解、病毒分析等领域。

  因此软件逆向对多种编程语言的阅读和编写能力要求较高,而且对汇编、C/C++尤其如此,同时对操作系统原理、内核以及Win32 API均有了解和掌握。

  软件逆向一般以OllyDbg和IDA两种软件为工具,且OllyDbg侧重动态分析,IDA侧重静态分析(因此多用于病毒分析)。下面将以OllyDbg学习过程为主介绍逆向。

 

 

下面为逆向中常用技巧:

  OllyDbg红色标记表示修改的部分,可以撤销;

  OllyDbg中比较有用的指令便是Assemble,用于修改程序代码;

  内存中以小尾方式存储数据,一般右侧为高地址,而数据一般为左侧高地址,因此常出现倒置的数据,如内存中 0x00401000开始的一段数据 00 EF 3E 67,读入后应解释为0x673EEF00,八位(一个字节)为一个单位;

 

 

汇编知识:

  MOVSX “带符号扩展的传送指令 ”和 MOVZX “带0扩展的传送指令” 均为由低位(如16位)向高位(如32位)寄存器存数据时的命令,如MOVSX EAX,CX

  XCHG “交换 寄存器/内存单元 和 寄存器”,操作数可为寄存器或内存单元

  LEA “取地址指令”  第一个操作数是一个通用寄存器,第二个操作数是一个内存单元。当计算的时候要依赖于之前的结果的话,那么这个指令就非常有用。

 

OllyDbg红色标记修改的部分
堆栈向低地址增长
一个数据左侧为高

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值