第十课、frida环境搭建与使用
第十课、frida环境搭建与使用frida检测名字与端口[*]修改名字与端口
[*]mv frida-server-12.8.0-android-arm64fs1280a64
[*]查看端口的命令
[*]netstat -tuulp |grep fs
[*]默认的是27042
[*]开启自定义端口
[*]./fs1280a64-v -l 0.0.0.0:8787 listen
[*]在虚拟机上命令
[*]frida-ps -H 192.168.31.97:8787查看进程
[*]frida -H 192.168.31.97:8787 -F attach前台程序
[*]objection使用
[*]objection-N -h 192.168.31.97 -p 8787 -gcom.android.settings explore
[*]dpkg-idwada.deb 安装deb格式软件
[*]https://img-pool-own.oss-cn-shanghai.aliyuncs.com/img/image-20230218230700995.png
[*]frida脚本开发环境正确操作:
之前建议的这种方法frida-gum.d.ts已经被大胡子删掉了,他现在不赞成使用这种方式。
目前最新正确的Frida环境搭建方法:
1. git clone https://github.com/oleavr/frida-agent-example.git
2. cd frida-agent-example/
3. npm install
4. 使用VSCode等IDE打开此工程,在agent下编写typescript,会有智能提示。
5. npm run watch会监控代码修改自动编译生成js文件
6. frida -U -f com.example.android --no-pause -l _agent.js
[*]vscode使用脚本
[*]frida -H 192.168.31.97:8787 -F -l _agent.js 这个ip地址是要写手机的ip地址
[*]r
[*]cn.soulapp.android
RPC调用function hook_KeyStore_load() {
Java.perform(function () {
var StringClass = Java.use("java.lang.String");
var KeyStore = Java.use("java.security.KeyStore");
KeyStore.load.overload('java.security.KeyStore$LoadStoreParameter').implementation = function (arg0) {
console.log(Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Throwable").$new()));
console.log("KeyStore.load1:", arg0);
this.load(arg0);
};
KeyStore.load.overload('java.io.InputStream', '[C').implementation = function (arg0, arg1) {
console.log(Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Throwable").$new()));
console.log("KeyStore.load2:", arg0, arg1 ? StringClass.$new(arg1) : null);
this.load(arg0, arg1);
};
console.log("hook_KeyStore_load...");
});
}
setImmediate(hook_KeyStore_load)debug_print('Resuming PID test {pid}'.format(pid=self.spawned_pid))self.device.resume(self.spawned_pid) 有些看不懂了 不错的东西,谢谢楼主分享!辛苦了!:handshake 这是干嘛的
感谢分享 感谢分享
感谢分享
页:
[1]