吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1592|回复: 11
收起左侧

[Android 原创] 当frida hook遇上混淆的字符,你确定能分得清吗?

  [复制链接]
329337656 发表于 2024-1-11 02:42
本帖最后由 329337656 于 2024-1-11 02:59 编辑

前言:
最近遇到了FrIDA hook 出错,返回提示找不到类(关键字:ClassNotFoundException:Didn't find class文章最后有彩蛋~

问题过程:
明明jadx反编译回来直接复制粘贴,为什么找不到该类?贴上hook代码:

[JavaScript] 纯文本查看 复制代码
function hook(){
    var huishao=Java.use('脱敏处理.KkkKKkkKkK.p007kkkkkkkKkKkkk.KKkKkKkkkkKKKkK')
    huishao.m27kkkkkkkKkKkkk.implementation=function (){
        return this.m27kkkkkkkKkKkkk();

    }
}
Java.perform(function (){
    hook();
})


以及jadx代码:



图片1.png

==========================================================================
涉及到高风险app,大面积脱敏处理。望理解,不影响我们分析问题 我们继续放大jadx代码研究:
==========================================================================

图片2.png

翻译过来就是:重命名自:包和类名 原因:无效类名和无效包

也就是告诉你了。这个原来是这个名字:

图片3.png

什么?K? k ?还有一个字符是什么鬼?

图片4.png

反正我是头晕了,分享一下给bing吧。

图片5.png

图片6.png

显而易见,就是这货了,为什么会出现这样的情况?

因为混淆的时候就是需要这样的效果,让你稍微不留意就进入了混淆的坑,让你万劫不复


先总结目前遇到的问题     

Jadx反编译的时候为了反混淆,会将类名还有方法名做个处理。这样好让你不会满屏都是变量K实际上jadx已经提示你了,这个类名是:



解决方法:
好了,知道问题所在,我们就要想办法解决这样的问题(我这里其实直接复制过去也是可以的,不过有些字符复制过去就是找不到这货。)


经过探索,这个应该就是Unicode 字符(我自己的理解,非严谨)


既然是Unicode,应该就可以encodeURIComponent呀,打开浏览器测试了一下:


图片7.png

还原一下:


图片8.png


妥了。跟着我内心的想法继续改造脚本进行验证 将类名复制到浏览器进行编码

图片9.png

方法名也处理一下

图片10.png

把字符复制下来,在脚本先定义并且转码保存起来,用的时候直接调用就可以了。代码如下:



[JavaScript] 纯文本查看 复制代码
function hook(){
    //定义混淆的类名
    var classname=decodeURIComponent("cn.tongdun.android.KkkKKkkKkK.k%E2%82%ADkk%E2%82%ADk%E2%82%ADkkkK%E2%82%ADk%E2%82%ADKk%E2%82%ADk%E2%82%AD%E2%82%ADk.KKkK%E2%82%AD%E2%82%ADkKkkkkKKKk%E2%82%ADK")
    //使用混淆的类名
    var huishao=Java.use(classname)
    //定义混淆的方法名
    var funstr=decodeURIComponent("k%E2%82%ADkk%E2%82%ADk%E2%82%ADkkkK%E2%82%ADk%E2%82%ADKk%E2%82%ADk%E2%82%AD%E2%82%ADk")
    console.log(classname)
    console.log(funstr)
}


图片11.png

可以正常打印了。


总结一下解决方法 既然混淆代码之后会给我们特殊的字符串,让我们无从下手,我们应该要更加细心


1:将字符串编码之后,我们能够随意复制粘贴


2:在hook的js代码里,利用decodeURIComponent还原回来


这样就能解决混淆送我们踩的坑了。




最后的彩蛋是:当大家遇上反混淆的app需要逆向hook的时候(有特殊字符的情况下),最好就是利用frida进行hook类下面所有的方法,并且以encodeURIComponent形式返回,这样你会少走很多坑~~如有不同意见或者错误希望大神提出指正!

免费评分

参与人数 3威望 +1 吾爱币 +21 热心值 +3 收起 理由
junjia215 + 1 + 1 谢谢@Thanks!
正己 + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
hxcnull6 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

WXjzc 发表于 2024-1-11 11:46
如果你用GDA去生成hook模板,你会发现它是自动帮你用解码的方式处理的
wasm2023 发表于 2024-1-11 11:43
shengforever 发表于 2024-1-11 12:16
sunzhw 发表于 2024-1-11 13:13
这个坑,学习了
maxwellhw 发表于 2024-1-11 14:23
学习了学习了
iamafailor 发表于 2024-1-11 14:33
我猜是 tongdun   (脱密不完全)
lyie15 发表于 2024-1-11 15:33
学习,后面遇上可以多一个思路
爱飞的猫 发表于 2024-1-12 06:32

如果魔改类名,例如加上 \x00 字符,还能这样处理吗

SysEntry 发表于 2024-1-12 16:54
类名混淆贼难受
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-27 14:49

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表