RE入门——初学者常规做题步骤

本文为逆向工程初学者提供了一道题目的解题步骤,包括查壳、查看题目文件、静态分析和动态调试。通过实际操作介绍如何使用工具如DetectItEasy、exeinfope、IDA等进行分析,解析了如何识别文件格式、查找字符串、理解函数逻辑,并在动态调试中观察程序运行状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以一道题来看一下逆向做题的常规步骤
(针对于初学者,比较简略,如有错误,敬请指正)
例题为BUU的刮开有奖,题目描述如下
在这里插入图片描述

第一步 查壳

拿到题目先看一下文件格式和有无壳,有壳则脱壳,无壳就可以根据文件格式直接静态分析了。
使用工具:DetectItEasy 或者 exeinfope

也可以在Linux下使用file命令![在这里插入图片描述](https://img-blog.csdnimg.cn/96ee47f52a79454f83680f8aebbc2210.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBATWVyMTB0,size_20,color_FFFFFF,t_70,g_se,x_16可以看到是32位的PE文件,编译器和链接器这里能看出是什么语言编写编译的,如果有壳也会出现packer提示,指出是什么壳和壳的版本号。

第二步 查看题目文件

先看一下题目程序的内容和结构(在确定不是病毒文件的情况下,推荐在虚拟机里打开,尽量不要在物理机):
弹出一个图片,图片不能移动或修改
在这里插入图片描述
一般在这一步获取到题目是否输出字符串?是否有check?有无提示?如果是游戏题是否可以直接玩出来?有无出题人联系方式?(狗头)
比如:
在这里插入图片描述

第三步 静态分析

静态分析顾名思义就是看静态代码,分析逻辑
使用工具:IDA一把梭
根据之前查壳的时候的文件类型,64位就用IDA64打开,32位就用IDA32打开。
美女有什么坏心思呢
IDA的使用详情可见此文章
shift + F12 看一下字符串:
在这里插入图片描述

F5看一程序主体:

  if ( a2 == 272 )
    return 1;
  if ( a2 != 273 )
    return 0;
  if ( (_WORD)a3 == 1001 )
  {
   
    memset(String, 0, 0xFFFFu);
    GetDlgItemTextA(hDlg, 1000, String, 0xFFFF); //flag是我们输入的值,也就是String
    if ( strlen(String) == 8 )//String为8位
    {
   
      v7[0] = 90;
      v7[1] = 74;
      v8 = 83;
      v9 = 69;
      v10 = 67;
      v11 = 97;
      v12 = 78;
      v13 = 72;
      v14 = 51;
      v15 = 110;
      v16 = 103;
      sub_4010F0(v7, 0, 10);
      memset(v18, 0, 0xFFFFu);
      v18[0] = String[5];
      v18[2] = String[7];
      v18[1] = String[6];
      v4 = (const char *)sub_401000(v18, strlen(v18))
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值