吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 51397|回复: 72
收起左侧

[Android 分享] 机智的卷纸破解过程

  [复制链接]
Dlan 发表于 2014-6-9 19:50
本帖最后由 Dlan 于 2014-6-9 21:21 编辑

【文章标题】:机智的卷纸破解过程
【文章作者】: dlan
【作者邮箱】: a@lcx.cc
【作者主页】: 无
【作者QQ号】: 无
【软件名称】:机智的卷纸
【加壳方式】: 无
【编写语言】: JAVA
【使用工具】: ApkIDE
【软件介绍】:没什么好介绍的...
【作者声明】: 只是技术交流,没有其他目的。失误之处敬请诸位大侠赐教!


机智的卷纸是一款绝对的福利神器 具体功能百度!

唯一的收费的地方就是开启远程浏览 需要积分。
反编译机智的卷纸 ,程序是经过混淆的。
打开软件的远程浏览 ,提示:赚取积分(剩下0积分)
然后来到apkide 搜索 剩下的unicode:来到 pointChanged() 方法


D:\ApkIDE3.1\ApkIDE\Work\com.lumu.bdy\smali\fragment\Fragment_WebServer.smali
[Asm] 纯文本查看 复制代码
.method private pointChanged()V  //" 看方法的名字就知道是这里了  “改变积分”" 
    .locals 3

    .prologue
    .line 58
    iget-object v0, p0, Lfragment/Fragment_WebServer;->wall:Landroid/widget/Button;

    new-instance v1, Ljava/lang/StringBuilder;

    const-string v2, "赚取"

    invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    iget-object v2, p0, Lfragment/Fragment_WebServer;->name:Ljava/lang/String;

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    const-string v2, "(剩下"

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    iget-object v2, p0, Lfragment/Fragment_WebServer;->context:Landroid/content/Context;

    invoke-static {v2}, Lcom/baidu/mobads/appoffers/OffersManager;->getPoints(Landroid/content/Context;)I

    move-result v2  //" 来到“剩下”的下面, 调用了 OffersManager 的 getPoints静态方法参数为context ,看名字 是获取积分,然后给button类型的wall" 

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v1

    .line 59
    iget-object v2, p0, Lfragment/Fragment_WebServer;->name:Ljava/lang/String;

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    const-string v2, ")"

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    .line 58
    invoke-virtual {v0, v1}, Landroid/widget/Button;->setText(Ljava/lang/CharSequence;)V

    .line 60
    return-void
.end method

对应java:
[Asm] 纯文本查看 复制代码
private void pointChanged()
  {
    this.wall.setText("赚取" + this.name + "(剩下" + OffersManager.getPoints(this.context) + this.name + ")");
  }
看来这是知识获取积分了,暂不跟进,继续找 开启远程的判断,往下翻来到onClick方法部分:
[Asm] 纯文本查看 复制代码
.method public onClick(Landroid/view/View;)V
    .locals 6
    .param p1, "v"    # Landroid/view/View;

    .prologue
    const/4 v5, 0x5

    const/4 v4, 0x0

    .line 90
    invoke-virtual {p1}, Landroid/view/View;->getId()I

    move-result v2   "  //把getId() 的结果赋给v2" 

    packed-switch v2, :pswitch_data_0  " //swith 分支语句" 

" .......省略..............." 
const/4 v5, 0x5  "  //v5赋值5" 
" .......省略..............." 
   invoke-static {v2}, Lcom/baidu/mobads/appoffers/OffersManager;->getPoints(Landroid/content/Context;)I
   move-result v1  " getPoints方法的返回赋值 v1" 

