0
点赞
收藏
分享

微信扫一扫

公司app出现异常版本与使用记录,怀疑app被换壳,下面总结换课过程,保护过程下节更新

生态人 2022-12-16 阅读 121


反编译​​Android​​应用程序查看源代码、资源文件和xml文件以及修改后重新打包成APK。也可以直接使用网友整理的 ​​anti-droid​​.

 

Android APK实际就是个Zip文件,可以解压缩后反编译查看源代码和资源文件。以下以微信为例:

我们可以右击APK文件,”打开方式”选择Winrar压缩文件管理器,截图如下:

​​

公司app出现异常版本与使用记录,怀疑app被换壳,下面总结换课过程,保护过程下节更新_xml


​是不是跟程序的目录结构很像,源码已经被压缩在了classes.dex文件中。这里我们可以直接查看res下面的图片文件,但对于源代码无法查看,AndroidManifest.xml清单等xml文件打开也是乱码。

 

需要用到的工具包​​下载地址(截止2013-03-14最新)​​​,包括dex2jar、jd-gui、apktool。也可以在下面需要时分别下载最新。
1、 查看源码
(1) 修改待反编译文件后缀.apk为.zip后用winrar解压,记录classes.dex的路径。
(2)使用工具包中的android-reverse-trinea\dex2jar-0.0.9.13或下载​​​最新的dex2jar​​后解压,在命令行运行


<textarea class="crayon-plain print-no" data-settings="dblclick" readonly="readonly" style="color: rgb(0, 0, 0); overflow: hidden; margin: 0px; width: 736.1875px; padding-top: 0px; padding-right: 5px; padding-left: 5px; height: 15px; position: absolute; opacity: 0; border-style: none; box-shadow: none; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; -webkit-box-shadow: none; word-wrap: normal; resize: none; tab-size: 4; z-index: 0; line-height: 15px !important; font-family: Monaco, MonacoRegular, 'Courier New', monospace !important;"></textarea>


如下:

​​

公司app出现异常版本与使用记录,怀疑app被换壳,下面总结换课过程,保护过程下节更新_jar_02


​​结果会在classes.dex所在目录下生成classes_dex2jar.jar,用jd-gui.exe(使用工具包中jd-gui或​​下载最新​​​)打开此文件,如下:
​​​

公司app出现异常版本与使用记录,怀疑app被换壳,下面总结换课过程,保护过程下节更新_xml_03

​​ 从中我们可以大致了解代码结构,虽然源码经过proguard混淆后可读性很差,但还是可以通过关键字(不可混淆的类名等)查找获取到一定的信息。不过jd-gui无法通过源码查找,只支持查找类型、构造函数、常量、属性、方法。

 

2、查看资源文件和xml文件
(1)使用工具包中的android-reverse-trinea\apktool-1.5.2-windows或下载​​​最新的apktool​​(需同时下载apktool及对应平台的依赖包,解压后将平台依赖包中的apktool.jar复制到apktool目录下),在命令行运行


<textarea class="crayon-plain print-no" data-settings="dblclick" readonly="readonly" style="color: rgb(0, 0, 0); overflow: hidden; margin: 0px; width: 736.1875px; padding-top: 0px; padding-right: 5px; padding-left: 5px; height: 15px; position: absolute; opacity: 0; border-style: none; box-shadow: none; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; -webkit-box-shadow: none; word-wrap: normal; resize: none; tab-size: 4; z-index: 0; line-height: 15px !important; font-family: Monaco, MonacoRegular, 'Courier New', monospace !important;"></textarea>



其中d表示解包,xxx.apk为待反编译apk路径,xxx为目标文件夹名,(apktool不支持中文目录),如下:
​​​

公司app出现异常版本与使用记录,怀疑app被换壳,下面总结换课过程,保护过程下节更新_jar_04

​​​ 结果会再apktool.bat所在目录下生成weixin文件夹,现在就可以正确的查看xml资源(包括res下的所有资源,如点9图片、drawable、layout、value、menu等等)了,比如AndroidManifest.xml
​​

公司app出现异常版本与使用记录,怀疑app被换壳,下面总结换课过程,保护过程下节更新_反编译_05

​​

 

3、修改后重新打包成APK

依然使用步骤2中的apktool,命令如下


<textarea class="crayon-plain print-no" readonly="readonly" style=""></textarea>



其中b表示build,xxx表示步骤2中解包出来的文件夹,我们可以对某一文件进行修改,重新打包​​

公司app出现异常版本与使用记录,怀疑app被换壳,下面总结换课过程,保护过程下节更新_jar_06

​​​ 打包完成后会在xxx目录下生成build和dist两个文件夹,dist存放重新生成的APK,build存放该APK的具体组成信息。
这里我们可以简单的替换资源也可以通过修改​​smali​​完成代码的修改,别做坏事哦^_*。

举报

相关推荐

0 条评论