无名商城论坛

搜索
查看: 318|回复: 0

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

[复制链接]

1万

主题

1万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
32464
发表于 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,大功告成~  保存测试一下完全没毛病

后面发图片教程[笑眼]

修改后的链接
本帖隐藏的内容需要【资源会员】才可浏览,您需要升级才可浏览,点击这里升级【资源会员】

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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