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/?spm_id_from=333.999.0.0&vd_source=44ef4484e82d6ef390c1b213a307defa)

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的反馈是及时生效的
```

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

完整地介绍了工具和环境,这个很重要。谢谢楼主。

meca_keen 发表于 2023-9-27 08:10

楼主非常耐心的讲解了配置步骤,对小白很友好,赞

xtxwy 发表于 2023-9-27 08:50

谢谢分享小白反编译某手游(一):工具&环境配置

lansemeiying 发表于 2023-9-27 08:59

强强强,学习一下

feiyu361 发表于 2023-9-27 09:42

有其他工具的下载地址吗?

王者归来back 发表于 2023-9-27 10:55

对小白很友好,赞

mmjqzf123 发表于 2023-9-27 12:11

谢谢博主{:1_893:}

hkok456 发表于 2023-9-27 12:30

python安装教程都有了{:301_977:}

ywx1987 发表于 2023-9-27 13:07

feiyu361 发表于 2023-9-27 09:42
有其他工具的下载地址吗?

晚点我传个网盘地址发给大家
页: [1] 2 3 4
查看完整版本: 小白反编译某手游(一):工具&环境配置