Je suis assez connu pour utiliser smali, alors excuses si c'est une question pour débutants. J'utilise Apktool pour transformer un fichier apk en smali, dans le but d'insérer des appels de consignation dans le code.smali - erreur copie double paramètre
Pour ce faire, j'ai incrémenté .locals par un (pour ajouter un nouveau registre) alors j'essaye de remettre tout le registre à leurs positions originales.
J'ai des problèmes lorsque je tente de déplacer des paramètres utilisant deux registres (longs et doubles). Si j'inclue du code pour les déplacer, l'apk recompile mais ne s'ouvre pas sur un émulateur. Je n'ai pas ce problème en déplaçant d'autres types.
Par exemple, ce qui suit fonctionne correctement. Si j'ajoute move-wide/from16 v6, p1
à la ligne 68, l'application ne s'ouvrira plus (la suivante est après que j'ai incrémenté les .locals de 5).
.method public breakerTheSecond(JLjava/lang/String;)V
59 .locals 6
60 .param p1, "pk" # J
61 .param p3, "ab" # Ljava/lang/String;
62
63 .prologue
64 move-object/from16 v8, p3
65
66 move-object/from16 v5, p0
67
68
69
70 .line 56
71 const/4 v0, 0x1
72
73 .local v0, "a":I
74 const/4 v1, 0x2
75
76 .line 58
77 .local v1, "b":I
78 invoke-virtual {v5}, Lcom/test/bbutton
/MyActivity;->getApplicationContext()Landroid/content/Context;
79
80 move-result-object v2
81
82 const-string v3, "test"
83
84 const/4 v4, 0x0
85
86 invoke-static {v2, v3, v4}, Landroid/widget
/Toast;->makeText(Landroid/content/Context;Ljava
/lang/CharSequence;I)Landroid/widg et/Toast;
87
88 move-result-object v2
89
90 .line 59
91 invoke-virtual {v2}, Landroid/widget/Toast;->show()V
92
93 .line 61
94 return-void
95 .end method
Merci pour votre aide!
Bonne question! Continuez :) – JesusFreke