首页
社区
课程
招聘
[求助]第一个程序就撞墙了,汗(最新进展)继续请教!
发表于: 2013-4-17 13:08 157722

[求助]第一个程序就撞墙了,汗(最新进展)继续请教!

2013-4-17 13:08
157722
找了半天也没找到关键地方
找按纽关键字和错误提示都找了就是没找到正确的代码处,请问怎么样才能正确定位到代码处了
还有1个问题就是如何将SMAIL的文件转成JAVA源码呢进行查看呢?
1.part1.rar

1.part2.rar

一个“开始”按纽的地址为0x7f05001d
另1个开始按纽的地方为0x7f050006

积分不够的错误代码为
\u60a8\u7684\u79ef\u5206\u4e0d\u8db3\uff0c\u81f3\u5c11\u9700\u898110\u7684\u79ef\u5206\uff0c\u60a8\u5f53\u524d\u7684\u79ef\u5206\u4e3a
您的积分不足,至少需要10的积分,您当前的积分为

根据IDA的图解,我们猜测jf是该软件的积分判断变量,于是我们搜索JF,在home.smail里找到jf:f 这里的被赋予了0X0,但更改这里并不能干掉软件,不信的可以实验下,改成1,提示自己的积分不为0了,但还是进不了软件,于是还是把软件转成JAR吧,然后打开jd-gui-0.3.2查看源码,果然找到了,
float jf = 10.0F;
  float jf2 = 0.0F;

接下来1个语句判断

如下:      public void onClick(View paramView)
      {
        copyFiles();
        DianJinPlatform.getBalance(Home.this, new WebServiceListener()
        {
          public void onResponse(int paramInt, Float paramFloat)
          {
            switch (paramInt)
            {
            default:
              jf2 = 0.0F;
              biao = false;
              return;
            case 0:
              jf2 = paramFloat.floatValue();
              biao = true;
              return;
            case -1:
            }
            jf2 = 0.0F;
            biao = false;
          }
        });
        if (!biao)
        {
          Home.this.openDialog("\u60A8\u7684\u79EF\u5206\u4E0D\u8DB3\uFF0C\u81F3\u5C11\u9700\u898110\u7684\u79EF\u5206\uFF0C\u60A8\u5F53\u524D\u7684\u79EF\u5206\u4E3A" + jf2 + "\n\u8BF7\u70B9\u51FB\u63A8\u8350\u5217\u8868\u83B7\u53D6\u79EF\u5206");
          return;
        }
        Intent localIntent = new Intent();
        localIntent.setClass(Home.this, MainActivity.class);
        DianJinPlatform.consume(Home.this, jf, new WebServiceListener(localIntent)
        {
          public void onResponse(int paramInt, Integer paramInteger)
          {
            switch (paramInt)
            {
            default:
              Home.this.openDialog("\u60A8\u7684\u79EF\u5206\u4E0D\u8DB3\uFF0C\u81F3\u5C11\u9700\u898110\u7684\u79EF\u5206\uFF0C\u60A8\u5F53\u524D\u7684\u79EF\u5206\u4E3A" + jf2 + "\n\u8BF7\u70B9\u51FB\u63A8\u8350\u5217\u8868\u83B7\u53D6\u79EF\u5206");
              return;
            case 0:
            }
            startActivity(val$intent);
          }
        });
        Log.e("HOme", "jifen:" + jf2);
      }
    });

接下来肯定是需要更改,弱弱的问下如何修改JAR中的源码呢?然后在生成APK呢?

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

上传的附件:
收藏
免费 0
支持
分享
最新回复 (21)
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
smali 不是直接转java

