【技术教程】牛奶君的小黑侠练习
看到牛奶君发的练习,不甘堕落的的我也想试试[滑稽]安卓知识菜菜的我[泪]
说干就干,下载下来一顿操作。嗯,分析了下。
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]