对于逆向同学而言,用android killer打开、分析、修改源代码、重新编译apk是很方便的一件事,所以大部分人都是按照这个流程逆向搞APK的;对于大部分APK而言这么做也是ok的,但是对于少数APK,用android killer打开的时候就会报错,比如前面提到的这款国民级app:
android killer反编译时不管三七二之一,会反编译所有的文件,不仅仅是源代码。其实对于逆向而言,核心需求就是改代码,至于资源、配置文件一般都是不关心的,但是这种报错(有些apk也可能不报错)直接影响了apk的二次编译,比如重新编译时报错如下:
明明一行代码也没改,二次编译的时候居然还是爆各种错误,逆向同学感觉“很受伤”!遇到这种情况怎么办了?难道就没办法改apk的smail源码了?这个时候就要借助MT管理器了;打开MT,在data/app目录下选中这款app,单击base.apk后选中功能,弹窗如下:这是MT管理器的核心功能了,非常强大!
返回后点击查看,能看到apk目录的所有文件;这里主要演示修改smail代码,所以选中一个dex,在弹出的窗口中选择dex编辑器:
然后继续选择需要更改代码的部分,比如类列表->方法列表->方法,这里只是做测试,随便选择一个init初始化方法,增加几个空格,如下:然后保存;会弹窗提示保存成功!
再一路返回,选择“保存并退出”!这里选中自动签名,并确定!然后MT会自动打包apk!
改过的dex会变绿:
退回上一级,base.apk也会变绿:
这时在点击base.apk重新安装:签名状态显示的是v1+v2:
然后一路点击安装按钮,就能重新安装我们更改后的apk了!