首页 > 其他分享 >逆向工程入门篇-概述(工具使用)

逆向工程入门篇-概述(工具使用)

时间:2024-10-28 16:16:48浏览次数:5  
标签:逆向 跳转 快捷键 入门篇 指令 概述 寄存器 断点

逆向工程入门

第一章、逆向工程概述

1.1 概述

逆向工程概述:一种产品设计技术再现过程,即对一项目标产品进行逆向分析及研究,从而演绎并得出该产品的处理流程、组织结构、功能特性及技术规格等设计要素, 以制作出功能相近,但又不完全一样的产品。

软件逆向工程是逆向工程在软件方面的应用,通过多种计算机技 术的运用来实现对软件算法、流程、结构、代码的 逆向拆解和分析,从而达到破解软件或扩展软件功能的目的。

逆向工程设计多课程,需要一边分析程序一边补充知识

常见的分析工具有IDA、OllyDbg(OD)、WinDbg等,这些都是分析程序的利器。 IDA是静态分析(不运行软件)工具,OD和WinDbg是动态分析工具。

很多软件都有壳,往往会利用PE文件结构结合加密算法对自己进行保护

学习论坛:看雪论坛、吾爱破解

动态分析:恶意程序的运行有时会给分析机器和网络带来危险, 因此往往搭建虚拟机或沙箱进行动态分析 Norman沙箱、GFI沙箱、Comodo沙箱是常见的沙箱工具

工具介绍

1.2 IDA Pro使用

用着用着就熟了,不多介绍

  • 主面板为函数窗口,反汇编窗口
  • F5转换汇编代码为伪代码模式
  • Tab:伪代码和汇编代码之间进行切换
  • 翻页:上方的回退和前进符号
  • Esc:退到之前的状态
  • 添注释:右键(汇编代码注释),/伪代码注释
  • 跳转:要跳转到某个地址或某个函数时,按G并输入要跳转的地址或函数名称,可以直接实现跳转
  • 按空格键能够 在这两种模式之间切换
  • N键, 即可对函数和变量重命名
  • X键, 就会出现所有关于该变量交叉引用列表。查看函数 的交叉引用时进行同样的操作即可
  • Y键,在弹出的窗口处输入新的变量类型
  • Shift+F12可以将程序中所有的字符串列出来
  • Alt+T可以搜索某个特定的字符串
  • 如果确信某段十六进制数据是一段指令,那么可以 按下快捷键C,它能将一段十六进制数据解释为汇 编指令。
  • 快捷键P能够将一段代码定义为函数,并且定义的 函数会在函数窗口中显示出来。
  • 快捷键U即可取消定义,并将指令或函数以十六进制的数据来显示。
  • 如果确信某段十六进制数据是字符串,快捷键A可 以将该十六进制数据转换为字符串。如果要取消转换,按下快捷键U即可
  • 快捷键H即可实现进制转换。
  • IDA会跟踪函数内每一条指令上的栈指针的变化。 如果IDA无法确定一条指令是否更改了栈指针,就需要手动调整栈指针了,否则IDA会为函数剩余部分提供一个错误的栈指针。 修改堆栈平衡的快捷键为Alt+K,打开窗口后会显示当前指令处栈顶指针ESP的值, 并且可以对当前指令对栈的改变量进行修改。
ida快捷键功能
F7单步步进
F8单步步过
F9继续运行程序
F4运行到光标所在行
Ctrl + F7直到该函数返回时才停止
Ctrl + F2终止一个正在运行的进程
F2设置断点

1.3 OllDbg

反汇编面板、寄存器面板、堆栈面板、数据面板、信息面板。

img

寄存器面板窗口:寄存器的值发生变化时颜色会变为红色

image-20241017202929154

信息面板窗口 – 在调试跟踪时,该窗口显示与指令相关的寄存器值、 API函数调用提示和跳转提示等信息

**INT3断点:**INT3指令的机器码为CC,所以通常也称之为CC指令。 当被调试进程执行INT3指令导致一个异常时,调试 器就会捕捉这个异常从而停在断点处,然后将断点 处的指令恢复成原来的指令。

用INT3断点的好处是可以设置无数个断点,缺点是 改变了原程序指令,容易被软件检测到。

INT3指令是专门用来支持调试的一条指令,它对应的机器码是0xCC。当cpu执行到这条指令是会产生异常并调用相应的异常处理程序

硬件断点:

由硬件提供给我们的调试寄存器组,可以对这些硬 件寄存器设置相应的值,然后让硬件帮我们断在需 要下断点的地址。

  • 硬件断点是CPU提供的功能,Intel 80386以上的CPU 提供了调试寄存器以用于软件调试。
  • 从Intel CPU中,DRx调试寄存器总共有8个,从DRx0 到DRx7。其中,DR0~DR3是调试地址寄存器,保存设置的硬件断点。

硬件断点的设置只需鼠标右键并依次点击: Breakpoin即可。取消断点的操作则需依次点击:Debug->Hardware breakpoints,然后在弹出的窗口中删除硬件断点(或者BreakpointRemove Hardware breakpoints )

