java - 反编译未混淆的 apk 包含 java 代码中的错误
问题描述
我使用android 应用反编译器来反编译随机应用。似乎 app 没有被混淆 - 甚至变量名也被保留了。问题在于java代码。有时我会遇到错误。这就是样本:
private long compressAndFormat(byte[] token data) {
long result = 0;
int i = 0;
while (true) {
try {
if (i >= this.ipb.length) {
return result >> 1;
}
int bit;
while (bit >= 0) {
byte mask = (byte) (1 << bit);
if ((this.ipb[i] & mask) != 0) {
if ((tokenData[i] & mask) != 0) {
result |= 1;
}
result <<= 1;
}
bit--;
}
i++;
} finally {
result = 0;
}
}
}
在这种情况下,我遇到了错误Variable 'bit' might not have been initialized
。为什么会这样?这个应用程序是用旧版本的java编写的,你可以在没有初始化的情况下使用变量,或者反编译器有什么问题?
解决方案
推荐阅读
- python - 通过函数将 tkinter 变量添加到字典
- javascript - 如何在 react-table 中使用 api 链接而不是本地 json 文件?
- python - 将两个不同长度列表的元素相加成一个新列表
- django - django 错误,“精确查找的 QuerySet 值必须限制为使用切片的一个结果”
- groovy - Groovy 注释中的默认数组值
- php - 如何根据数据库中的受控列表值正确管理 Web 应用程序行为?
- django - 获取 Django 查询集中的重复记录
- c++ - 无法使用 FindFirstCHangeNotification 和 FindNextChangeNotification 通知目录更改
- sitecore - 单击sitecore中的发布按钮如何拦截现有的发布窗口?
- c++ - 旋转后如何保持 2D 精灵的纵横比?