move-result-object v0 invoke-virtual {v0}, Lcn/wps/moffice/OfficeApp;->zd()Z ///对程序进行验证 move-result v0 if-eqz v0, :cond_1 //验证为 0 就跑去运行程序 const v0, 0x7f060166 //软件过期字符串 ID invoke-virtual {p0, v0}, Lcn/wps/moffice/documentmanager/DocumentManager;->getString(I)Ljava/lang/String ; move-result-object v0 const/4 v1, 0x0 invoke-static {p0, v0, v1}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequen ce;I)Landroid/widget/Toast; move-result-object v0 invoke-virtual {v0}, Landroid/widget/Toast;->show()V //弹出了 Toast iget-object v0, p0, Lcn/wps/moffice/documentmanager/DocumentManager;->DY:Lcn/wps/moffice/documentma nager/history/HistoryFiles; iget-object v1, p0, Lcn/wps/moffice/documentmanager/DocumentManager;->cPk:Ljava/lang/Runnable; const-wide/16 v2, 0x7d0 invoke-virtual {v0, v1, v2, v3}, Lcn/wps/moffice/documentmanager/history/HistoryFiles;->postDelayed(Ljava/lang/R unnable;J)Z //这里就 OVER 了 :cond_0 :goto_0 return-void :cond_1 invoke-static {}, Lcn/wps/moffice/OfficeApp;->zc()Lcn/wps/moffice/OfficeApp; move-result-object v0 invoke-virtual {p1}, Lcn/wps/moffice/documentmanager/DocumentManager$a;->toString()Ljava/lang/String ; move-result-object v1 invoke-virtual {v0, v1}, Lcn/wps/moffice/OfficeApp;->bO(Ljava/lang/String;)Z move-result v0 同样,两处的修改很简单,只需要将 if-eqz v0, :cond_1 改成 if-nez v0, :cond_1 就可 以了。保存文件后重新回编,安装测试就会发现程序被破解掉了。运行效果如图 6: 到这里,本文就结束了,总结一下,内容不多,主要介绍了Android程序分析需要用到 的工具及 Android程序的一般分析方法,另外,在实战中也看到了,混淆并不可怕,可怕的 是没有耐心坚持下去。 |