欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

安卓反编译揭秘(爱加密系列教程五)

程序员文章站 2022-03-19 12:41:14
APK软件反编译 去广告    具体步骤:   1.下载 apktool    下载地址:https://c...
APK软件反编译 去广告 

 

具体步骤:

 

1.下载 apktool 

 

下载地址:https://code.google.com/p/android-apktool/downloads/list

 

2.通过apktool 反编译apk。命令行中输入以下命令:apktool.bat  d  -f   aaa.apk(apk路径) 反编译APK文件

 

3.开始修改XML布局文件

 

首先,我们进入反编译后的文件夹,以我的为例

 

进入 C:\apk\com.youmi.android.sample\res\layout  目录下

 

用记事本打开activity_ad.xml(注:不同的程序广告所在的文件不一样,可以查看一下别的文件里,一般都是在res\layout 目录下的xml文件里。)

 

可以看到下面一段代码

 

 <LinearLayout

        android:id="@+id/adLayout"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:layout_alignParentBottom="true"

        android:gravity="center_horizontal"

        android:orientation="horizontal"

        >

 

 

这段代码是用来展示广告的我们可以改成

 

 

<LinearLayout

        android:id="@+id/adLayout"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:layout_alignParentBottom="true"

        android:gravity="center_horizontal"

        android:orientation="horizontal"

android:visibility="gone"

        >

 

 

这样广告就被隐藏起来了。

 

4.通过apktool 把修改后的代码编译会APK,输入apktool.bat   b  aaa (你编译出来文件夹)

 

5.最后记得给新的APK签名。

 

sign apk file: jarsigner -keystore test.keystore -storepass password -verbose TestApp-unsigned.apk name_alias

 

 

 

附录

 

      Jarsigner命令详解   

 

[-keystore <url>]           密钥库位置   

[-storepass <口令>]         用于密钥库完整性的口令   

[-storetype <类型>]         密钥库类型   

[-keypass <口令>]           专用密钥的口令(如果不同)   

[-sigfile <文件>]           .SF/.DSA 文件的名称   

[-signedjar <文件>]         已签名的 JAR 文件的名称   

[-digestalg <算法>]    摘要算法的名称   

[-sigalg <算法>]       签名算法的名称   

[-verify]                   验证已签名的 JAR 文件   

[-verbose]                  签名/验证时输出详细信息   

[-certs]                    输出详细信息和验证时显示证书   

[-tsa <url>]                时间戳机构的位置   

[-tsacert <别名>]           时间戳机构的公共密钥证书   

[-altsigner <类>]           替代的签名机制的类名   

[-altsignerpath <路径列表>] 替代的签名机制的位置   

[-internalsf]               在签名块内包含 .SF 文件   

[-sectionsonly]             不计算整个清单的散列   

[-protected]                密钥库已保护验证路径   

[-providerName <名称>]      提供者名称   

[-providerClass <类>        加密服务提供者的名称 

[-providerArg <参数>]] ... 主类文件和构造函数参数