-
关于安卓应用(APK文件)的二次打包
2014-10-24 15:42:45很多开发者,不管是个人或是公司都不太注重自己...期初我并不知道该市场上的应用是盗版的,还在沾沾自喜呢,并且下载了一个装在了手机里,后来发现手机通知栏莫名其妙的出现许多垃圾广告,还有一些应用我并没有安装,很多开发者,不管是个人或是公司都不太注重自己开发的应用的安全性,即是否会被不法分子篡改代码,插入恶意代码,发一些垃圾广告,甚至盗用用户信息。包括我在内,也并不太在意,直到前几天在市场上发布的一款应用被盗版并上传到了某些应用市场才发现问题的严重性!期初我并不知道该市场上的应用是盗版的,还在沾沾自喜呢,并且下载了一个装在了手机里,后来发现手机通知栏莫名其妙的出现许多垃圾广告,还有一些应用我并没有安装,但却出现在了我的手机上,我纳闷了,长按通知栏信息可以显示发布该通知的应用的信息,进去一看竟然来自我的应用,妈呀!这是怎么回事,我并没有上广告啊!于是,我就将此安装包反编译了下,一看原包里竟然多出了一个包叫做y6,并且清单文件中也加了许多代码包括Service,Receiver之类的,最郁闷的是包名竟然被改了,最后我把植入的广告代码统统删除掉,包名也改回来后,重新打包,竟然又成功了,看到这里,大家有何感想??您在发布自己的应用时时候会考虑到这些??
啰嗦了这么多,那么此时我们看看那些坏银是如何进行二次打包的!反编译大家应该都不陌生,apktool就可以了,但是如何修改或者插入代码,最后再回编成apk呢?(注:对于此过程已经倒背如流的“大神”可以离开了)我们在用apktool反编译apk后生成的文件夹中包含了一个smali文件夹,如图:
这个即是该应用的精华所在,所有代码都在这里了,打开之后看到的全是后缀为.smali的文件,再打开某一文件看看其代码,好像没怎么见过,对了,它便是Dalvik虚拟机指令语言,修改代码也是在这里修改的,大家可以百度下,普及一下知识,好了,下面将举一个简单的例子,包括利用apktool反编译——修改代码——回编译并签名——安装修改后的应用以测试等一系列过程:
1.利用利用apktool反编译apk:
首先我写了一个简单的例子,用Eclipse生成了一个测试apk(签名后的),主代码及运行结果如图:
MainActivity.java
接下来开始反编译:
将测试文件放进apktool文件夹中,并改名为123.apk,运行APKTool.cmd:
选择1反编译后,生成一文件夹名字为APK,打开文件夹及可看到如第一张图片所显示的目录了,打开smali文件夹并找到MainActivity.smali文件打开。找到如下代码:
这些代码其实和我们的源代码是一一对应的,源代码中有的,在这里都可以找到,只是smali用的是汇编语言,所以,想进行复杂的修改还是要去学学smali语法了。
2.修改代码:
因为此例比较简单,所以不会进行太复制的修改,我们把"test my application"修改为"哈哈,你的应用被破解啦"测试一下即可!
3.回编译:
修改完毕后保存,回到apktool根目录,打开刚才的cmd,选择2或3开始执行回编译,执行成功后记得按一下回车进行签名,重新签名的应用再安装的话是会报签名不一致错误的,所以需要把原来的卸载掉再重新安装,运行如图:
到此,二次打包成功!我在写这篇文章之前,也对几个游戏进行了反编并重新打包,里面所付费的什么金币了钻石了再找到相应代码后都是可以修改的,不过有时在使用时修改后的金币或钻石时可能会联网检测,并带有签名参数,重新打包的签名肯定和原签名是不一致的,这个其实要在再深入研究也是可以破解的!
看到这里,大家又有何感想呢?当我们发布一款应用时,一定要检查下我们的应用是否存在被二次打包的风险,可以用以上方法测试下,有问题的就要想办法加固了(注:只进行代码混淆是不能防止被二次打包的),不然被一些不法分子利用后,损失的不到是自己,公司也还包括用户的利益了,对自身的名誉也会造成一定的伤害!
回过头来,我们猜测一下开头提到的我的应用被安插恶意广告是怎么实现的?个人觉得,就是利用上面这种方法反编译后,把已经写好并生成的smali文件放进了我的包里,然后在清单文件中进行一些配置,并修改了包名,最后重新打包(得出这个结果是有依据的,我对二次打包的apk又进行了一次反编译,并将其安插的代码及配置代码全部删除,包名改回,第三次打包,安装后仍然没有任何问题,而且也去除了广告,除了签名不同外),最后再提一点就是二次打包是,清单文件中的版本,版本号,包名都是可以修改的,这个大家一定要注意了!
最后附上apktool工具下载地址:http://download.csdn.net/detail/baiyuliang2013/8077501
说明:若使用时出现问题,可以尝试将其中的aapt.exe换成自己Eclipse中的aapt.exe。
-
APK文件反编译回安卓工程文件的方法
2013-08-23 10:24:00昨天遇到了安卓端一直连接不上PC的情况,无论使用了什么方法都没法解决,最后使出了杀手——重装系统,终于解决了。但是也带来了一个问题...1.首先是把apk文件拿回到电脑当中。 这个很简单,电脑连接手机进行USB调试,前言:
昨天遇到了安卓端一直连接不上PC的情况,无论使用了什么方法都没法解决,最后使出了杀手——重装系统,终于解决了。但是也带来了一个问题,重装系统的时候都太心急了,忘了备份工程了。所有的工程文件全部丢失(Eclipse的工程文件默认都会放在C盘)。
好在再我的手机上安装了自己写的几个apk。于是准备反编译回工程文件。
下面就进入主题:
第一步、把apk文件拿回到电脑当中。
这个很简单,电脑连接手机进行USB调试,使用豌豆荚之类的工具直接可以把文件发送到电脑上。
第二步、把apk文件的后缀名改成rar,然后解压之后就发现了工程文件目录结构。
如test.apk改成text.rar。然后解压,位置任意(我这里解压到了D盘apk目录下)。
目录结构如下:
第三步、目录结构
这里的xml文件以及res中的文件都是二进制的,双击进入之后其实都是乱码。
每个资源所包含的内容如下。
res\ 存放资源文件的目录
AndroidManifest.xml 程序全局配置文件
classes.dex Dalvik字节码
resources.arsc 编译后的二进制资源文件第四步、处理xml文件。
这时就用到了一个android4me的AXMLPrinter2工具。
下载地址:http://code.google.com/p/android4me/downloads/detail?name=AXMLPrinter2.jar&can=2&q=点击下载然后我们把文件解析出来,首先cmd进入命令界面,然后进入到该jar包的目录。我的结构为:
我输入的命令为:java -jar AXMLpRinter2.jar RFIDDAQ\AndroidManifest.xml(查看解析之后的xml文件)java -jar AXMLPrinter2.jar RFIDDAQ\AndroidManifest.xml > RFIDDAQ\main.xml(将解析后的文件方法main.xml文件里)双击打开main.xml文件你就发现xml文件已经可以正常查看了
第五步、获取java代码这里需要处理的就是上面图中的classes.dex文件。首先需要下载一个dex2jar,下载连接:http://101.96.10.75/downloads.sourceforge.net/project/dex2jar/dex2jar-2.0.zip?r=https%3A%2F%2Fsourceforge.net%2Fprojects%2Fdex2jar%2Ffiles%2Flatest%2Fdownload&ts=1470824138&use_mirror=jaist点击下载下载后把zip文件解压:结构目录如下:cmd进入到该目录下:使用命令:dex2jar.bat classes.dex//注意这里所在的是dex2jar的目录,我们应该填写classes.dex文件的绝对路径D:\dex2jar>dex2jar d:\apk\RFIDDAQ\classes.dex
这样的话RFIDDAQ目录下就多了一个jar文件:
第六步、处理jar文件,获取源代码。这里同样需要用到一个工具JDGUIhttp://java.decompiler.free.fr/?q=jdgui下载地址下载之后解压之后显示目录如下:然后双击exe文件运行,最后最后提醒一下:反编译是利用一定的规律来对其所实现的功能进行一定的反写,其并不知道原作者们当初制定的规则,就像我们同样是for循环遍历,就是for(int i=0;i<map.size;i++)和for(Object o:map.keySet())两种一样。反编译并不知道我们使用的是哪一种,但是他能知道我们使用了这个遍历。就因为这原因,所以反编译出来的源码和我们当初写的源码其实是有很多不同的,而且反编译出来的源码看起来会相当的累,毕竟这是程序生成的代码,程序和人思考的方式是不一样的。注:本文参考http://blog.csdn.net/hualingxin/article/details/7591546编写。 -
Google安卓版套装
2018-08-30 15:00:10压缩包中内含Google服务框架、Google Play 服务、Google帐号管理程序、Google Play 商店,均为apk文件。下载至手机安装就可使用。 -
安卓手机安装Xposed框架
2020-06-02 18:08:18目录安卓手机安装Xposed框架手机解锁**如何查看是否解锁准备所用文件刷入第三方Recovery(TWRP)下载twrp包开始刷入安装模块安装xposed管理工具 安卓手机安装Xposed框架 本文只是记录自己刷机过程,曾经 变过砖1,...安卓手机安装Xposed框架
本文只是记录自己刷机过程,曾经 变过砖1,刷机有风险。
xposed框架可以在不重装Apk情况下修改程序代码返回值,这样就可以实现一些自定义功能:如微信朋友圈转发;Apk降版本安装;钉钉自定义定位等功能。手机解锁**
这一步很重要,如华为,小米等需要解锁的手机是必须要解锁的;
如何查看是否解锁
- 华为:
手机关机,启动到 fastboot2 模式。看下面是否有Unlock字样,有表示已经解锁,现在华为官方已经不提供解锁码,所以新手机一般不能解锁,就不要继续了 - 小米:
1.重启手机,出现MI图表后,下面是否解锁标识:Unlocked表示已经解锁。
2.设置→更多设置→ 开发者选项3 → 设备解锁状态4 (这里状态有可能不准确)
准备所用文件
刷入第三方Recovery(TWRP)
下载twrp包
查看支持的机型:twrp
若这里不包含自己的机型,建议刷入其他第三方recovery
从网上找到对应机型的img镜像文件开始刷入
-
解压上面下载的xposed工具包内的一键刷入
-
将下载的文件解压得到img文件,重命名为twrp.img,放置刷机工具目录下
-
将手机重启至 fastboot2
-
根据提示进行刷入twrp
-
完成后自动重启至recovery
-
usb连接电脑,将上面下载的工具包内的文件复制到手机储存:
- magisk-riru-v21.2.zip
- 刷入magisk.zip
- EdXposed-SandHook-v0.4.6.2.4529.-release.zip
然后在twrp-recovery界面选择安装,选择刷入magisk.zip
耐心等待完成后重启
重新进入手机系统,稍等一分钟自动安装magisk应用
安装模块
- 打开magisk应用,左上角→打开模块→点击加号→选择magisk-riru-v21.2.zip→等待安装完成
- 继续添加EdXposed-SandHook-v0.4.6.2.4529.-release.zip→重启手机
安装xposed管理工具
安装工具包中的EdXposedManager.apk文件到手机,启动后可以看到已经激活框架。可以下载一些模块进行海皮了
提供一个太极模块列表:太极模块列表
下载后安装到手机,重启全局生效
- 华为:
-
动网论坛WAP升级版 安卓手机客户端 v1.0.zip
2019-07-06 00:44:59动网论坛WAP升级版 安卓手机客户端说明:本次加装应用,适应与 http://down.admin5.com/asp/84939.html版本,其他版本请勿使用,否则将会出错 安装前,请备份您的站点论坛程序,方便恢复 本次发布包含3个功能... -
安卓手机截图 所需要的软件 (不需要手机root)
2013-11-29 17:12:32step2: apk文件装在安卓手机上 step3: exe文件装在PC端,并启动 如果 你的 手机 和 电脑 是连接 状态,那么 这个 红色圈起来的按钮应是可用状态,点击一下,它会 提示:你可以断开 电脑 与手机的连接,网上找了一堆,相当一部分 非常不靠谱。大多提示截图失败,需要 手机 root.
这里推荐一个 靠谱的手机截图软件。
下载地址:http://pan.baidu.com/s/1kqz2E
说明:
step1: 下载并解压,得到1个apk文件,1个 .exe文件
step2: apk文件装在安卓手机上
step3: exe文件装在PC端,并启动
如果 你的 手机 和 电脑 是连接 状态,那么 这个 红色圈起来的按钮应是可用状态,点击一下,它会 提示:你可以断开 电脑 与手机的连接,并在手机上开始截图了。
(下面有俺的一个手机截图效果)
至止,操作结束。
截图效果:
-
动网论坛WAP升级版+安卓手机客户端 v1.0
2019-10-17 18:33:13说明:本次加装应用,适应与 http://down.chinaz.com/soft/31891.htm 版本,其他版本请勿...将 安卓客户端.apk 下载到安卓系统手机执行安装测试,或者手机扫描二维码安装 更多信息请加QQ群交流:43033873 验证:站长 -
动网论坛WAP升级版 安卓手机客户端 v1.0.rar
2019-08-29 13:57:24说明:本次加装应用,适应与 http://down.chinaz.com/soft/31891.htm 版本,其他版本请勿...将 安卓客户端.apk 下载到安卓系统手机执行安装测试,或者手机扫描二维码安装 更多信息请加QQ群交流:43033873 验证:站长 -
手机apk应用程序未安装解决办法
2018-01-10 10:52:34用智能手机很多都会遇到“X应用程序未安装”这种情况,这是为什么呢?...我的手机是装了一个淘宝,结果未卸载干净导致再次安装失败,我用了以下方法安装成功:其实安卓系统的程序安装就是把APK文件复制到APP -
Android(安卓)系列手机怎么通过电脑安装手机应用程序?
2014-09-09 23:07:33很多朋友刚拿到Android(安卓)系列手机的时候大概首先就是要往里面装软件了,在ANDROID平台下安装文件的后缀名为“.apk”,就好像PC上的安装文件的 后缀名为“.exe”塞班平台安装文件的后缀名为“.sis”一样,所以... -
安卓系统2.3可装的JAVA模拟器直安装版-新版
2013-07-15 21:57:133、把jbed.apk文件放入system\app目录下,并把权限改成和其他文件一样, 重启就可以使用了。 4.将要安装的jar文件拷贝到SD卡根目录. 5.安装好后在手机的菜单中就会看到java的程序. 6.双进"java"进入后,就会看到... -
如何将html+css+js打包成apk或者ipa文件?
2020-12-10 17:49:03想要把网页装进Android或者IOS手机里本事对于H5开发的技术而言难度不小,不仅要懂安卓和苹果的操作机制,还要确保封装打包后的网页内的功能是否可以正常使用 不过现在的前端技术打包APP基本都不会使用创建一个... -
给大家推荐一个安卓手机内存扩展办法实测有效 爽到爆
2017-03-24 12:50:00注明:所有方法均需要ROOT,所有涉及到的APP也需要赋ROOT。 需要工具: 1、swap脚本;...(说明:如国不想开机启动可以跳过这步,讲这个步骤前提是因为老机子建立虚拟内存文件后可能内置空间已将不足... -
安卓bochs模拟linux_bochs linux镜像文件完美优化版
2021-02-12 00:18:56bochslinux镜像是一款能够让我们在手机上面快速运行Linux系统的镜像文件工具,通过该软件能帮助我们快速装镜像文件,就能完美运行该系统,对于常用linux系统的用户来说,非常的实用,对相关进行快速处理,有需要的... -
【亥著课堂】如何将html+css+js打包成apk或者ipa文件?
2020-07-14 18:07:23想要把网页装进Android或者IOS手机里本事对于H5开发的技术而言难度不小,不仅要懂安卓和苹果的操作机制,还要确保封装打包后的网页内的功能是否可以正常使用 不过现在的前端技术打包APP基本都不会使用创建一个... -
安卓2.3系统java模拟器直装版
2013-02-15 11:38:38在装这个之前,我只能刷的小米2.3.7的系统,用的是那个网上下的2.3版本可用的java模拟器,就是把jbed.apk文件复制到system/app里面,libjbedvm.so文件复制到system/lib里面并改权限的那个。这个直装版出来以后,... -
Apk脱壳圣战之---脱掉“梆梆加固”的保护壳
2020-04-18 23:35:50一、前言 现如今Android用户的安全意识不是很强,又有一些恶意开发者利用应用的名字吸引眼球,包装一个恶意锁机收费的应用,在用户被骗的安装应用...本文用的是一款叫做:安卓性能激活.apk,关于样本apk文件后面会... -
安卓笔记-adb指令、打包安装
2018-02-27 20:48:00adb install -r -s xxx.apk -r重装 -s 安装到sd卡 安装软件 adb uninstall -k 包名 -k 只卸载程序不清除数据 adb pull xxx.xxx 从手机取出文件 adb push xxx.xxx 发送文件到手机 adb shell ... -
nodemcu从零开始
2019-09-16 07:27:40首先说说我在向伪程序员道路上的发展过程吧(第一次写,全当充字数吧,有经历类似的同学可以加个好友),高一时买了一个安卓...然后就想尽各种办法解析安卓手机的apk文件,一次我把apk文件发到了塞班手机上,发现塞... -
360手机助手v2.3官方电脑版.rar
2019-09-02 20:32:31自动关联APK安装包:双击APK应用安装包可以直接进行安装,启动时自动检查APK文件是否关联。应用安装位置(仅对新安装应用的位置有效):智能选择安装位置:应用安装包中指定的安装位置。优先安装到手机中:安装应用到... -
手机应用安全简论
2021-02-02 14:03:55预装应用 : 手机厂商再出厂时给此手机预先装好的应用 用户自安装应用;用户自己安装的应用 Androidmanifest.xml 是整个一个应用的配置文件或者是入口 Classes.dex 具体应用的执行代码/文件 META-INF 目录 是应用的... -
在小米5上已经安装了的app,比如微信,我能否通过系统文件路径来修改app的图标和名称呢?
2019-06-02 10:02:50补充问题:安卓解析apk并进行安装应该是AndroidMainfest.xml文件里获取的应用名称和应用图标,但是装载在小米系统上之后,按理来说应该会将app icon以及应用名称生成配置文件在应用安装目录下,或者系统目录文件下,... -
用python画微信捂脸_懒人小技巧 (1):python 实现 IPA 上传到蒲公英
2020-12-08 20:39:08一、为什么要做这件事在测试过程中,ios app的安装包(.IPA文件)不像安卓的apk文件那样直接放到手机里点击安装即可,一般来说可以通过一下几种来方式来安装:xcode安装到收集中(点击windows->device->点击下面... -
2048小游戏
2014-07-07 09:20:39自己写的简易版的2048小游戏,安卓版和win32可执行文件。apk直接装到手机上就行啦。 -
蜀门手游学习笔记
2021-02-11 16:11:32下载雷电模拟器并安装运行,把上面的apk文件拖进去模拟器桌面安装 在模拟器内安装蜀门手游,手机注册登陆触动精灵app,网络设置开桥接(要装驱动) 回到主机浏览器登陆官网(上面的网址),在安全设置绑定触动安卓... -
android 模拟window运行环境
2017-09-29 15:00:45下载安装安卓平台的XP虚拟机 -- Bochs.apk(装好后先别打开!否则无法运行!) 2.将附件解压出来的“SDL文件夹”连同里面的文件一起复制到手机内存卡根目录。 3.打开下载的Windows XP镜像文件,将里面的... -
大米CMS v6.0.7 bulid0219.zip
2019-07-06 12:11:55提供开源的安卓手机客户端(APK)和对应的服务器端系统源码下载。 大米CMS特点 1:扩展字段自定义,根据自己系统需要无限扩展字段,对于SELECT等下拉选项支持PHP代码生成OPTION,支持自定义多图多文件上传字段! 2:...