Je suis actuellement en train de faire quelques recherches sur smali/"code obfuscator" et j'essaie de me familiariser avec les codes sources décompilés pour le moment. Pour cela j'ai créé une application simple et je l'ai décompilée par smali. J'essaie de comprendre le code source décompilé maintenant pour améliorer et comparer la sécurité (contre la décompilation) après l'utilisation d'un obfuscator de code plus tard. Tandis que la plupart du code source de smali n'est pas si difficile, j'ai toujours quelques problèmes avec la conversion de format des figures.Android smali question
Pouvez-vous m'expliquer, p. la ligne suivante. Je suppose que cela devrait avoir une valeur de cinq, mais je ne suis pas sûr, quel genre de format binaire c'est. Comment le calculer 0x4014 = 5 ???
const-wide/high16 v0, 0x4014 // 100000000010100 (5 = 101)
Attached sont les sources java complet et le code Smali de cette fonction de test:
source de Java:
boolean test(int a, double d) {
if (a < 5 && d < 5)
return true;
else
return false;
}
source de Smali:
.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
dois-je utiliser le code source décompilé pour exécuter à nouveau dans le développement android? –
Rétrospective Modification par une tierce partie qui était en grande partie incompatible avec la question posée - il ne s'agit pas (encore) d'une question d'obfuscation et concerne la représentation à virgule flottante dans smali. –