Anroid逆向中Java层关键代码快速定位

在进行逆向分析题目或者是抓包进行协议分析时,此时在java层中,我们可能想要快速的定位到关键函数,关键代码。但是,在有些时候,当我们反编译完app,进行关键字搜索时,可能会出现搜索不到的情况。此时,原因无外乎有以下几点:这是一个H5 app,或者是由于字符串被加密了。甚至是app被加固了。

众所周知,对于常规函数被混淆后,改变为xx000这种字符,无从下手之时,我们可以另辟蹊径,从底层函数入手。
首先,第一个方法,可以打印堆栈信息。

function showStacks(){
    var stack=Java.use("android.util.log").getStackTraceString(Java.use("com.long.Throwable")).$new();
    console.log(stack);

我们得到log类的getStackTraceString方法,传进去的参数就是Throwable的实例,这样就可以打印出堆栈信息。

第二个方法就是常见的系统函数

HashMap  ArrayList  String JsonObject StringBuilder等

题外话,当使用log.d进行打印时,我们会发现程序会报错,原因就是我们会使得程序运行停止,这个时候我们就需要写一个try,catch类进行出现异常时的响应。然后打包成dex进行注入,注入的js代码为

Java.openClassFile("路径/xxx.dex").load();
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值