吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3611|回复: 29
上一主题 下一主题
收起左侧

[Android 原创] 小白反编译某手游(一):工具&环境配置

  [复制链接]
跳转到指定楼层
楼主
ywx1987 发表于 2023-9-26 20:41 回帖奖励

背景:反编译一款APP手游,由cocos2dx开发,解密出lua脚本及资源素材。

一、需要的工具和环境

1、PYTHON 3.11.2

2、VSCODE

3、FRIDA 16.1.4

4、NODEJS 18.17.1

5、ADB

6、一台ROOT后的手机(不建议用模拟器,有坑)

7、IDA 7.7 PRO

8、XXTEA解密器

9、TexturePacker 6.0.1

10、luajit-decompiler-V2

二、配置工具和环境

PYTHON  安装及配置

1、本次反编译用到的PYTHON为3.11.2版本,下载地址:https://www.python.org/downloads/release/python-3112/,一直下拉到底可以看到下载地址。

如果是64位系统点击下载我标识的安装包即可,下载下来是一个exe程序,直接一路下一步到安装完成即可。

2、默认安装完成后的路径会在C:\Users\你的电脑用户名\AppData\Local\Programs\Python\Python311

3、打开电脑的"编辑系统环境-高级-环境变量",双击Path进入编辑

4、新建两条环境变量:

C:\Users\你的电脑用户名\AppData\Local\Programs\Python\Python311

C:\Users\你的电脑用户名\AppData\Local\Programs\Python\Python311\Scripts

5、设置完成后打开CMD,输入:

>>python --version

Python 3.11.2 //该内容为上面的指令输入后会输出的,能正常输出即表示安装配置成功

VSCODE**FRIDA**NODEJS  安装及配置

1、VSCODE的安装就不详述了,这玩意傻瓜式安装即可。安装完成后点击左侧扩展,搜索python进行安装

2、在顶部选择"终端-新建终端",在终端中输入如下信息,安装FRIDA:

>>pip install frida=16.1.4
>>pip install frida-tools

3、安装完成后,打开CMD,输入:

>>frida --version

16.1.4 //该内容为上面的指令输入后会输出的,能正常输出即表示安装配置成功

4、因为FRIDA支持PYTHON和NODEJS脚本,但对JS的支持更好,后续HOOK也基本上会用JS来写,所以接着安装NODEJS。

下载NODEJS,地址:https://nodejs.org/dist/v18.17.1/node-v18.17.1-x64.msi,下载完成后也是无脑点下一步安装即可。

5、安装完成后,配置系统环境变量,将NODEJS以下加入环境变量中(根据你自己安装位置的差别,替换下位置):

C:\Program Files\nodejs\

C:\Program Files\nodejs\node_global

6、打开CMD,输入:

>>node -v

v18.17.1 //该内容为上面的指令输入后会输出的,能正常输出即表示安装配置成功

PS:到此处Frida的客户端是安装完成了,但是在手机上的服务端还没有安装,会在下面ROOT一台手机的板块说明。

ADB  安装及配置

1、因为我没有纯装ADB过,所以我是先安装了一个雷电模拟器。然后在雷电模拟器安装的根目录下就有ADB,我就直接用了。

2、因此,只需要下载安装一个雷电模拟器,然后通过环境变量,增加一下雷电安装的根目录位置即可。

3、我的雷电模拟器是安装在D:\LeiDian\LDPlayer4,因此在环境变量中直接新增这个位置就好了。

4、打开CMD,输入:adb,回车后能获得一大串内容即表示配置成功了。

ROOT 一台手机

说明:非常不建议大家用FRIDA去跟模拟器配合,因为模拟器的架构是x86的,手机的架构是arm64的,因此,如果你要处理的APP没有为x86框架单独做支持,那么后面IDA的分析和HOOK都完全找不到北。(判断APP是否支持x86架构的方法是:将你的APP后缀从.apk改成.zip,然后解压后,看lib文件夹中有没有x86的文件夹,没有的话表示不单独支持x86架构,一般我们分析arm64的就好),我这里ROOT的是一款小米手机,安卓系统版本是 Android 11。

1、解锁小米BL操作教程:https://www.bilibili.com/video/BV1ba411h7xC/

2、刷入第三方Recovery TWRP:https://www.bilibili.com/video/BV1ku411D7pL

3、刷入Magisk:https://www.bilibili.com/video/BV1zP4y1c7J6/

4、用USB线将手机和电脑连接起来,在电脑上打开CMD,输入:

>>adb shell
>>su

5、此时打开你手机上的Magisk软件,下边栏里面点一下"超级用户"功能,进去可以看到你刚才连入手机的电脑信息,把他的开关打开给他授权。

