``## 一个简单的Android Crackme分析(二)
首先,安装apk,adb install xx.apk,运行apk,随便输入,提示错误,把apk拖入Androidkiller,反编译成功,搜索关键字错误:
根据name查找id
搜索id定位关键点
smali代码如下
.method public onClick(Landroid/view/View;)V
.locals 4
.param p1, "v" # Landroid/view/View;
.prologue
const/4 v3, 0x0
.line 34
iget-object v0, p0, Lcom/example/crackme/MainActivity$1;->this$0:Lcom/example/crackme/MainActivity;
iget-object v1, p0, Lcom/example/crackme/MainActivity$1;->this$0:Lcom/example/crackme/MainActivity;
iget-object v1, v1, Lcom/example/crackme/MainActivity;->edit_userName:Ljava/lang/String;
invoke-virtual {v1}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v1
iget-object v2, p0, Lcom/example/crackme/MainActivity$1;->this$0:Lcom/example/crackme/MainActivity;
invoke-static {v2}, Lcom/example/crackme/MainActivity;->access$000(Lcom/example/crackme/MainActivity;)Landroid/widget/EditText;
move-result-object v2
invoke-virtual {v2}, Landroid/widget/EditText;->getText()Landroid/text/Editable;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v2
invoke-static {v0, v1, v2}, Lcom/example/crackme/MainActivity;->access$100(Lcom/example/crackme/MainActivity;Ljava/lang/String;Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_0
.line 35
iget-object v0, p0, Lcom/example/crackme/MainActivity$1;->this$0:Lcom/example/crackme/MainActivity;
const v1, 0x7f06001e
invoke-static {v0, v1, v3}, Landroid/widget/Toast;->makeText(Landroid/content/Context;II)Landroid/widget/Toast;
move-result-object v0
invoke-virtual {v0}, Landroid/widget/Toast;->show()V
.line 41
:goto_0
return-void
这里有一个判断 if-nez v0, :cond_0 v0是access$100()的返回值,进入access$100(),