Вы знаете, как рассчитать это? Я не уверен, как преобразовать 0x4014 в значение 5. Может быть, где-нибудь есть документация по этой теме?
тоящее время я изучаю smali / "кодовый обфускатор" и сейчас пытаюсь ознакомиться с декомпилированными исходными кодами. Для этого я создал простое приложение и распаковал его с помощью smali.
Сейчас я пытаюсь понять декомпилированный исходный код, чтобы улучшить и сравнить безопасность (против декомпиляции) после использования обфускатора кода позже. Хотя большая часть исходного кода smali не так сложна, у меня все еще иногда возникают проблемы с преобразованием формата рисунков.
Можете ли вы объяснить мне, например, следующая строка. Я предполагаю, что оно должно иметь значение пять, но я не уверен, какой это двоичный формат. Как рассчитать это 0x4014 = 5 ???
const-wide/high16 v0, 0x4014 // 100000000010100 (5 = 101)
Прилагаются полные исходные коды java и smali для этой тестовой функции:
Источник Java:
boolean test(int a, double d) {
if (a < 5 && d < 5)
return true;
else
return false;
}
Смали источник:
.method test(ID)Z
.locals 2
.parameter "a"
.parameter "d"
.prologue
.line 28
const/4 v0, 0x5
if-ge p1, v0, :cond_0
const-wide/high16 v0, 0x4014
cmpg-double v0, p2, v0
if-gez v0, :cond_0
.line 29
const/4 v0, 0x1
.line 31
:goto_0
return v0
:cond_0
const/4 v0, 0x0
goto :goto_0
.end method