Android逆向分析基础(二)

admin 2022年6月20日10:29:13移动安全评论12 views3375字阅读11分15秒阅读模式


Android逆向分析基础(二)



手游安全之cocos2d-x的源码浅析(手游逆向与防护)


一、Frida支持的功能及作用

二、安装和搭建Python环境

三、安装和搭建Frida环境

   1.安装pip

   2.安装frida

   3.验证frida是否安装成功

   4.卸载frida

   5.获取frida安装版本对应的frida-server版本

   6.验证frida是否能正常使用

   7.Frida JavaScript API的官网

   8.Ubuntu环境修改系统默认python版本为3.8.2(并更新)

四、Frida的使用实例

   1.Hook Android Java层

   2.Hook Android Native层

   3.Hook Unity3d获取解密后的dll

   4.Hook Cocos获取解密后的lua源码

五、Frida js Hook

 

一、Frida支持的功能及作用

 支持Android/IOS等多平台Hook


二、安装和搭建Python环境

1.安装Python版本(比如:Python 2.7.5),安装最新版本的Python容易导致安装Frida时报错

 

2.把Python的默认安装路径配置到系统环境变量(默认安装路径配置好后可以直接使用pip命令

C:python27-x64C:python27-x64Scripts


3.验证Python是否安装成功(管理员权限执行如下命令

python --version


Android逆向分析基础(二)

Android逆向分析基础(二)


Android逆向分析基础(二)

  

三、安装和搭建Frida环境

1.安装pip

1)最新pip的下载地址

https://pypi.python.org/pypi/pip


2)解压安装

python setup.py install


2.安装frida

1)最新frida源码或frida-server的下载地址

https://github.com/frida/frida/releases


2)通过pip安装frida(Windows环境的首选安装方法,默认安装最新版本的

frida)pip install numpy matplotlibpip install fridapip install --user frida
pip install frida-toolspip install frida-tools --user
npm config set unsafe-perm truenpm install frida-compile -gnpm install frida-compile


3)编译frida源码安装(适合于Ubuntu环境的安装,Windows环境可能会导致编译出错

makemake install

 

4)安装frida过程pip会提示PermissionError的解决方法

pip install --user frida


3.验证frida是否安装成功

frida --version


4.卸载frida

pip uninstall frida


5.获取frida安装版本对应的frida-server版本

1)frida和frida-server的版本号必须保持一致

2)使用root过的Android手机或模拟器

3)frida-server与Android手机或模拟器的架构必须保持一致(arm 32或arm 64或x86

4)把frida-server拷贝到root过的Android设备中

adb push frida-server /data/local/tmp/


5)修改frida-server的权限

chmod 777 frida-server

 

6.验证frida是否能正常使用

1)手机端(执行frida-server

./frida-server


2)PC端(转发Android tcp端口到本地

adb forward tcp:27042 tcp:27042adb forward tcp:27043 tcp:27043


3)PC端(测试frida环境,如果出现Android设备的进程列表说明frida环境搭建成功

frida-ps -R


Android逆向分析基础(二)


7.Frida JavaScript API的官网

https://www.frida.re/docs/javascript-api/


8.Ubuntu环境修改系统默认python版本为3.8.2(并更新)

sudo apt-get updatesudo apt-get upgrade
sudo apt-get install python-pipsudo apt-get install python3-pip
cd /usr/binrm python
ln -s python3.8.2 pythonpython pip install --upgrade pip


四、Frida的使用实例

1.Hook Android Java层

1)python3 Test.py命令时注意查看python版本

 

2)枚举***游戏进程加载的所有模块以及模块中的导出函数

Android逆向分析基础(二)


Android逆向分析基础(二)

 

2.Hook Android Native层

1)获取跟踪调试***游戏相关cocos lua源码

Android逆向分析基础(二)


Android逆向分析基础(二)


2)获取跟踪调试***游戏相关unity3d mono引擎dll源码

import fridaimport sysrdev = frida.get_remote_device()session = rdev.attach("cn.***.lof")scr = """Interceptor.attach(Module.findExportByName("libmono.so" , "mono_image_open_from_data_with_name"), {  onEnter: function(args) {    send("mono_image_open_from_data_with_name("+Memory.readCString(args[5])+","+Memory.readCString(args[0])+")");  },  onLeave:function(retval){  }});"""script = session.create_script(scr)def on_message(message ,data):print(message)script.on("message" , on_message)script.load()sys.stdin.read()


3.Hook Unity3d获取解密后的dll

 

4.Hook Cocos获取解密后的lua源码

     

五、Frida js Hook

frida -U -f 包名 --no-pause -l raptor_frida_android_trace_fixed.js -o 1.log

其中"-f"参数表示需要重启并且attach上app

 

frida -U 包名 --no-pause -l raptor_frida_android_trace_fixed.js -o 2.log

只想attach到正在运行的应用程序的某一个进程可以用"-p"参数

 

先启动app,然后执行命令,再按手机返回键,最后再点击app才可以hook成功

 

其中命令中加"-l"参数指定js hook代码,load到目标进程

 

如果忘了使用"-l"参数,可以在交互窗口中用"%load"命令来指定需要加载的js代码



推荐阅读

APP隐私合规

Android防逆向基础

Android渗透测试工具

Android常见投屏神器

Objection动态分析App

Android JNI动态库逆向

学抓包就来"哆啦安全"学

Android系统中使用eBPF

Android安全测试工具大全

Android安全IO监控之性能监控

ART在Android安全攻防中的应用

Android Root检测和绕过(浅析)

零基础一对一技术咨询服务(远程指导)

技术咨询服务|Xiaomi Mi A1 (tissot)

Linux内核监控在Android攻防中的应用

ASM插桩实现Android端无埋点性能监控

Android和iOS逆向分析/安全检测/渗透测试框架

使用Hook和插桩技术实现快速排查APP隐私合规问题

eCapture是基于eBPF技术实现用户态数据捕获无需CA证书抓https网络明文通讯

Gradle Plugin+Transform+ASM Hook并替换隐私方法调用(彻底解决隐私不合规问题)



Android逆向分析基础(二)

原文始发于微信公众号(哆啦安全):Android逆向分析基础(二)

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月20日10:29:13
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  Android逆向分析基础(二) http://cn-sec.com/archives/1128745.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: