android一个crackme分析和破解
这个crackme比较简单,适合新手练手用。主要学习一下工具的使用和基本思路与流程,算是一篇破解入门的教程吧。下面开始。
1. 程序源码如下:
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mTextView01 = (TextView)findViewById(R.id.myTextView1);
mEditText01 = (EditText)findViewById(R.id.myEditText1);
mEditText01.setOnKeyListener(new EditText.OnKeyListener()
{
@Override
public boolean onKey(View arg0, int arg1, KeyEvent arg2)
{
// TODO Auto-generated method stub
String str="gogo";
if(str.equals("11")){
mTextView01.setText(str);
Toast.makeText(EX05_01.this, "right++", Toast.LENGTH_LONG).show();
}
else{
mTextView01.setText(str);
Toast.makeText(EX05_01.this, "error--", Toast.LENGTH_LONG).show();
}
/*判断输入的类型是何种,并与系统链接*/
Linkify.addLinks(mTextView01,Linkify.WEB_URLS|Linkify. EMAIL_ADDRESSES|Linkify.PHONE_NUMBERS);
return false;
}
});
}
字串比较,相同则用Toast显示right++,若不相等则用Toast显示error--.我们若想让它一直显示正确,分析思路如下:a.改str.equals("11")为str.equals("gogo ");b.改if语句。下面看具体实现,我们先用第一种方法。
2. 改字串:
所需工具:ApkTool_GUI_1.3.5内测.exe(论坛有下,找下,好找的), EX05_01.apk(我们一会要破解的程序)
先用ApkTool反编译,生成EX05_01目录
图1:
进入EX05_01\smali\irdc\ex05_01 下,用记事本等你觉得好用的文本编辑工具修改EX05_01$1.smali文件。
图2:
找到如下位置:
图3:
改成一样的。然后用apktool工具重建。用Eclipse运行签名后的apk文件,可以看到已经修改成功。下面介绍第二种方法。
3. 改if语句,改流程:
还是EX05_01$1.smali文件,找到如下位置:
图4:
改两个字串不一样v0 and v1,改if-eqz 为 if-nez。改后保存,重建,运行:
图5:
图6:
图7:
图8:
成功提示,哈哈。
4. 如有写的不对的地方,欢迎指正。最近心情不太好,好多事,写文以记之...hope ......
原apk文件:
EX05_01_.apk
破解后的文件:
EX05_01.apk
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课