言成言成啊 | Kit Chen's Blog

逆向破解今日校园app加密值

先给各位看张图(我在一个android学习群里见别人发的)。如果能有反思,那说明你是一个不会动脑的开发者;如果产生了共鸣,说明你是个会动脑的开发者;如果啥感觉也没有,那你可能就是个打酱油的。

写这篇文章的原因,也是因为我看网上这类教程的帖子很少,网上各式各样今日校园签到脚本已经遍地开花。但是他们没有过程,就直接模拟登录,提交,完成(一看就是抄的别人的东西)。对于加密值的加解密,他们的处理方法都是出自同一个大佬的代码,直接拿来就用的。

很幸运,我找到了原大佬。大佬只留了一句话“加密值是逆向apk后得到的,本质上是一个json对象进行了des加密,然后编码为了Base64字符串”,

我觉得一个牛逼的开发者,不需要别人给太多指点,只需一个思路,那就足够了。我希望我成为一个牛逼的开发者。

这句话的关键词就是逆向,由此引发了我的一系列探索。诞生了这篇文章

授人以鱼不如授人以渔,站在巨人的肩膀上,我将我自己整理的思路再分享给各位。

正文

我尝试各种方式获取加密值,包括登录时,发帖子时,私聊时,但是都没有那个加密值,只有在提交的时候,才有。

我就有点纳闷了。

反编译工具

由此尝试反编译apk,今日校园新版提升了安全机制,并且被加固过了。所以需要找历史版本,就拿8.0.6来说吧,因为我用的这个。

三个必备的工具

  1. apktool
  2. dex2jar
  3. jd-gui

具体过程

个人建议,三款工具,像我这样放置,会好一点

apktool

具体使用过程,请参照官方文档

首先找到你使用的app的apk文件,放置到该目录下,运行以下命令,进行decode

1
apktool.jar d name.apk

此时,会在目录下,生成相应的文件夹,里面的res是存放的资源文件和布局文件,但是你打开,可能会发现里面并没有我们要的classes.dex,而是一堆smali文件。

所以,我们需要再build一下

1
apktool.jar b name

dex2jar

将我们需要进行反编译的.dex文件,移动到其根目录下,用以下命令重新打成jar包

1
d2j-dex2jar.bat classes.dex

我个人理解

dex2jar是将.dex转成.jar,jar2dex正好相反

由此,我们会生成与.dex相对应的.jar,我已经将其剪切到桌面,为了方便处理

jd-gui

打开这个图形界面工具,双击或者命令行输入

1
java -jar jd-gui.jar

依次打开指定的jar包,找你所需要的东西,我感觉这个过程应该是极费时间的。

然后找到了8.0.6版的加密代码以及加密密钥

从图片上,我们知道这是通过ate.V进行加密的,然后继续找。

有了加密密钥,和加密的方式,接下来,我们就可以对其进行解密。

致谢

  1. 逆向破解-APK反编译工具与使用
  2. ZimoLoveShuang
  3. apk反编译
  4. 今日校园自动签到

通过这次亲自尝试反编译,让我更加确信,目前网络上遍地开花的那些代码,基本上都是围绕我致谢中的2和4这俩大佬展开的。这俩才是真大佬,我已经将他们博客收录到我置顶文章里了

为什么呢?

因为每个版本的apk反编译之后,加密值都是不一样的,像我用的8.0.6版本的加密密钥就是XCE927==,而网上那成片成片的都是ST83=@XV。总不能每个人用的app都是同一个版本的吧,很明显,就是直接抄了别人的解密算法。

总之,通过这次反编译,收获还是有的,有了值得我尊重的人,当然也有鄙视的人(大片大片的抄袭狗,尤其是那些,抄了别人代码,连个来源都不打的人)。

最后修改:2020-06-15 11:55:33
原文链接:https://meethigher.top/blog/2020/hacker/
付款码 捐助 分享
翻墙之后才能评论哦
阅读量