无名 发表于 2022-5-8 14:08:47

【技术教程】牛奶君的小黑侠练习

看到牛奶君发的练习,不甘堕落的的我也想试试[滑稽]
安卓知识菜菜的我[泪]

说干就干,下载下来一顿操作。嗯,分析了下。

1.首先调a()方法,里面主要是给成员变量d赋值,从AndroidManifest.xml文件中的标签中得到classes.dex字符串然后赋值给d。   安卓是真不会,我只知道dom4j哈哈。

2.然后调b()方法,从自身apk里面找到名字为d也就是classes.dex文件,然后获取输入流,把它读成一个byte数组返回。

3.然后就是取这个byte数组的后1900个字节,
通过和4进行异或运算得到我们真正需要的数据,把这个数据输出成了个.jar文件,最后通过反射调用里面的方法。

分析到这就结束了,现在开始逆向[酷]

既然我们知道了他是怎么把数据取出来的那就好办了

1.我们把classes.dex解压出来,通过相同的算法把数据得到,修改里面的购买失败为成功,然后给它起一个名字重新打包进apk中

2.然后就修改程序逻辑了,我们修改b()方法,让它直接读我们刚打包进去的文件。然后在onCreate中把if后面都去掉,直接调用a(byte[] bArr)方法,把从b()返回的数组传过去

3.把a(byte[] bArr)中那个算法删了,就是那个for循环,然后把输出流的参数改为传过来的参数。

OK,大功告成~保存测试一下完全没毛病

后面发图片教程[笑眼]

修改后的链接
https://pan.baidu.com/s/1WOHaIXDo5rPZ5Cgm3PLuMQ
http://cdn.u1.huluxia.com/g3/M02/0B/5D/wKgBOVtLXvSAKiHrAADgh-o6qjA737.pnghttp://cdn.u1.huluxia.com/g3/M02/0B/5D/wKgBOVtLXviAFFwdAAlw85SPQ744389.ht
页: [1]
查看完整版本: 【技术教程】牛奶君的小黑侠练习