吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 20220|回复: 102
收起左侧

[Android 原创] 破解Autojs打包APK中的泡椒云卡密验证过程

[复制链接]
verber34 发表于 2021-5-10 17:32
最近,上网找到了一款手机辅助软件,在工作中很有用处(具体什么就不说了),作者使用说明中显示因使用AutoJS打包插件,可能会误报为病毒. 所以本人的题目就这样起了.其实对autojs及泡椒云卡密也是第一次听说.
此软件,启用后,先是显示输入卡密界面,正确后再显示具体的使用界面,卡密如何获取呢?关注作者公众号,输入特定内容,会反馈卡密.
鉴于此软件在工作中确实很有用处,可以帮我节省一部分时间,所以本人是肯定要用的,同时,虽然作者是声称卡密是免费的,再加上这几天作者可能有事,没有更新卡密,还是以前的老卡密,输入后,显示卡密已期,用不成了~~
为防以后,本人打算破解他的卡密验证过程.
-----在破解之前,本人对泡椒云是第一次听说.对autojs也是作者说明中提到了,所以下面我会罗列我的尝试过程.新手就是不断的尝试尝试.....大佬勿喷
0x01: 反编译成smali (过程不说)
0x02:查看反编译后的内容.
逛了一圈,在常用的smali文件夹中,没发现有用的东西,倒是在assets文件夹中,有大量的文件,其中的project文件夹中有.js  .dex等文件.后面证实, autojs的代码就在这里面
但在几个 main.js/UI.jst等文件中,没有js代码, 都是 runtime.loadDex("joy.dex")new Packages["joy.XXXXXX"]()() 这样的代码. 应该是调用了joy.dex里面的代码.. 于是 反编译joy.dex文件
0x03:查看joy.dex的内容.
首先, 反编译后的joy.dex的文件名的确是js中 joy.XXXXXX后面的部分, 证实了 js文件的确是调用了里面的文件. 打开几个查看,发现里面的字符都是混淆了的,例如下面这种:(文件名也是随机的感觉)
------文字版没截图------------
const-string v6, "307465646273653064742F6D7068"
invoke-static {v6}, Ljoy/utils;->d(Ljava/lang/String;)Ljava/lang/String;
move-result-object v6
invoke-static {v4, v5, v6, p1, v3}, Lorg/mozilla/javascript/optimizer/OptRuntime;->call1(Lorg/mozilla/javascript/Callable;Lorg/mozilla/javascript/Scriptable;Ljava/lang/Object;Lorg/mozilla/javascript/Context;Lorg/mozilla/javascript/Scriptable;)Ljava/lang/Object;
move-result-object v1
.line 27
const-string v4, "676A6D6674"
invoke-static {v4}, Ljoy/utils;->d(Ljava/lang/String;)Ljava/lang/String;
---------------------------------
这会的任务就是,查清楚,卡密界面在哪个文件中,使用的界面在哪个文件中.所以,先要对字符进行解密.
从这里面可以看出Ljoy/utils;->d(Ljava/lang/String;)Ljava/lang/String;代码是解混淆的,如果会JAVA ,可以直接写出一个解字串程序.   因本人不会JAVA 也不会xposed,使用了比较笨拙的一个方法,在utils文件中,加入一段写出字符的smali代码(这个在本论坛中一位大神的原代码,可以直接使用),然后在d(Ljava/lang/String;)Ljava/lang/String;函数中前后调用,让其写出 混淆后和解混淆后的字符.如下:
------文字版没截图------------
.method public static d(Ljava/lang/String;)Ljava/lang/String;
    .registers 2
    #invoke-static {p0}, Ljoy/utils;->put_log(Ljava/lang/String;)V
    invoke-static {p0}, Ljoy/utils;->a(Ljava/lang/Object;)Ljava/lang/Object;
    move-result-object v0
    check-cast v0, Ljava/lang/String;
    #invoke-static {v0}, Ljoy/utils;->put_log(Ljava/lang/String;)V
    return-object v0