6、下载你安装的对应版本的FRIDA的服务端推送到手机上,因为我之前安装的FRIDA客户端版本是16.1.4,所以从官网下载他对应的服务端文件https://github.com/frida/frida/releases/download/16.1.4/frida-server-16.1.4-android-arm64.xz,将下载后的文件解压后得到文件:frida-server-16.1.4-android-arm64(假设存在位置在D:\)

7、打开电脑的CMD,输入:

>>adb push D:\frida-server-16.1.4-android-arm64 /data/local/tmp
>>adb shell
>>su
>>cd /data/local/tmp
>>chmod 777 frida-server-16.1.4-android-arm64
>>ls -l //这条指令能够帮助你查看下chmod是否生效将文件的可读权限成功改成了-rwxrwxrwx

其他配置项

至此,各方面环境基本上已经OK了。如果想在FRIDA的HOOK过程中需要脚本提示。可以跟着我这样操作:

1、未来打算HOOK的文件都放到D:\HOOK文件夹中。打开CMD,输入:

>>cd D:\HOOK
>>npm install --save @types/frida-gum

2、在D盘建立一个HOOK文件夹,创建一个hook.js的文件。用VSCODE打开它,创建两个终端:

2.1、在第一个终端中输入(作用为启动FRIDA服务端和转发端口):

>>adb forward tcp:27042 tcp:27042
>>adb forward tcp:27043 tcp:27043
>>adb shell
>>su
>>cd /data/local/tmp
>>./frida-server-16.1.4-android-arm64 //输入完该条指令后,没有返回任何提示表示OK,并且不要关掉该终端

2.2、在第二个终端中输入(测试FRIDA服务端是否正常启动,并教你如何运行HOOK脚本):

>>cd D:\HOOK
>>frida-ps -U //输入该指令后会列出当前手机所有运行的程序,能正常列出表示手机的FRIDA服务端正常运行
>>frida -U -f 包名 -l hook.js //以后脚本需要调整,在VSCODE打开的hook.js里面调整就好了,hook的反馈是及时生效的

免费评分

参与人数 8吾爱币 +8 热心值 +6 收起 理由
junjia215 + 1 + 1 用心讨论,共获提升!
kanbekotaro + 1 我很赞同!
k854053320 + 1 + 1 用心讨论,共获提升!
a33463 + 1 热心回复!
zht0704 + 1 + 1 我很赞同!
debug_cat + 1 + 1 谢谢@Thanks!
mmjqzf123 + 1 + 1 我很赞同!
自由之心 + 2 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
 楼主| ywx1987 发表于 2023-9-27 13:09 |楼主
hkok456 发表于 2023-9-27 12:30
python  安装教程都有了

是啊,我自己也还比较初级,每次看各位大佬的一些帖子或资料,但环境匹配不上总会出现各种各样的问题让人奔溃。所以我怎么操作的,什么环境全部一一说明,确保到按照这个操作大家都一定可以ok
推荐
 楼主| ywx1987 发表于 2023-10-9 17:37 |楼主
stacia 发表于 2023-9-28 16:56
请问如果我是用安卓虚拟机,那么用ida和Frida是不是就没问题了?
如果也不行,那是不是我host不用x64而是 ...

在PC上运行的安卓虚拟机,据我了解都是X86架构的,这个我没找到可以改的方式。
如果X86架构,这个APP又没有单独做这个架构的适配,就会导致在虚拟机中运行的那些SO等文件名全部会变掉。这样用Frida去HOOK原来的so文件是HOOK不到的。这样会大大增加分析麻烦。
沙发
homehome 发表于 2023-9-27 08:08
完整地介绍了工具和环境,这个很重要。谢谢楼主。
3#
meca_keen 发表于 2023-9-27 08:10
楼主非常耐心的讲解了配置步骤,对小白很友好,赞
4#
xtxwy 发表于 2023-9-27 08:50
谢谢分享小白反编译某手游(一):工具&环境配置
5#
lansemeiying 发表于 2023-9-27 08:59
强强强,学习一下
6#
feiyu361 发表于 2023-9-27 09:42
有其他工具的下载地址吗?
7#
王者归来back 发表于 2023-9-27 10:55
对小白很友好,赞
8#
mmjqzf123 发表于 2023-9-27 12:11
谢谢博主
9#
hkok456 发表于 2023-9-27 12:30
python  安装教程都有了
10#
 楼主| ywx1987 发表于 2023-9-27 13:07 |楼主
feiyu361 发表于 2023-9-27 09:42
有其他工具的下载地址吗?

晚点我传个网盘地址发给大家
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-28 07:25

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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