首页
论坛
课程
招聘
[原创]android一个crackme分析和破解
2012-3-4 15:01 26536

[原创]android一个crackme分析和破解

2012-3-4 15:01
26536
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

[注意] 招人!base上海,课程运营、市场多个坑位等你投递!

上传的附件:
收藏
点赞0
打赏
分享
最新回复 (19)
雪    币: 203
活跃值: 活跃值 (10)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
clide2000 活跃值 7 2012-3-20 16:49
2
0
辛苦,学习了。
刚接解这方面,收藏一下。
雪    币: 238
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
周克雷 活跃值 2012-9-22 20:39
3
0
看了一下,这个CM无论你输入什么,都是拿"gogo"和"11"比较,真是坑爹啊
雪    币: 16
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zhouxixixi 活跃值 2012-10-23 18:30
4
0
学习了~~~!
雪    币: 481
活跃值: 活跃值 (18)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
goddkiller 活跃值 2012-10-24 08:29
5
0
这个CrackeMe比较简单可以说会点语言的人都看得懂!不过还是要感谢LZ分享经验
雪    币: 139
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
seuer 活跃值 2012-10-31 10:18
6
0
改两个字串不一样v0 and v1,改if-eqz 为 if-nez。改后保存,重建,运行:
请问一下这个“if-nez ”表示什么含义啊。
雪    币: 241
活跃值: 活跃值 (11)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
arsusanh 活跃值 2012-11-1 20:12
7
0
if eqz 相等
if nez 不相等

不知道那几句删除了会咋样,木有试过。
雪    币: 0
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ascian 活跃值 2013-10-13 19:17
8
0
我也很想学习,支持