.line 116
    .local v1, "point":I 
    if-ge v1, v5, :cond_3 "   //条件判断 v1大于v5调到cond_3 ,我们跟进cond_3" 

    .line 117
    new-instance v2, Ljava/lang/StringBuilder;

    iget-object v3, p0, Lfragment/Fragment_WebServer;->name:Ljava/lang/String;

    invoke-static {v3}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;

    move-result-object v3

    invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    const-string v3, "不足,无法启动"

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v2

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-static {v2}, Lbase/BaseApplication;->toast(Ljava/lang/String;)V

    goto :goto_1

    .line 120
    :cond_3"   //调到这,看字符串应该是正确的地方了。" 
    iget-object v2, p0, Lfragment/Fragment_WebServer;->context:Landroid/content/Context;

    invoke-static {v2, v5}, Lcom/baidu/mobads/appoffers/OffersManager;->subPoints(Landroid/content/Context;I)Z

    .line 121
    new-instance v2, Ljava/lang/StringBuilder;

    const-string v3, "启动成功,5""

    invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    iget-object v3, p0, Lfragment/Fragment_WebServer;->name:Ljava/lang/String;

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v2

    const-string v3, "离你而去~"

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v2

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-static {v2}, Lbase/BaseApplication;->toast(Ljava/lang/String;)V

    .line 122
    iget-object v2, p0, Lfragment/Fragment_WebServer;->server:Lserver/Server;

    const/4 v3, 0x1

    invoke-virtual {v2, v3}, Lserver/Server;->allowAccess(Z)V

    goto/16 :goto_0

    .line 90
    nop

    :pswitch_data_0
    .packed-switch 0x7f07002e
        :pswitch_0
    .end packed-switch
.end method


对应java:
[Asm] 纯文本查看 复制代码
 public void onClick(View paramView)
  {
    switch (paramView.getId())
"........省略.........."
if (OffersManager.getPoints(this.context) < 5)
      {
        BaseApplication.toast(this.name + "不足,无法启动");
        return;
      }
      OffersManager.subPoints(this.context, 5);
      BaseApplication.toast("启动成功,5" + this.name + "离你而去~");
      this.server.allowAccess(true);


那么我们 让v1大于v5或者修改逻辑就行了:
TM截图未命名.png
修改后的:
[Asm] 纯文本查看 复制代码
.line 116
    .local v1, "point":I
        const v1,0x6
    if-ge v1, v5, :cond_3


或者:
[Asm] 纯文本查看 复制代码
.line 116
    .local v1, "point":I
    if-le v1, v5, :cond_3

附apk:
[Asm] 纯文本查看 复制代码
"链接: [url]http://pan.baidu.com/s/1c0w4TQ4[/url] 密码: 6vqw"

附语法表:
[Asm] 纯文本查看 复制代码
"http://www.blogjava.net/midea0978/archive/2012/01/04/367847.html"


码字不容易,评分不减CB!谢谢!







点评

坐看楼下一群屌丝男 话说楼主可以给个q不 哈哈  发表于 2014-8-4 22:02
核攻击是你吧  发表于 2014-6-21 12:13
头像是你本人吗,我很喜欢。可否追你。  发表于 2014-6-9 22:34

免费评分

参与人数 13热心值 +13 收起 理由
c220960600 + 1 谢谢@Thanks!
cs2380189 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
、Psycho + 1 谢谢@Thanks!
阳光如此温暖 + 1 谢谢@Thanks!
anwzx + 1 热心回复!
无邪 + 1 赞一个!准备学安卓了
nizuihao1158 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
zhanhyg + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
zc123 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
Passerby + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
zt471402521 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
小试锋芒 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
leizhifeng + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

qq834099131 发表于 2014-6-9 20:07
不错不错,虽然不懂
A6684809 发表于 2014-6-9 20:14
cs2380189 发表于 2014-6-12 17:38 来自手机
cs2380189 发表于 2014-6-12 17:09
顶楼主!论坛大神之一!
woodly 发表于 2014-6-11 15:40
这个神器啊,下来看一看。
520wangqi 发表于 2014-6-9 23:48
支持楼主
闹够了没有 发表于 2014-6-9 20:22
这软件作者我以前碰到过
小楠 发表于 2014-6-9 20:36
这都是大神玩的,我就只适合玩玩简单点的E的
泪河之缘 发表于 2014-6-9 20:41
支持LZ了、
MMAKI 发表于 2014-6-9 21:00 来自手机
前排支持,学习了
头像被屏蔽
hnicf 发表于 2014-6-9 21:06
提示: 作者被禁止或删除 内容自动屏蔽
占她城做她王丶 发表于 2014-6-9 21:11
小楠 发表于 2014-6-9 20:36
这都是大神玩的,我就只适合玩玩简单点的E的

我发的源码?签名档。
zc123 发表于 2014-6-9 21:17
感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 13:31

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表