Android开发Android技术知识Android开发

【安全与逆向】- 基础篇

2020-01-18  本文已影响0人  拔萝卜占坑

前言

这是“逆向工程”系列文章的开篇,后面会逐渐往深的方面讲解,很多东西当时会了,过一段时间就忘了,又去网上找,很麻烦,而且当时遇到的问题,不一定能找到,所以打算把它写下来。

简介

逆向工程做得好,就是Android里得黑科技,反编译别人发布的应用,找到里面的蛛丝马迹,然后修改成自己想要的样子,简直叼咋天。不过随着开发者不断对应用安全性的提高,现在想要做逆向工程也越来月难了。

学习逆向工程除了可以破解别人的应用,也可以提高自己在安全方面的意识。比如,现在很多开发者都会把敏感的信息或者逻辑做在so层,因为反编译so难度更高,技术难度更大。虽然如此,我们还是可以反编译so,查看里面的代码,通过so动态调试了解so层的执行逻辑等等。如果我们学会了这些,那么便可以找到防止so代码被很直观的查看和阻止开发者的动态调试等等。

说明

这篇文章主要讲解“逆向工程”基本的东西,百度一下就很多,所以会简要讲解。

工具

百度网盘: 逆向工具

逆向

工具准备好了,就可以开始逆向了,我拿自己公司的App进行逆向学习。如果应用加固过,用这种方式是不行的,必须先脱壳。

具体用法参考Apktool

重新打包

通过反编译dex方式是不能够重新打包的,所以需要用 apktool d testapp.apk来得到能够重新打包的反编译文件。然而通过这种方式得到的是smali文件,采用的是unicode编码,所以我们先在class文件找到需要修改的地方,得到相应的unicode,找到同名文件,然后搜索,当然,如果你能看懂逻辑,也可以直接修改。

上一篇 下一篇

猜你喜欢

热点阅读