首页
社区
课程
招聘
[原创]android一个crackme分析和破解
发表于: 2012-3-4 15:01 29088

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

2012-3-4 15:01
29088

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


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

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

不知道那几句删除了会咋样,木有试过。
2012-11-1 20:12
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
我也很想学习,支持一下
2013-10-13 19:17
0
雪    币: 275
活跃值: (254)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
9
菜鸟已跟,建立自信。。。。
2014-4-14 20:58
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
新人 那个smali代码需要去系统的学一下,或者这个怎么去学习?
2014-11-24 11:16
0
雪    币: 232
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
好文,初学者可以看看
2014-12-2 09:19
0
雪    币: 161
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
菜鸟已跟,建立自信。。。。
2017-1-12 14:12
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
这么记,一般if eqz v1,v2 意思就是v1-v2是不是等于0  ,等于0了那肯定就相等了,不等于那就不相等
eqz==  equal zero
nez==  not equal zero

这两天要开始学习android逆向,所以从第一个帖子开始看。哈哈
2017-2-7 16:31
0
雪    币: 6818
活跃值: (153)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
支持下!!!!!!
2017-2-13 02:06
0
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
只是菜鸟。。。。
2017-2-15 15:55
0
雪    币: 2
活跃值: (86)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
实践了一遍,对于入门的来说确实还是不错的,谢谢楼主分享
2017-2-15 17:04
0
雪    币: 36
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
刚开始学习,一步步前进!
2017-7-13 15:40
0
雪    币: 1110
活跃值: (569)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
18
重新学习,现在是已经走了第一步了吗
2017-12-21 17:31
0
雪    币: 159
活跃值: (695)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
学习啦。
2019-10-28 19:53
0
雪    币: 35
活跃值: (88)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
Jessecoder 新人 那个smali代码需要去系统的学一下,或者这个怎么去学习?
smali的函数调用、赋值、运算基本跟java是一一对应的,控制流语句则更接近汇编。对照着Java多看看就好了。
2019-10-29 10:53
0
游客
登录 | 注册 方可回帖
返回
//