.end method
#号两句为写出前后的字符.在最后,本人禁用了,不用写了,不然文件会越来越大.
软件运行后, 写出的内容如下:
------文字版没截图------------
6F642F6B74
nc.js
716B7A74656C
pjysdk
62717160746664736675
app_secret
627171606C667A
app_key
514B5A54454C
PJYSDK
766A
ui
766A
ui
594E4D
------------
第一行是混淆后的,第二行是解密后的.凑合着看吧.所以,搜索时,先在这个里面搜索字符,再对照上一行的混淆字符,在samli中查找.
根据卡密界面和使用界面不同的内容,确定了对应的文件,下面是破解的设想和过程:
一: 能不能直接让它运行使用界面呢?
查看 main.js  UI.js 中的内容,都是runtime.loadDex("joy.dex")new Packages["joy.XXXXXX"]()() 这一句
每个后面的 joy.XXXXXX的XXXXX正好是卡密的文件名, 然后本人直接改成使用界面的文件名.
结论:不行,还是会出现卡密界面.
二:能不能修改跳转卡密验证结果,让其不论输入什么,都认为是正确的(这类似于修改爆破)
不停的搜索字符,也找到了一些与卡密按钮单击的相关地方,但就是看不懂,在没有看到泡椒云的时候,我一直以为,是作者自己写了个JS的卡密程序.
结果:不成功,因为代码太乱,并且后来我知道这是用泡椒云的卡密验证,本地就没有.
三.能不能修改泡椒云的卡密验证结果呢?让程序认为卡密正确?
到泡椒云官网上看了些资料,它是如何调用的,如何返回结果的,返回什么样的结果.但看来看去,在程序中找不到入手地地方
试了一些地方,也没成功.
四.能不能直接让它运行使用界面呢? 回到第一个解决的方面上来
最后, 我还是回到了第一个方法上来,原因是,看了作者的说明,是因为有人盗用卖钱,才加上了卡密,说明之前的版本可能没有这个功能.我找了一个旧版本,果然没有.但功能是没有现在这个好.所以,最终是想调过卡密界面
既然修改main.js  UI.js不行,那么说明,程序中肯定有一些地方还是调用了 卡密界面. 在joy的全文件中搜索, main.js  UI.js 字符(用混淆后的查),找到了一处.直接改了.
结论:有了不同的提示
...哈哈,看来有眉目了 .运行后,提示:"你使用的版本已经被人恶意修改...”
继续,查找这个字符所在位置,禁用了它的调用函数.
最后,完美运行.
--------------
最后心得:
1.内容较乱,一没截图,因为没时间.二是没有给出具体的文件名代码啥的.因为这个软件每个版本反编译后的文件名是不同的.这可以是autojs的混淆方法吧.所以,给出了没说明不了啥
2.多上百度,本人在反编译过程中,也不停的搜索autojs的卡密破解内容,当然没用上.但其中有一个帖子中提到了在autojs中如何使用泡椒云进行卡密验证,进去看了一下代码,突然发现,它里面的一些关键字和我写出的那个字符中有很多一样啊,最后本人一看,PJYSDK这样的字符,才知道这里面有个泡椒云.
3.多尝试,这个改的地方不多,只有三四处,至于哪个地方真正起了作用了,谁知道哟.反正目的实现了.
4.最后,本人贴上 一直用的一个打印字符的smali代码: 对于不会调试的人来说,写出来看也是 一种方法,就是麻烦些.
-----------写出字符串值的smali代码:
.method public static put_log(Ljava/lang/String;)V
    .registers 8

    .prologue
    :try_start_0
#这是写到哪个文件中?
    const-string v3, "/sdcard/1/log.txt"

    new-instance v2, Ljava/io/FileOutputStream;
#这个V5j是用来说明,是覆盖还是追加, 0x1的话, 是追加,内容不断的加到文件末尾. 0的话就是覆盖.
    const/4 v5, 0x1

    invoke-direct {v2, v3, v5}, Ljava/io/FileOutputStream;-><init>(Ljava/lang/String;Z)V

    .line 19
    new-instance v4, Ljava/io/OutputStreamWriter;

    const-string v5, "gb2312"

    invoke-direct {v4, v2, v5}, Ljava/io/OutputStreamWriter;-><init>(Ljava/io/OutputStream;Ljava/lang/String;)V

    .line 21
    invoke-virtual {v4, p0}, Ljava/io/OutputStreamWriter;->write(Ljava/lang/String;)V

    const-string v5, "\r\n"

    invoke-virtual {v4, v5}, Ljava/io/OutputStreamWriter;->write(Ljava/lang/String;)V

    .line 23
    invoke-virtual {v4}, Ljava/io/OutputStreamWriter;->flush()V

    .line 25
    invoke-virtual {v4}, Ljava/io/OutputStreamWriter;->close()V

    .line 27
    invoke-virtual {v2}, Ljava/io/FileOutputStream;->close()V
    :try_end_20
    .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_20} :catch_21

    .line 37
    :goto_20
    return-void

    .line 30
    :catch_21
    move-exception v0

    .line 34
    const-string v5, "imei"

    const-string v6, "file write error"

    invoke-static {v5, v6}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

    goto :goto_20
.end method










免费评分

参与人数 10吾爱币 +10 热心值 +9 收起 理由
junjia215 + 1 + 1 用心讨论,共获提升!
库克船长什么样 + 1 + 1 热心回复!
wssjay + 1 + 1 谢谢@Thanks!
MYC_OvO + 1 我很赞同!
1314rinoa + 1 + 1 一看就是谁的小树屋强国助手
彳艮弓虽 + 1 + 1 谢谢@Thanks!
leghwg + 1 + 1 真巧了,我今天也想试着破解同样的软件,正好看到了你的帖子,对我很有帮助
心照不宣 + 1 + 1 今天的新闻自零点开始的。神奇的App。
17376777302 + 1 热心回复!
砼小砼 + 2 + 1 这是一款神奇的app,真心好用

查看全部评分

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

csp3949160 发表于 2021-5-10 17:51
学习学习,谢谢楼主分享!
hahahahah 发表于 2021-8-3 22:04
freeflys 发表于 2021-8-2 16:53
能问一下,你的这段代码怎么执行呢?看有F盘符,应该是电脑上执行,具体怎么操作呢?

把两个路径改成反编译joy.dex后的路径和要储存加密与解密文本的路径, 然后用jdk编译执行
不限系统
Leesly1 发表于 2021-5-10 17:46
chenyang1616 发表于 2021-5-10 17:58
没太看懂 尴尬
djxding 发表于 2021-5-10 18:00
谢谢,可是没有看懂。
linguo2625469 发表于 2021-5-10 18:15
学习一下 autojs很多都是用的泡脚云
zhaiker521 发表于 2021-5-10 18:50
这个不是泡椒云  而是一种叫云注入的东西
hjhj8886868 发表于 2021-5-10 18:55
看的晕晕的。再看看
Rookietp 发表于 2021-5-10 19:23
auto.js 不会是dex的形式啊, 这应该是用的APK一键加密
dxaw2458 发表于 2021-5-10 19:31
好家伙直呼内行
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 12:19

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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