各位同学大家好,有段时间没有给各位更新文章,具体多久我也不清楚,今天给大家来讲一下安卓逆向进阶教程,那么废话不多说我们正式开始 。
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private static final String TAG = "-----MainActivity-----";
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView.setText("我是徐庆哈哈哈");
}
}
我们看到日志中报错 报出来空指针异常了,那是因为我们的textview 没有初始化导致的 ,如果说我们只有 apk的情况下如何去修复这个bug 今天我急教大家怎么去处理 。
textView=findViewById(R.id.textview);
textView.setText("我是徐庆哈哈哈");
很多时候我们并不一定能拿到源代码,因为我公司是做游戏 我是做手游SDK 我需要将自己的代码打包成aar然后给到 研发的技术进行对接(简化来讲就是我们只负责整个游戏开发的其中的一部分)这个时候如果我们代码有问题 我们是不是通常做法是打包一个新的aar 给到接入方 。这样不仅浪费时间 而且在关键时刻还会出问题
那就是我们可以直接同名文件覆盖 其实我们刚才的·mainactivity 的代码基本都是一模一样的但是不同的是修复bug的代码里面的多了一行 其实我们仔细想一下 我们将apk反编译之后mainactivity.smali 这个个文件也是相同的 只是里面的方法体里面有不同我们只需要将新的覆盖就旧的就可以 修复成功了。这里我就不展开讲了。原理差不多
回到开始话题,为什么教安卓逆向的知识,那是因为在很多的时候我们并没有办法拿到源代码的情况下 我们能通过分析报错 来处理掉一些棘手的BUG 这样就可以神不知鬼不觉的 处理好那些问题 为工资减少损失也可以然我们的项目能够在最短时间正常运作。最后希望我的文章能帮助到各位解决问题 ,以后我还会贡献更多有用的代码分享给大家。各位同学如果觉得文章还不错 ,麻烦给关注和star,小弟在这里谢过啦