package com.zhy.decompile;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
app的样子是这样的,凑合截个图,据说没图不利于阅读。
然后点击run,拿debug的apk就可以,当然不嫌麻烦可以自己签名拿个混淆的apk,也可以随便下载一个小众的app。
1.反编译一个app
./apktool d app.apk
其中res目录为资源目录,smali目录下可以认为是源码目录,不过都是对应的smali文件。
如果你对smali的语法比较清晰,可以直接在代码中添加逻辑。
我们这里就算了,不过我们这里可以打开res目录,找到activity_main的布局文件,然后修改里面的字符串为:This is hacked app!
,这里自己玩。
对了,我们要注入闪屏广告。
思考下,闪屏广告我们可以用Activity来呈现,那么我有个思路是这样的步骤:
-
编写闪屏广告页的Activity
-
修改AndroidManifest.xml中的入口Activity为我们闪屏页Activity
-
闪屏页面中,3s后跳转到原有的入口Activity
那就搞定了。
好像有什么不对的地方,我们这里的源码都是smali格式的,那么闪屏页的Activity我只会java呀,这怎么转化,有什么大力出奇迹的工具么?
恩,还真有。
工具就是Android Studio,开个玩笑,虽然我们不会,但是我们知道smali文件可以反编译生成,那么我们可以查看反编译apk的包名,然后我们新建一个app,在相同的包名下编写一个闪屏页Activity,然后打包成apk。把这个apk再反编译ÿ