当前位置: 首页 > news >正文

frida动态调试入门01——定位关键代码

说明

frida是一款Python工具可以方便对内存进行hook修改代码逻辑在移动端安全和逆向过程中常用到。

实战

嘟嘟牛登录页面hook

使用到的工具

1,jadx-gui
2,frida

定位关键代码

使用jadx-gui 进行模糊搜索,例如搜索encyrpt之类的加密关键字

在这里插入图片描述


发现com.dodonew 下面有两个疑似加密的关键代码
在这里插入图片描述

右键复制类名
com.dodonew.online.http.JsonRequest
在这里插入图片描述

编写脚本

//如果是java hook的话代码都要放到java.perform包括起来Java.perform(function(){// 拿到这个类,打印一下确认是否拿到类了var JsonRequest = Java.use("com.dodonew.online.http.JsonRequest")console.log("JsonRequest:",JsonRequest)// 调用类中的方法,实现,也就是将原来的函数修改掉 JsonRequest.paraMap.implementation = function(a){console.log("params1:", a);this.paraMap(a);}// addRequestMap,可能的另外一个加密函数// 参数类型或者是参数数量不同为一个重载函数JsonRequest.addRequestMap.implementation = function(a,b){console.log("params:", a, b);this.addRequestMap (a, b);}
});

启动手机的frida服务端
在这里插入图片描述

出现报错,报错显示有多个overload也就是有多个重载,修改hook代码指定那个重载。

在这里插入图片描述

修改代码

需要的是int的重载函数
在这里插入图片描述
修改后的代码

//如果是java hook的话代码都要放到java.perform包括起来Java.perform(function(){// 拿到这个类,打印一下确认是否拿到类了var JsonRequest = Java.use("com.dodonew.online.http.JsonRequest")console.log("JsonRequest:",JsonRequest)// 调用类中的方法,实现,也就是将原来的函数修改掉 JsonRequest.paraMap.implementation = function(a){console.log("params1:", a);this.paraMap(a);}// addRequestMap,可能的另外一个加密函数// 参数类型或者是参数数量不同为一个重载函数JsonRequest.addRequestMap.overload('java.util.Map', 'int').implementation = function(a,b){console.log("params:", a, b);console.log("addRequestMap");this.addRequestMap (a, b);}// 确定了加密的关键函数
});

再次运行frida -UF -l hook的js文件

frida -UF -l .\hook.js

在这里插入图片描述

说明代码逻辑通过的这个函数。

添加两个这个代码就可以打印输入的参数

var bb =Java.cast(a, Java.use("java.util.HashMap"));console.log("addRequestMap params:", bb.toString());

在这里插入图片描述

参考文章
https://www.bilibili.com/video/BV1k3411d7RT

http://www.lryc.cn/news/148540.html

相关文章:

  • ASP.NET Core 8 的配置类 Configuration
  • MySql增量恢复
  • 设计模式--装饰者模式(Decorator Pattern)
  • Spring三级缓存解决循环依赖
  • Vscode自动移出不用的包
  • leetcode做题笔记120. 三角形最小路径和
  • weblogic/CVE-2018-2894文件上传漏洞复现
  • windows10默认浏览器总是自动更改为Edge浏览器
  • 系统架构设计师考试论文:论软件架构风格与应用
  • xss-labs靶场通关详解
  • 关于类和接口
  • 网络安全社区与资源分享: 推荐网络安全社区、论坛、博客、培训资源等,帮助从业者拓展人脉和知识。
  • SAP MM学习笔记26- SAP中 振替转记(转移过账)和 在库转送(库存转储)5 - 总结
  • Stable Diffusion WebUI提示词Prompts常用推荐
  • Android 13 Ethernet变更
  • 基于单片机的超声波语音测距系统
  • 算法系列-力扣876-求链表的中间节点
  • SpringBoot集成Redis、Redisson保姆教程【附源码】
  • c++多线程中常用的使用方法
  • 【dart】dart基础学习使用(一):变量、操作符、注释和库操作
  • element-plus 设置 el-date-picker 弹出框位置
  • C++day7(auto关键字、lambda表达式、C++中的数据类型转换、C++标准模板库(STL)、list、文件操作)
  • 纽扣电池/锂电池UN38.3安全检测报告
  • K8S:K8S自动化运维容器Docker集群
  • Java的guava 限流写法
  • [uniapp] scroll-view 简单实现 u-tabbar效果
  • vue常见问题汇总
  • GPT-3在化学中进行低数据发现是否足够?
  • gitlab升级
  • Matlab图像处理-灰度插值法