应该是dex 通过dex2jar 转成jar . 再使用jd-gui 或者其他工具查看jar 文件。
2013-4-17 13:16
0
雪    币: 211
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
每个SMAIL都应该可以编译一个DEX文件 那一个程序里会有很多的SMAIL,这样一个个找的话,确实是个苦差使啊,如何快速定位到相关的代码的SMAIL处呢
2013-4-17 13:26
0
雪    币: 1088
活跃值: (30)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
\u60a8\u7684\u79ef\u5206\u4e0d\u8db3\uff0c\u81f3\u5c11\u9700\u898110\u7684\u79ef\u5206\uff0c\u60a8\u5f53\u524d\u7684\u79ef\u5206\u4e3a
USA2编码转下.
您的积分不足,至少需要10的积分,您当前的积分为
2013-4-17 14:03
0
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
你理解错了吧。 一个apk 对应于一个dex 文件。 一个dex 对应于全部的smali 文件
2013-4-17 15:09
0
雪    币: 211
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
你说的对。居然每人弄的出来?- -!
2013-4-17 16:41
0
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
转java这个。你自己弄就可以了吧
2013-4-18 09:10
0
雪    币: 211
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
还是没找到关键的地方

IDA分析 if-nez                          v1, loc_3E990

改了没用 那个积分的变量找不到
上传的附件:
2013-4-18 09:49
0
雪    币: 211
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
有没有大牛教1下呢?
2013-4-18 11:19
0
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
在jar中找到了代码位置。就确定了类。 然后去找这个类对应的smali 文件,每个类对应于一个smali文件。

再做修改。
2013-4-18 12:26
0
雪    币: 211
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
是的,但是SMAIL代码的可读性太差了,修改起来太吃力了,悲剧
2013-4-18 12:44
0
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
嗯。。。我也这样觉得。目前为止还没能轻松读懂。 所以爱莫能助。
2013-4-18 13:54
0
雪    币: 211
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
目前有个想法 就是用AKTOOLS生成JAR,然后JAR解压,然后修改CLASS文件,然后再打包生成JAR,但好象没有JAR转APK的工具,有的话修改就简单了,只有APK转JAR,反转居然没有- -!悲剧
2013-4-18 14:26
0
雪    币: 189
活跃值: (192)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
14
Apktool是不能生成jar的,不知道你说的apktools是那个集成工具,但是我猜测都是用dex2jar工具.修改class?不知道你用啥工具来修改class?难道修改smali不是比修改class更简单么.
反转?jar-->apk?jar到dex倒是android自带dx工具可以轻松做到
2013-4-18 22:38
0
雪    币: 298
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
我看到你贴出的提示string,就猜到是流量监控那个?:)
2013-4-18 23:02
0
雪    币: 211
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
class打开以后几乎就是源码了,SMALI实在是太蛋疼了 ,android自带dx工具?我研究下
2013-4-19 08:14
0
雪    币: 761
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
修改好了,LZ加油。
修改后apk:http://vdisk.weibo.com/s/yz21L

提示:
关键点在lsh.dhh2.Home里的biao而不是jf2哦。
Good luck!
2013-4-22 17:26
0
雪    币: 211
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
去西安旅游了,刚看到,我研究下给你回复 兄弟,非常感谢
2013-5-2 09:50
0
雪    币: 211
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
请问你是在home$3$1.smali里面给biao的V2加了0x1吗?只有这个地方吗,为什么我改了以后就不不行呢,用你的确实是可以的,从biao的源码可以看出只要大于0,那就正确了,求解
2013-5-3 09:20
0
雪    币: 232
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
在onResponse语句中不要让case进入default的条件就行了
我是这样改的,你试试
const/4 v0, 0x0
packed-switch v0, :pswitch_data_0
2013-5-17 00:24
0
雪    币: 33
活跃值: (145)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
21
第一次没找对位置,很正常,谁没有第一次啊!是不是,男孩!
2013-5-18 22:00
0
雪    币: 41
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
对于这种。。刚刚试了直接修改Manifest让MainActivity作为启动Activity就可以了- -
不过这样就违反了练手的初衷了。。
2013-8-22 10:36
0
游客
登录 | 注册 方可回帖
返回
//