安卓逆向怎么弄?

haiyicha haiyicha
669
2022-05-28
简单,去学习一下安卓逆向技术就行。找到那一串代码,改掉换成你想要的就行 安卓是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。安卓逆向就是将安装包apk文件还原成打包前的样子。逆向分...

简单,去学习一下安卓逆向技术就行。找到那一串代码,改掉换成你想要的就行

安卓是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。安卓逆向就是将安装包apk文件还原成打包前的样子。逆向分析是一门技术,也是一门艺术。

分类:

1.应用层APK逆向。

2.安卓设备框架逆向。

3.内核驱动逆向。

4.基于安卓的硬件产品逆向。

逆向工程,主要有几种用途,第1种是直接修改apk的,例如改代码数值、改图片等的,这时主要用到apktool来解包、打包。第2种是逆向分析,然后源码开发出类似功能的,这时用apktool来得到资源文件,再用dex2jar来得到类似的源码,然后再根据逻辑来完善这个工程。

工具/原料

more

apktool dex2jar jd-gui Android签名文件

方法/步骤一:使用apktool来解包打包

1/5 分步阅读

使用apktool来编译出资源文件。在命令行输入:

apktool -d test.apk

2/5

执行上一步后,分析资源文件。

apktool.yml: apk属性,这个基本不用修改的.AndroidManifest.xml: 清单文件, 看这里可以知道总体的代码结构.original: 原始数据, 应用的二进制清单和签名.res: 资源文件,图片,xml文件都在这里。smali: dex解析的代码.smali是dex虚拟机的解析格式,在 dex2jar中,也包含smali格式的转换.

3/5

修改文件。一般情况,修改文件主要是res和smali。修改图片,主要.9的图片是不太支持重新打包的。修改smali文件,可以结合用dex2jar把代码反编译成可读性强的代码,读懂smali文件每一代实际代表的java代表的意思。用有的编辑工具编辑smali后,会生成.bak后缀的代码,注意要删掉,否则会重新打包编译不通过。

4/5

使用apktool重新打包。在命令行输入:

apktool b test

5/5

签名apk。没有签名的apk是不可用的。在命令行输入:

jarsigner -digestalg SHA1 -sigalg MD5withRSA -verbose -keystore 密钥库名 -storepass 密钥密码 -signedjar 生成后apk路径 原apk路径 密钥别名

方法/步骤二:结合dex2jar来生成源代码

1/2

如果想逆向分析后,用源代码开发一个类似的,这时需要用dex2jar来生成可读性强的源代码。在命令行中输入:

d2j-dex2jar.bat test.apk

2/2

利用jd-gui等工具,来查看生成后的jar。这时可以看到代码类似开发时写的java源代码了,可以大概读懂大部分逻辑。如果把代码拷贝到Android Studio,会发现还是有些错误,这时可以结合逻辑进行修改。

安卓逆向一般指的是做安卓逆向开发,职位也类似于正向开发的JAVA程序员;但是需要具备很多的知识储备来,JAVA正向开发,底层的C,汇编语言,了解各种协议算法加解密,会脱壳加固,比较多哈。但是这类资自深大牛的工资都是年薪计算的;正向开发的人员相对饱和,逆向工程师的需求也很大。通俗的给你总结就是,可以做做软件的破解与防破解,游戏的破解与防破解。

逆向涉及的技术

反编译

反编译首先遇到的问题是脱壳,如果APP没有加壳子的话那还好一点,如果加了壳,那得深入研究下了,可以去网上了解下,不做过多赘述。

反编译成功以后,需要在清单文件Androidmainfest.xml里找到当前APP用到的App name :android:label 和 app icon:,一般的话这两个会有一个引用地址,找到引用地址,然后去资源目录下Java .class 的R文件找到资源地址并记录下资源文件名字,之后就可以用新资源覆盖。

回编译

反编译完以后,这个时候要再回编译成apk ,大部分app都有签名机制,回编译完之后有可能也运行不起来。网上也有好多解决方案,可自行查找。

希望对你有帮助。

其他相关 RELEVANT MATERIAL
请问一下英语课程里面有没有动画片的?我家孩子比较喜欢看动画片。贝乐的?

请问一下英语课程里面有没有动画片的?我家孩子比较喜欢看动画片。贝乐的?

haiyicha haiyicha
522
2022-05-28
不知楼主的孩子几岁,学英文的目标是什么?为了考试,还是为了提前对孩子英文启蒙,让孩子有英文语感。 如果楼主孩子喜欢看动画片,现在资源就太多,很多都是原版的英文动画片 1.比如楼主提到的英语课程里的,贝乐的动画片,你可以用“youtube”搜索“best learning......
广告公司该如何转型?

广告公司该如何转型?

haiyicha haiyicha
187
2022-05-28
一是内容为王。通过做好刊物内容扩大影响力,吸引广告客户。二是结合刊物的行业特点定位细分广告客户资源。三是按产业链挖掘广告客户资源。四是做好新媒体,用新媒体的传播力影响广告客户。 我们不需要再开发新的资源,利用现有的人脉关系,现有的物资,现有的人员,现有的办公场地,现有......
想在3个月之内入门前端,有什么建议呢?

想在3个月之内入门前端,有什么建议呢?

haiyicha haiyicha
493
2022-05-28
  现如今,Web前端一直热度不减,未来必将会面临更多的竞争,所以只有不遗余力的把自己打造成一把利剑,从专业度到职业素质,只有比别人更突出和优秀,才能够在这个相互选择的世界当中拥有更多的选择权利。   学习Web前端内容大致包括以下7大部分:   阶段一:前端页面重构......
前端程序员应该往全栈方向发展吗?坚守前端怎么样呢?

前端程序员应该往全栈方向发展吗?坚守前端怎么样呢?

haiyicha haiyicha
186
2022-05-28
答案是肯定的,前端程序员一定要往全栈方向发展,原因有以下几点: 第一:前端开发后端化是一个趋势。目前前端开发得到越来越多的重视,尤其是随着移动互联网的发展,前端技术的场景开发是目前一个重要的开发领域。随着NodeJS的普及,前端开发的后端化进入了一个新的发展阶段,轻量级......
前端开发工作一年多,应该怎样进阶?

前端开发工作一年多,应该怎样进阶?

haiyicha haiyicha
905
2022-05-28
谢谢邀请! 作为一名IT行业的从业者,同时也是一名计算机专业的研究生导师,我来回答一下这个问题。 首先,对于前端开发的初级从业者来说,要想在岗位上获得不断的提升,应该从以下几个方面入手: 第一:不断丰富自身的知识结构以便于突破岗位边界。目前前端开发在移动互联网、云计算和......
好的Web前端年薪会有多少?

好的Web前端年薪会有多少?

haiyicha haiyicha
813
2022-05-28
说到这里,我们看看某互联网大厂的职级薪资表。通过这个表我们可以看出,一个员工的收入是跟他的职级相关的,跟具体做什么没关系。 但是,我们要知道一个员工的职级主要是他对公司的贡献决定的。对于Web前端程序员能够给公司带来多大的贡献显得非常必要。 薪资待遇的多少,一般来说取......
评论 SAY SOMETHING
年度爆文