frida使用学习

介绍:

Friad是一款跨平台轻量级Hook和调试框架,可以轻松实现WindowsLinuxAndroidIOSMac平台的动态插桩需求,单从Android层面理解,它可以实现Java层和NativeHook操作。

指令:

frida-ps -U

查看通过usb连接的android手机上的进程。 

准备

打开安卓模拟器

打开frida-server监听

adb devices #查看设备

adb connect ****** #

adb shell

cd /data/local/tmp

./frida-server

frida-hook

hook 函数

import frida  #导入frida模块
import sys    #导入sys模块

jscode = """
const hitdata = ``; // beatmaps/chromevox/hitpoints
const timeList = hitdata.split("\n").map((v, idx, arr) => {
 return parseInt(v.split(",")[1], 10);
});
function awaitHook(){
 
 var ptr = Module.findBaseAddress("libd3mug.so");
 console.log(ptr);
 const update = new NativeFunction(ptr.add(0x0000780), "pointer", ["char"]);
 const instance = ptr.add(0x02D18);
 // running
 instance.writePointer(new NativePointer(0)); // init.
 for (const t of timeList) {
 update(t);
 }
 console.log(instance.readPointer().readCString());
}
// D3CTF{Gb78e-7b04-4364-82d2-7f44}
setImmediate(function(){
 setTimeout(awaitHook,10);
})

"""

def on_message(message,data): #js中执行send函数后要回调的函数
    print(message)

process = frida.get_remote_device().attach('com.hello.hook') #得到设备并劫持进程com.example.testfrida(该开始用get_usb_device函数用来获取设备,但是一直报错找不到设备,改用get_remote_device函数即可解决这个问题)
script = process.create_script(jscode) #创建js脚本
script.on('message',on_message) #加载回调函数,也就是js中执行send函数规定要执行的python函数
script.load() #加载脚本
sys.stdin.read()

报错:frida.ServerNotRunningError: unable to connect to remote frida-server

解决:端口转发

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

使用frida—dexdump安卓脱壳

在安卓模拟器上运行要脱壳的软件。

在此文件夹目录下运行cmd程序.

执行 python main.py

 会在当前的文档下面生成一个新的文件夹

这就是脱壳后的结果。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值