完整内容及源码关注公众号:ReverseCode,发送冲
https://developers.google.com/android/images#angler
开机键+音量减 进入recovery
ES文件浏览器 查看系统文件
玩逆向必备一台真机,那么非谷歌亲儿子莫属,模拟器缺失native/so层,属于精简版系统,故还是真机香呀。
官网下载pixel 8.1.0镜像,建议刷OPM1.171019.011版本安卓8.1.0
设置-关于手机-版本号8下点击-进入开发者模式,进入系统-高级-打开开发者选项-USB调试
twrp作为第三方刷机工具,刷入Magisk,nethunter等魔改系统。
fastboot flash recovery twrp-3.3.0-0-angler.img
linux下载最新的platform-tools刷机的时候,fastboot会报各种unknow command或接近的错误,把fastboot文件替换成随着aosp一起编译出来的即可,使用自行编译的fastboot即可。
通过wifi连接adb可实现群控
<code>adb -s 192.168.0.104:5555 install com.ttxapps.wifiadb_2.1.3-810031745_minAPI15(nodpi)_apkmirror.com.apk</code> 安装apk
<code>adb connect 192.168.0.104:5555</code> 使用adb连接手机
termux
<code>adb -s 192.168.0.104:5555 install com.termux_92.apk</code> adb被禁时在app端使用命令行操作
<code>pkg update && pkg install htop</code> 在app端安装管理进程的包
xdebuggable && XAppDebug
启动EdXposed,搜索xdebuggable 和XAppDebug模块并安装开启debug apk(需要借助梯子)
ro.debuggable
<code>adb push MagiskHidePropsConf-v5.3.4.zip /sdcard/Download</code> 并通过Magisk Manager-模块-下载-安装MagiskHidePropsConf-v5.3.4.zip
reboot-adb shell-props
getprop ro.debuggable 即可查看1,开启全局可调式
lineageos,twrp
marlin,SR5-SuperSU-v2.82-SR5-20171001224502.zip,xposed-v89-sdk25-arm64.zip,XposedInstaller_3.1.5
pixel系列安装xposed不可使用xposed-v89-sdk25-arm64.zip,只能ssr后谷歌下载xposed框架安装。
设置-关于手机-版本号8下点击-进入开发者模式-打开开发者选项
adb push UPDATE-SuperSU-v2.79-20161211114519.zip /sdcard
adb push xposed-v89-sdk25-arm64.zip /sdcard
rom:https://dl.google.com/dl/android/aosp/angler-n2g48c-factory-6a21e528.zip
解压得到angler-n2g48c-factory-6a21e528\angler-n2g48c\image-angler-n2g48c
superSu:https://download.chainfire.eu/1016/SuperSU/UPDATE-SuperSU-v2.79-20161211114519.zip
xposed安卓7.1对应sdk:https://dl-xda.xposed.info/framework/sdk25/arm64/xposed-v89-sdk25-arm64.zip
xposed apk:https://dl.xda-cdn.com/4/3/9/3/0/8/2/XposedInstaller_3.1.5.apk?key=4Rkip9MZy_4KitcodXSxBw&ts=1598862686
twrp:https://dl.twrp.me/angler/twrp-3.4.0-0-angler.img
搭配QtScrcpy就可以在电脑上观看手机屏幕上的内容,或者通过usb一拖四实现鼠标键盘完全电脑操作。该系统自动集成了java,BurpSuite2020.06,charles,python3,python。
点开<code>Nethunter</code>这个<code>app</code>
切换到<code>Kali Chroot Manager</code>,START KALI CHROOT
切换到<code>Kali Services</code>,将<code>SSH</code>启动并且勾选<code>Start at Boot</code>,这样就拥有了<code>sshd</code>
切换到<code>Kex Manage</code>--<code>SETUP LOCAL SERVER</code> 设置好密码后--取消Localhost Only--START SERVER--OPEN KEX CLIENT

