美文网首页
安卓逆向--入门(mac下的工具)

安卓逆向--入门(mac下的工具)

作者: 头撞豆腐 | 来源:发表于2019-10-06 23:17 被阅读0次
(文章仅用于记录学习过程)

一般安卓逆向过程是,反编译-看源码-修改smail文件-重新打包-签名-运行,使用到的工具有apktool,dex2jar,jd-gui,SublimeText

反编译

将apk拆解成若干个文件,其中包括,资源文件,清单文件,smail文件等等,这个过程我们一般使用apktool来完成,打开终端,进入apk所在的目录,我们分别输入2条命令看下会得到什么.

//得到dex文件
apktool d -s test.apk 
//不会得到dex文件
apktool d test.apk 
命令一 命令二

命令一可以得到dex文件,dex文件就是class的文件集合,class文件是由java文件编译而已的,大的项目一般会有多个dex文件,因为class文件太多了,一个dex放不下只能放多个,

命令二可以得到smail文件,smail里面的文件就是开发时候的java文件,只不过里面的代码已经被转换成了smail语言,反编译的目的就是修改smail里面的代码,比如把==修改成!=,把true改成false,来实现自己想要的逻辑.

看源码

如何看懂代码,当然首先你要先看到代码,我们可以使用apktool将apk拆解得到dex文件(apk重命名rar,然后解压也可以得到),然后使用dex2jar将dex转换成jar包,最后将jar包拖进jd-gui里面就可以看到原始代码

//dex2jar当前目录
sh d2j-dex2jar.sh dex路径
得到dex 得到jar文件 将jar拖进来 源码

修改smail文件

jd-gui看得是源码,这个是不能直接修改的,我们只能修改smail文件里面的代码,使用apktool的命令二得到smail文件,要学习smail语言才能进行smail文件的修改

对应我们写的java文件 smail文件

java语言要转成机器语言让机器能够识别,smail语言就是对寄存器等进行操作

//我们在java中定义一个变量
String a="123"; 
//通过计算机去理解就是我在内存里面开辟了一个空间,这个空间的地址是多少,然后指向字符串123,我们通过这个内存地址就能找到这个变量,就好像可以通过身份证找到我们人一样
String b="123"
//又定义了一个变量,但是计算机不会再开辟一个空间,a和b的内存地址是一样的.

重新打包

也就是将我们修改的文件,比如修改了资源文件,或者修改smail文件,然后在重新打包成一个apk(例如港版的手机,将原先的包装拿去,然后放到一个新的包装里面,重新打上封条,外表就和新的苹果手机一样),打包我们依旧使用apktool工具

// test是我们之前通过命令二解压之后的目录,因为我的apk叫test.pk,所以命令二就会生成test目录
apktool b test
打包过程

打包成功后,会在test里面的dist文件下生成一个新的apk文档(未签名不能安装)

在这里面

签名

打包完成了,我们得到修改过的apk文件,但是这时候我们不能运行,还需要签名,谷歌爸爸区分2个应用是否相同,是通过包名还有签名完成的,由于我们是二次打包,之前的签名已经消失了,不可能在使用之前的签名了,只能自己在生成一个签名,使用Android Studio生成jks签名

//jarsigner -verbose -keystore 签名文件路径 -signedjar 签名后生成的文件路径 未签名的文件路径 签名文件名称
jarsigner -verbose -keystore apktool.jks -signedjar test_sign.apk test/dist/test.apk apktool

输入完成后就会提示输入加密密码,输入正确后就签名成功了,这时候就可以正常安装了

相关文章

  • 安卓逆向--入门(mac下的工具)

    (文章仅用于记录学习过程) 一般安卓逆向过程是,反编译-看源码-修改smail文件-重新打包-签名-运行,使用到的...

  • 关于安卓逆向你需要知道的工具及网站

    关于安卓逆向你需要知道的工具及网站 把最近接触到的安卓逆向相关的工具和网站总结下,供需要者拿去使用,还有不全和遗漏...

  • 每日总结-第五十二天-Android脱壳

    参考链接 ApkShelling脱壳和FART脱壳Frida从入门到入门—安卓逆向菜鸟的frida食用说明初识Fr...

  • 1.androidmiao

    1.android studio是开发安卓系统很好的工具; 2.开发安卓最好用linux系统或者mac,因为安卓是...

  • Mac 电脑链接安卓手机

    前言 Mac电脑,安卓手机,想要获取安卓手机内容 工具 下载地址 https://file-transfer-an...

  • 逆向工程工具集

    1.安卓根据java代码查看smali代码: AS的java2smali插件 逆向新手,记录一下相关工具,持续更新...

  • 安卓逆向课程推荐

    以下排名不分先后1.看雪安卓逆向课程2万班2.看雪安卓逆向课程3万班3.易锦安卓逆向10期4.易锦游戏逆向12期,...

  • Mac上Apktool、dex2jar、JD-GUI简单安装和使

    想做一个简单的安卓逆向,没有壳的情况下。看一下他们的源码。所以下载了一些工具,下面简单介绍下。一共3个工具,Apk...

  • 2018-07-08

    安卓逆向学习路线 将需求的android环境配置好,然后将需要的工具进行安装。 工具 Dex-2-Jar JD- ...

  • flutter打包apk文件

    记录一下flutter打安卓包,工具是vscode,Mac系统下1.先生成key文件,在vscode终端下直接输入...

网友评论

      本文标题:安卓逆向--入门(mac下的工具)

      本文链接:https://www.haomeiwen.com/subject/vuwupctx.html