Hook重载方法和构造方法
1.1 hook重载方法
| /* |
| adb shell |
| su |
| cd /data/local/tmp/ |
| ./frida-server-16.0.19-android-arm64 |
| |
| 端口转发 |
| adb forward tcp:27042 tcp:27042 |
| adb forward tcp:27043 tcp:27043 |
| */ |
| |
| // 搜索 setPwd(Md5 |
| |
| import frida |
| import sys |
| |
| |
| rdev = frida.get_remote_device() |
| |
| session = rdev.attach("油联合伙人") |
| |
| scr = """ |
| Java.perform(function () { |
| |
| // 包.类 |
| var MessageDigest = Java.use("java.security.MessageDigest"); |
| |
| MessageDigest.update.overload('[B').implementation = function(data){ |
| var res = this.update(data); |
| return res; |
| } |
| |
| MessageDigest.update.overload('java.nio.ByteBuffer').implementation = function(data){ |
| var res = this.update(data); |
| return res; |
| } |
| |
| }); |
| """ |
| |
| script = session.create_script(scr) |
| |
| |
| def on_message(message, data): |
| print(message, data) |
| |
| |
| script.on("message", on_message) |
| |
| script.load() |
| sys.stdin.read() |
1.2 hook构造方法
| import frida |
| import sys |
| |
| |
| rdev = frida.get_remote_device() |
| |
| session = rdev.attach("油联合伙人") |
| |
| scr = """ |
| Java.perform(function () { |
| |
| // 包.类 |
| var StringBuilder = Java.use("java.lang.StringBuilder"); |
| |
| StringBuilder.$init.overload('int').implementation = function(num){ |
| console.log(num); |
| if(num==32){ |
| var res = this.$init(num); |
| } |
| return res; |
| } |
| |
| }); |
| """ |
| |
| script = session.create_script(scr) |
| |
| |
| def on_message(message, data): |
| print(message, data) |
| |
| |
| script.on("message", on_message) |
| |
| script.load() |
| sys.stdin.read() |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2019-10-28 第八章 网络编程
2019-10-28 Python中类和对象在内存中是如何保存?