XposedHook HOOK注册机演示_修改返回值操作
APP演示图如下:
使用Jdax-GUI查看APP源码分析之后发现如下关键点代码:
/* access modifiers changed from: private */
public boolean checkSN(String userName, String sn) {
if (userName == null) {
return false;
}
try {
if (userName.length() == 0 || sn == null || sn.length() != 16) {
return false;
}
MessageDigest digest = MessageDigest.getInstance("MD5");
digest.reset();
digest.update(userName.getBytes());
String hexstr = toHexString(digest.digest(), "");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hexstr.length(); i += 2) {
sb.append(hexstr.charAt(i));
}
if (sb.toString().equalsIgnoreCase(sn)) {
return true;
}
return false;
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
return false;
}
}
关键点已经找到,那么我们直接来Hook一波~以下截图是我的hook代码,直接修改返回值
编译后直接扔到虚拟机重启,然后验证
我们发现已经注册成功了,是不是很简单~并且传入的值内容也拿到了
以下是Hook的方法总结
beforeHookedMethod 会在调用原方法前执行,如果使用setResult则跳过原方法,并返回setResult参数中的值。
afterHookedMethod 会在调用原方法后执行,setResult可改变返回值 (本文采用此方法)
replaceHookedMethod 会完全替换原方法,即原方法不执行,且返回值可以直接return,setResult不生效。
在浏览的同时希望给予作者打赏,来支持作者的服务器维护费用.一分也是爱~
admin
测试品论-0 -
作者 Windows10 1687 天前回复