打开VNC Viewer,通过NetHunter 终端查看ip地址,显示器为1,开启VNC登录
通过一拖四的typec转USB,连接键盘鼠标,将Nexus 6p变成一台kali电脑。
adb push .\xposed-v89-sdk23-arm.zip /sdcard
打开开发者选项-usb调试
-设备解锁状态-绑定账号和设备
adb reboot bootloader 解锁bootloader,执行miflash_unlock.exe
EdXposed-SandHook-v0.4.6.2.4529.-release.zip
twrp-3.3.1-1-chiron.img
安装全程开全局代理,安装nexus 5x 8.0
network mode选择Bridge或者在virtualbox中修改网络为桥接,如virtualbox网络连接里没有桥接网卡选择
修改D:\VirtualBox\drivers\network\netlwf\VBoxNetLwf.inf
settings-system-Languages&input-Languages-Add a language-简体中文
adb 无法连接genymotion怎么办? 修改genymotion的settings,Use custom Android SDK tools为本地android sdk路径 adb kill-server + adb start-server 重启adb 安装wifiadb后即可,默认可以连接192网段,配置桥接,可adb connect 192.168.0.104:5555
arm桥接
<code>uname -a i686</code> 查看cpu架构为x86 32位 不支持arm,需要安装arm桥,直接将 Genymotion-ARM-Translation_for_8.0.zip拖入nexus 5x 8.0, 进行安装
adb reboot 即可安装带有arm的so的apk
别用Windows了,鲁迅曾经说过,他在逆向生涯中超过一半的苦难均由Windows赐予。
vmware安装文件 秘钥:YC34H-6WWDK-085MQ-JYPNX-NZRA2
kali-linux-2020.4-vmware-amd64.7z种子,使用vmware打开vmx文件,配置6g内存,80g磁盘存储,网络适配选择桥接到本地网卡(虚拟网络编辑器),默认账密:kali/kali,sudo passwd root 修改密码123456
重启后使用root登录,android-studio-ide-201.7042882-linux.tar.gz安装包
~/.cache/vmware/drag_and_drop 定期删除拷贝的文件缓存
as若报错<code>To build this project, accept the SDK license agreements and install the missing components?</code> 执行/root/Android/Sdk/tools/bin/sdkmanager --licenses
Android设备投屏
NodeJs
jadx-1.2.0.zip多dex打开,修改jadx-gui中<code>set DEFAULT_JVM_OPTS="-Xms512M" "-Xmx8g"</code>,加入zshrc的环境变量中<code>export PATH="/root/Android/Sdk/ndk-bundle:/root/Android/Sdk/platform-tools:${JAVA_HOME}/bin:$PATH:/root/Desktop/charles/bin:/root/Desktop/jadx-1.2.0/bin:$NDK_HOME"</code>
jeb-pro-3.19.1.202005071620_pwd_ilbtcdnwiuypbzeo_.7z 运行./jeb_linux.sh,输入密码:ilbtcdnwiuypbzeo,进入界面点击Manual Key Generation中间按钮获取LICENSE DATA,运行jebKeygen.py 获取license key后输入到界面的key中,continue
Kali Linux里的as4的DDMS启动失败,原因是要用as自带的jre来启动,直接./monitor用的是Kali系统的jdk,版本太高了<code>ln -s /root/Desktop/android-studio/jre/ /root/Android/Sdk/tools/lib/monitor-x86_64/</code>,然后通过~/Android/Sdk/tools/monitor打开ddms
vim ~/.bashrc && source ~/.bashrc
<code>export PATH=$PATH:/root/Android/Sdk/platform-tools</code>
jdk1.8
nexus 5x
安装流程 twrp->SuperSu-> nethunter
kali nethunter下载nexus 5x nethunter,使用投屏可变成一个迷你的linux渗透系统,通过twrp进行install ,<code>sh userinit.sh</code> 同步时间
tab
smali与java代码转换
ctrl+b
下断点(注意这个必须在smali代码界面才有用)
esc
回退上一级引用
activity_main.xml中配置的view组件:jeb中以十六进制存在于代码中,利用计算器的程序员模式转为十进制,jadx将该十进制存入resources.arsc,gda有APK入口直接进入MainActivity,同样以十六进制存入代码中。
getprop ro.product.cpu.abi
判断系统cpu版本 虚拟机一般都是x86
dumpsys meminfo pid
查看进程占用内存映射的信息
cat /proc/pid/maps
进程加载的so
cat /proc/pid/maps | grep -i libart.so
所有java代码通过libart.so解析,脱壳机的关键
dumpsys activity top
显示当前的Activity,显示View Hierarchy,看view的类信息
dumpsys package com.soviet.hook4crawler
查看运行包信息
pm list packages
查看所有安装的包
对python不同包(frida,objection...)多版本管理
全套安装最新版本:<code>proxychains pip install objection</code>
7z x frida-server-12.8.0-android-arm64
特定版本frida
按照这个顺序,在装objection的时候,就会直接Requirement already satisfied,不会再去下载新的frida来安装了。
frida开发环境
pyenv local 3.8.0 && ./fs128arm64
git clone https://github.com/oleavr/frida-agent-example.git
cd frida-agent-example/
npm install
使用VSCode等IDE打开此工程,在agent下编写typescript,会有智能提示。
npm run watch会监控代码修改自动编译生成js文件
frida -UF -l demo.js usb连接手机保存将自动调用demo.js 进行hook <code>Java.perform(function(){console.log("frida hook")})</code>
frida -UF -l demo.js --runtime=v8 使用v8引擎 <code>Java.perform(()=>{console.log("Hello World")})</code>
frida-ps -U 查看所有进程
frida -H 192.168.0.100:5555 -f com.ttxapps.wifiadb -l demo.js --runtime=v8 远程hook,-l指定脚本
frida -Uf com.android.settings -l demo.js --runtime=v8 --no-pause 经过usb主动启动应用调用demo.js,-f是spawn模式,--no-pause直接加载应用,没有的话需要%resume启动主线程
frida -UF --runtime=v8 -e "Java.perform(()=>{console.log('Hello World')})" -o /root/log.txt 直接执行脚本写入文件
远程连接
<code>./fs128arm64 -v -l 0.0.0.0:8888</code> 指定端口启动frida,默认端口27042
<code>frida-ps -H 192.168.0.8:8888</code> 指定-U表示usb,-H表示主机ip
<code>frida -H 192.168.0.8:8888 -F</code> 指定-H表示主机ip,-F表示前台应用,输入frida即可查看Frida信息
cd frida-agent-example/ && npm install && npm run watch && frida -H 192.168.0.8:8888 -F -l agent/demo.js 远程调用js脚本
远程调用
plugins
本文由博客一文多发平台 OpenWrite 发布!