返回列表 发新帖

RzDroid更新以及逆向入门教程

  [复制链接]

29

主题

519

回帖

3200

积分

大学生

Rank: 5Rank: 5

金币
1612
好评
76
信誉
120

考神MT论坛最佳新人

QQ
发表于 2026-5-21 01:22:59 来自手机  | 显示全部楼层 | 阅读模式  来自 河南
本帖最后由 莫岚暮 于 2026-5-21 01:36 编辑

RzDroid,以下简称RD

RzDroid允许你在手机上进行简单的二进制文件分析,它的反编译和控制流图功能表现很出色,因为我在这两个板块下了相当大的工夫,并且RD可以不依赖AI生成高质量表达的反编译C代码,甚至可以让大家像使用BN一样将反编译代码也转进控制流图里面。

开始之前,首先请下载最新版RD,本篇教程围绕RD26.4.0版本展开:小飞机网盘,下载不限速、一键转存无上限、在线播放无损音视频。复制这段内容打开「小飞机网盘」APP即可获取
链接:https://share.feijipan.com/s/2xalVCkF

你也可以去看看RD的基础操作教程:传送门

不过在教程开始前,请确保使用软件为26.4.0

我先自己做了一个Crackme小程序,它要求用户输入自己的id以及id对应的key,错误的key会导致验证失败。现在让我们打开RD看看这个程序内部发生了什么奇妙的事情

打开这个文件,分析完毕后可以直接从这里打开main函数,会自动弹出汇编代码窗口

汇编代码理解起来肯定麻烦,这个时候可以打开控制流图
选一个你喜欢的样式
并将内容改为"反编译"
这样你就会发现展现出来的都是通俗易懂的代码啦往下找找我们可以看见这个
CFG将逻辑直接呈现出来:当iVar2为0时,就打印"欢迎使用",否则打印"密钥错误"。

Crack这个程序有两种方法,第一种是直接patch掉这个逻辑,让它始终走成功分支,另一种是研究这个程序做了什么事,从而根据id将key手动算出来。我两种方式都讲,慢慢来

第一种方法:
回到汇编代码这个地方,发现这里有一条cbnz指令,它的作用是:判断一个寄存器的值是否不等于0,如果不等于0,就跳转到指定地址继续执行,否则顺序执行下一条指令。
cbnz跟着的地址是0x00100afc,双击这一行汇编,然后在弹出的菜单中点击"跟随跳转",看看这个地址有啥东西
不出所料,这里就是密钥错误的逻辑代码

同时也验证了之前反编译的代码,iVar2不等于0时就走验证失败这条分支。
要改起来呢也是十分的简单,既然程序要在满足一定条件时把逻辑跳走,那我们不让它跳走就行了,所以...

再次双击这一行,点击用NOP填充当前指令
之后是这样
这个时候再打开控制流图看已经没有分支了
写出文件运行一下看看

完美Crack

第二种方法:
依旧打开反编译窗口,点击"浏览",这个是专门为手机竖屏模式做的
效果是这样

根据这些代码可以看出来
  1. sVar9 = 0;
  2.                 dVar10 = 0x6d6f4d55;
  3.                 dVar8 = 0;
  4.                 do {
  5.                     dVar8 = dVar8 + 1;
  6.                     dVar10 = dVar7 + sVar9 ^ dVar10;
  7.                     sVar9 = sVar9 + 0x45d9f3b;
  8.                     dVar7 = (uint32_t)abStack_b8[dVar8];
  9.                     dVar10 = (dVar10 >> 0x1b | dVar10 << 5) + (dVar10 >> 2) + 0x9e3779b9;
  10.                     dVar10 = dVar10 ^ dVar10 >> 0xb ^ dVar10 * 0x80;
  11.                 } while (dVar7 != 0);
  12.             }
  13.             sVar5 = strlen((char *)abStack_b8);
  14.             dVar10 = (int32_t)sVar5 * 0x27d4eb2d ^ dVar10;
  15.             dVar7 = (dVar10 ^ dVar10 >> 0x10) * -0x7a143595;
  16.             dVar7 = (dVar7 ^ dVar7 >> '\r') * -0x3d4d51cb;
  17.             snprintf(acStack_108,9,"%08X",(uint64_t)(dVar7 ^ dVar7 >> 0x10));
  18.             iVar2 = strcmp(acStack_f8,acStack_108);
复制代码


你甚至可以直接扔给AI


​程序会遍历id字符串的每一个字符,然后将当前字符的ASCII值加上sVar9,然后与当前的哈希值 dVar10进行异或

sVar9每次累加固定常数0x45D9F3B

(dVar10 >> 0x1b | dVar10 << 5)实际上是对32位整型进行循环左移5位,随后加上(dVar10 >> 2) 和常数0x9E3779B

最后通过dVar10 = dVar10 ^ (dVar10 >> 11) ^ (dVar10 * 0x80)打乱二进制位

​当遍历完所有字符后,进行最后的散列混淆
​混合字符串长度:dVar10 = (id长度 * 0x27D4EB2D) ^ dVar10
​第一轮乘法混淆:将dVar10高低位异或后,乘以-0x7A143595(即无符号32位下的 0x85EBCA6B)
​第二轮乘法混淆:右移13位异或后,乘以-0x3D4D51CB(即无符号32位下的 0xC2B2AE35)
​最终高低位再次异或,并格式化为8位大写的十六进制字符串

分析完了,让我们写个python来试试

输入id为momu,给出的key为2139E3FE

运行验证一下:
用其它id也是没问题的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
已有2人评分好评 金币 理由
青春向上 + 1 + 1 大佬,出品必属精品。
去追随彩虹海 + 1 + 1

查看全部评分 总评分:好评 +2  金币 +2 

回复

使用道具 举报

10

主题

1410

回帖

7279

积分

硕士生

Rank: 6Rank: 6

金币
586
好评
24
信誉
175
发表于 2026-5-21 01:31:52 来自手机  | 显示全部楼层  来自 河南
看看这个
回复

使用道具 举报

118

主题

2439

回帖

6638

积分

硕士生

Rank: 6Rank: 6

金币
312
好评
53
信誉
25

MT论坛最佳新人MT论坛新人考神MT论坛帅哥

发表于 2026-5-21 01:34:37 来自手机  | 显示全部楼层  来自 河南
挽尊
回复

使用道具 举报

21

主题

2163

回帖

6700

积分

硕士生

Rank: 6Rank: 6

金币
4602
好评
3
信誉
101

MT论坛最佳新人MT论坛帅哥MT论坛新人

发表于 2026-5-21 01:34:57 来自手机  | 显示全部楼层  来自 马来西亚
看隐藏
回复

使用道具 举报

3

主题

3028

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
3331
好评
7
信誉
100

MT论坛最佳新人考神

发表于 2026-5-21 01:36:11 来自手机  | 显示全部楼层  来自 山西
看看隐藏
回复

使用道具 举报

47

主题

2492

回帖

1万

积分

博士生

MTHUGO

Rank: 7Rank: 7Rank: 7

金币
1463
好评
23
信誉
101

MT论坛新人考神

发表于 2026-5-21 01:38:55 来自手机  | 显示全部楼层  来自 广东
谢谢分享
回复

使用道具 举报

85

主题

7249

回帖

2万

积分

博士后

Rank: 8Rank: 8

金币
777
好评
96
信誉
147

考神MT论坛活跃会员MT论坛新人MT论坛最佳新人MT论坛帅哥MT论坛侠客挂机大佬

发表于 2026-5-21 01:45:03 来自手机  | 显示全部楼层  来自 新疆–库尔勒
看看隐藏
回复

使用道具 举报

1

主题

139

回帖

486

积分

初中生

Rank: 3Rank: 3

金币
375
好评
0
信誉
100
发表于 2026-5-21 01:53:24 来自手机  | 显示全部楼层  来自 河南–巩义
学习学习
回复

使用道具 举报

8

主题

605

回帖

1772

积分

高中生

null

Rank: 4

金币
844
好评
2
信誉
102
发表于 2026-5-21 01:54:38 来自手机  | 显示全部楼层  来自 广西
大佬牛批
回复

使用道具 举报

45

主题

2136

回帖

7484

积分

硕士生

Rank: 6Rank: 6

金币
2063
好评
12
信誉
102
QQ
发表于 2026-5-21 01:55:02 来自手机  | 显示全部楼层  来自 广西
支持
回复

使用道具 举报

20

主题

1880

回帖

6495

积分

硕士生

纯小白

Rank: 6Rank: 6

金币
2451
好评
2
信誉
102

考神MT论坛最佳新人MT论坛新人MT论坛帅哥

发表于 2026-5-21 02:06:04 来自手机  | 显示全部楼层  来自 浙江
看看隐藏
回复

使用道具 举报

1

主题

1627

回帖

4178

积分

大学生

Rank: 5Rank: 5

金币
615
好评
0
信誉
100
发表于 2026-5-21 02:35:48 来自手机  | 显示全部楼层  来自 广西
看看隐藏内容
回复

使用道具 举报

0

主题

246

回帖

1201

积分

高中生

Rank: 4

金币
131
好评
0
信誉
108
发表于 2026-5-21 02:36:47 来自手机  | 显示全部楼层  来自 江苏
看看隐藏
回复

使用道具 举报

14

主题

1588

回帖

5807

积分

硕士生

Rank: 6Rank: 6

金币
4137
好评
3
信誉
100

MT论坛最佳新人考神

发表于 2026-5-21 03:16:32 来自手机  | 显示全部楼层  来自 江苏
学习一下
回复

使用道具 举报

17

主题

896

回帖

3793

积分

大学生

ee

Rank: 5Rank: 5

金币
479
好评
6
信誉
123

考神MT论坛新人MT论坛帅哥

发表于 2026-5-21 03:29:50 来自手机  | 显示全部楼层  来自 陕西
牛 b 啊 大佬好厉害呀
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表