monkeylord / XServer

A Xposed Module for Android Penetration Test, with NanoHttpd.
MIT License
769 stars 182 forks source link

查看参数调用的值与一个improve请求 #27

Closed selfEVO closed 2 years ago

selfEVO commented 2 years ago

大佬好,有两个问题请教下: 1.使用XServer Hook到目标的函数调用了两个参数,都是String类型,但是第二个是@1e51c87 这种形式,个人推测是调用一个地址或参数名,如何用XServer看这个参数的值呢。

  1. 目标app可能有反调试机制或者是测试机比较老,容易卡退重启。我已经知道过滤器该过滤哪些类名、方法名,能不能我在测试机写一个txt,XServer每次加载后自动读取这个txt,自动帮我Hook该txt指定的过滤器呢,这样就不用每次机器重启我还得重新点Tracer-Classs Filter--Method Filter --Hook 了。 最后感谢大佬的工作,工具很好用。
monkeylord commented 2 years ago
  1. 如果确实是java.lang.String类型,显示的结果其实是obj.toString()的结果。a. 可能这个字符串内容他就是@1e51c87;b. 实际传入的参数并不是String,而是一个其他的对象被作为参数传入了,这时候显示的也是obj.toString()结果。
  2. 理论上可以在assets/pages/trace2.html的JS脚本里加上一个LocalStorage,把上次的参数记住。然后输入框做成可编辑的下拉框,最近10个可选,类似这样,纯前端实现。不过近期没有集中的时间来改代码,欢迎PR。

主要是自己测试的时候也在用,所以填了很多坑,但是同时也因为自己使用就不在乎UI了【又不是不能用】,所以UI一直很稀烂 /捂脸

selfEVO commented 2 years ago

1我后来分析了一下,可能是a("name", b())这种形式。Hook b就知道它的值了。 2 用js实现这思路也不错,待我搞完当前项目可以尝试一下。💪