硬件断点优点是速度快,在INT3断点容易被发现的地方,使用硬件断点来代替会有很好的效果,缺点就是最多只能设置 4个断点

内存断点 – 修改内存访问属性来触发内存访问错误而设置的断点称为内存断点。

设置内存断点只需鼠标右键并依次点击: Breakpoint->Memory, on access/Memory, on write

image-20241017203757588

在OD中按下快捷键Ctrl+G可以直接跳转到对应的地址处。

如果要查看某个地址的数据,那么点击一下数据窗口,然后按下快捷键便可跳转到对应地址。

同理,如果要查看汇编代码或是堆栈数据,采取同 样的操作即可。

image-20241017204415434

标签:逆向,跳转,快捷键,入门篇,指令,概述,寄存器,断点
From: https://blog.csdn.net/LH1013886337/article/details/143305321

相关文章

  • js逆向笔记
    Cookie和Session:服务器和客户端的交互仅限于请求/响应过程,结束之后便断开,在下一次请求时,服务器会认为新的客户端。为了维护他们之间的链接,让服务器知道这是前一个用户发送的请求,必须在一个地方保存客户端的信息。Cookie:通过在客户端记录的信息确定用户的身份。Session:通过......
  • 某帮的app协议逆向记录
    花了一天的时间看某帮,apk使用腾讯加固,脱壳后部分大的函数jadx和jeb都反编译失败,全程靠fridahook观察。主要的2个消息:pluto/app/antispamapp启动时候触发,动态协商密钥。这里没有签名可重放1客户端生成10个字节的随机字符串,假设叫client_random_key。client_random_key按固定......
  • 逆向 | 双进程保护模板
    逆向|双进程保护模板继续补充书中的代码:#include<stdio.h>#include<Windows.h>#define_PEBvoidintFatherProcessMain();intChildProcessMain();//提前声明函数intmain(){ _PEB*pPEB=0; _asm{ moveax,dwordptrfs:[0x18]; moveax,dwordptr......
  • 计算机组成原理 | 第一章 计算机系统概述 习题1
    1.3冯·诺依曼结构计算机的基本思想是什么?按此思想设计的计算机硬件系统应由哪些部件组成?它们各有何作用?(P4-6)冯·诺依曼结构计算机的主要设计思想是存储程序和程序控制。存储程序就是将解题的步骤编制成程序,然后将程序和运行程序所需要的数据以二进制的形式存放到存储器中,方便执......
  • js逆向,自动吐环境代码
    functionget_enviroment(proxy_array){for(vari=0;i<proxy_array.length;i++){handler='{\n'+'get:function(target,property,receiver){\n'+'console.log("方法:","get","对象:"......
  • js逆向实战之某网游登录参数password加密
    声明:本篇文章仅用于知识分享,不得用于其他用途网址:https://www.37.com/加密逻辑访问网址,输入用户名和密码,看触发哪些数据包。注意:这里的流量包要选择all,如果选择fetch/XHR则看不到任何数据包。明显看到password被加密了,先去搜索url中的关键字api/login.php。可以看到......
  • js逆向实战之某天下登陆参数pwd加密逻辑
    声明:本篇文章仅用于知识分享,不得用于其它用途网址:https://passport.fang.com/加密逻辑随便输入用户名和密码,看触发的数据包。可以看到pwd明显被加密了,全局搜索url中的关键字loginwithpwdStrong.api。只有两处,全部打上断点,重新登录一次,看触发哪个。触发了jquery这里,并且......
  • js逆向实战之某乐网登录参数pwd加密
    声明:本篇文章仅用于知识分享,不用于其他用途网址:https://oauth.d.cn/auth/goLogin.html解密逻辑分析访问网址,随便输入用户名和密码,看触发的流量包。可以看到用户名是明文的,密码却是经过加密的,我们先看看是不是常用的加密。利用网站https://1024tools.com/hash查看。经过......
  • Sqoop迁移工具大全. [概述,特点,安装与使用.最后详细阐述和DataX,Kettle等迁移工具的
    目录一,Sqoop的概述二,Sqoop的特点三,Sqoop的安装四,Sqoop快速入门五,从MySQL中导入数据到HDFS中六,从MySQL导入数据到Hive中七,从MySQL导入到Hive中并且存储格式是ORC八,Sqoop和DataX以及Kettle的区别一、Sqoop二、DataX三、Kettle四、总结一,Sqoop的概......
  • Bd-Ticket-Guard-Client-Data逆向
    'Bd-Ticket-Guard-Client-Data':'eyJ0c19zaWduIjoidHMuMS43ODhkMTE1OTUwMTM1NDVhNjg5M2I0OGU3NTQ2NDk5NjZjNTMyYzBhZmMxMjRjMTUwNGQ1OTVjNDJiOWI1ZDk0YzRmYmU4N2QyMzE5Y2YwNTMxODYyNGNlZGExNDkxMWNhNDA2ZGVkYmViZWRkYjJlMzBmY2U4ZDRmYTAyNTc1ZCIsInJlcV9jb250Z......