apk反编译修改

反编译修改apk

所用软件                                                          

Jdk

dex2jar   (例子版本dex2jar-0.0.9.15) 用于修改java文件

ApkTool 反编译apk

XJad

eclise (主要用于生成单个的jar文件)

为了叙述方便以破解test.apk为例。

一修改展现界面

步骤1test.apk命名为123.apk放在ApkTool文件目录下运行APKTool.cmd文件,按提示选择1按回车键。ApkTool会把123.apk反编译出来放在APK目录下,这里的xml是可读的(直接解压apk文件的xml是不可读的)其文件目录如下:

步骤2找到要修改的界面布局的xml或图片进行修改。(做过android开发的人应该很熟悉)

        这里举例我们修改两个位置:

a:修改app的名字

          

 

b修改其中的一个图片。

   找到要修改文件的位置我替换的是:APK\assets\data\res\ui下的

      

        

步骤3修改完后进行回编。

运行APKTool.cmd文件,这是我们选择2(虽然3是回编并签名,这里我们不选择,我试过没有正确签名,原因没有细究)

之后在build文件下回生成一个:已编译(未签名).apk 文件(如果你没有看到在APKTool.cmd下按个回车)

步骤4签名修改后的apk(签名是jdk的功能)

  a :运行cmd 执行cd指令指向我们要签名的apk所在文件目录。

 b :先用keytool生成keystore

执行keytool-genkey -keystore mykeystore -alias mykeystore -validity 999指令

执行完后会在当前目录下生成一个mykeystore文件

c : 再用jarsigner 签名
jarsigner -verbose -keystore mykeystore –signedjar 已编译(已签名).apk  已编译(未签名).apk mykeystore

  执行后生成:已编译(已签名).apk这个是可用的。

步骤5界面的修改已经完成。安装测试

 

可以看到我们修改的两个位置都已经变化了。

二修改程序的逻辑

步骤1修改 test.apktest.zip 用解压工具解压得到的文件目录结构如下:

  这里的xml是打不开的。

步骤2修改java文件(应用的逻辑)

运行cmd cd指令指向dex2jar文件夹目录

调用指令:d2j-dex2jar.bat  C:\Users\Administrator\Desktop\over\temp\classes.dex

把步骤1中的classes.dex文件转换为jar文件,转换后的jar文件放在dex2jar目录下(因为没有指定)名字为:classes-dex2jar.jar

可以用java的反编译工具修改classes-dex2jar.jar文件

步骤3打开XJad.exe 选择反编译jar文件

相同目录下得到源码

步骤4eclipse中新建一个android项目把源码拷贝过去。

步骤5修个java后打补丁

步骤6替换源文件

步骤7 调用d2j-jar2dex.bat指令把修改后的jar回编为dex文件

步骤8替换apk中的classes.dex文件,并删除META-INF文件夹

步骤9重新签名,即可以安装使用了

声明:此文档仅供学习,参与违法行为与笔者无关。 

修改APK(Android Package)文件中的SELinux权限通常涉及到对DEX(Dalvik Executable)文件的低级操作,因为SELinux策略存储在DEX文件的元数据中。这里不建议直接修改原始APK,因为它可能会导致应用程序崩溃或无法正常运行。一个更安全的方法是在APK已经安装到设备上后,通过工具如`SELinux Enabler`或者`SELinux Policy Editor`来临时改变权限。 然而,如果你仍然想要了解如何对DEX文件进行反编译修改,你可以按照以下步骤进行(注意这是高级开发者操作,可能涉及复杂的命令行工具): 1. **反编译DEX**[^4]: 使用`dex2jar`工具将DEX转换成JAR文件,便于分析: ```shell $ dex2jar -f your.dex > your.jar ``` 2. **提取元数据**[^5]: 使用`smali`或`jd-gui`这类工具解析JAR,找到包含SELinux策略的`.xml`文件。 3. **编辑元数据**[^6]: 打开XML文件,查找与SELinux权限相关的部分,比如`<android:permission>`标签。根据需要修改权限配置。 4. **重新打包**[^7]: 使用`zipalign`工具调整文件格式,然后使用`jarsigner`签名,最后转换回DEX: ```shell $ zipalign -v 4 your.jar aligned.jar $ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore your_keystore.jks aligned.jar your_keyalias $ dx --dex --output=modified.dex aligned.jar ``` 5. **再编译为APK**[^8]: 将修改后的DEX放入新的APK中,使用AAPT(Android Asset Packaging Tool)打包资源和其他文件。 请注意,这些步骤可能会因不同的Android版本和工具包而略有差异,而且对原文件的改动可能导致应用不再兼容。在实际操作时务必小心并备份原始文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值