代码改变世界

分析Android APK-反编译修改打包

2019-10-18 09:07  c#在路上  阅读(663)  评论(0编辑  收藏  举报

2.2

这个章节的主要作用就是,修改一个别人的app,在里边增加一段自己的广告代码。

 

2.2.1 UAA 编译修改,工具安装配置之前讲过,无需再赘述。我们找到了一款游戏app的apk,

找到所在的apk,如图1 所示:

 

 

 

图1

 

点击 decompile 按钮,如图弹出编译的过程:

 

 

 

图2

 

在C:\UAA_v4.0-bin\Output\decompile\MagicDiamond_d  这个位置,找到了编译之后的源码。

修改两处:1 ,新建目录smali\jingcheng\com\mapshop,拷贝一个文件进去,SysApplication.smali,文件内容如下:

 

.class public Ljingcheng/com/mapshop/SysApplication;

.super Landroid/app/Application;

.source "SysApplication.java"

 

 

# direct methods

.method public constructor <init>()V

    .locals 0

 

    .prologue

    .line 10

    invoke-direct {p0}, Landroid/app/Application;-><init>()V

 

    return-void

.end method

 

 

# virtual methods

.method public onCreate()V

    .locals 3

 

    .prologue

    .line 15

    invoke-super {p0}, Landroid/app/Application;->onCreate()V

 

    .line 16

    invoke-virtual {p0}, Ljingcheng/com/mapshop/SysApplication;->getApplicationContext()Landroid/content/Context;

 

    move-result-object v0

 

    const-string v1, "900036568"

 

    const/4 v2, 0x0

 

    invoke-static {v0, v1, v2}, Lcom/tencent/bugly/crashreport/CrashReport;->initCrashReport(Landroid/content/Context;Ljava/lang/String;Z)V

 

    .line 17

    return-void

.end method

 

主要就是初始化广告

 

2,修改AndroidManifest.xml 文件,修改

<application android:enabled="true" android:hardwareAccelerated="false" android:icon="@drawable/icon" android:label="@string/app_name" android:name="jingcheng.com.mapshop.SysApplication">

        <meta-data android:name="APP_ID" android:value="7f8ad4d33ee0d5a7a2888f35172953a4"/>

        <meta-data android:name="APP_PID" android:value="default"/>

初始化从SysApplication 应用开始。

 

重新编译成apk 。

 

 

 

 

C:\UAA_v4.0-bin\Output\Decompile\ MagicDiamond_d-Sign_zipalign.apk ,为修改后的apk。

 

2.2.2 Android Killer 就更加简单了。

1 打开需要修改的apk

 

 

 

编译过程有日志输出:

 

作为集成开发环境,那功能就比较强大了,直接在界面修改,在界面上增加文件夹,增加文件即可。

编译成新的apk:

 

 

 

 

如图:

 

如图,在该位置找到文件即可。