124875772 发表于 2015-3-15 19:08:09

WIFI旌旗灯号 加强 器 简略 破解积分限制教程

WIFI旌旗灯号加强器版本:v9.0
作者:JokerST


在手机利用助手里面看到良多人在用这个工具,可是评价都是渣渣,须要积分什么的才干硬加快.然后我就试用了下,后果没感到多显明.简直须要积分.
未破解前只能应用通俗的旌旗灯号通道优化.如图:
http://bcs.duapp.com/taifeng/forum%2F201503%2F16%2F000223kjqxcmim5yicqefb.pnghttp://attach.bhby.cc/forum/201503/13/161200y11l60mf5q6bscqe.png
点击加快后会主动跳转获取积分的页面.
1.破解东西:
Android Killer
2.收集线索:
经由过程试用,采集可应用信息.假如要害词:积分 获取 当即加快等等.这里我就用"获取100积分永远免费激活"这个提醒信息,做线索进行追查.
3.追查线索
反编译后习惯性的打开"res\values.xml",刚打开,弄得我也是一愣.竟然没有找到这个提醒的字符串.看来作者也是不诚实哈.不妨,直接应用搜刮功效搜刮"获取100积分永远免费激活"即可.
在"\res\layout\activity_hardware.xml"中搜到了,如下部门相干代码.
纯文本查看 复制代码
    <RelativeLayout android:id="@id/v_info" android:layout_width="fill_parent" android:layout_height="70.0dip" android:layout_below="@id/v_state">
      <Button android:textSize="14.0sp" android:textColor="#ffffffff" android:gravity="center" android:id="@id/btn_info_action" android:background="@drawable/bg_btn_hardware_action" android:visibility="visible" android:layout_width="240.0dip" android:layout_height="45.0dip" android:layout_marginTop="10.0dip" android:text="获取100积分永远
免费激活" android:layout_centerHorizontal="true" />
      <TextView android:textSize="14.0sp" android:textColor="#ffffffff" android:gravity="center_vertical" android:id="@id/tv_info" android:background="#3c000000" android:paddingLeft="12.0dip" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="30.0dip" android:text="硬件加快
驱动已预备
停当
..." android:layout_alignParentBottom="true" />
      <TextView android:textSize="16.0sp" android:textColor="#ffffffff" android:id="@id/tv_info_ok" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8.0dip" android:text="硬件加快
已完成" android:layout_centerHorizontal="true" />
    </RelativeLayout>

提醒信息找到了,那么就可以往前看挪用."android:id="@id/btn_info_action",可经由过程"android:id"的值来定位.然后接着搜刮"btn_info_action".留意,这时辰我们可不是找xml文件,而是找smali源码文件.
搜刮到了4个,3个是xml文件,剩下一个smali文件.没啥说的,在"\smali\com\syezon\wifi\R$id.smali"找到如下代码
纯文本查看 复制代码
.field public static final btn_info_action:I = 0x7f08003f

这是一个挪用接口,挪用自0x7f08003f这个地址.然后接着搜刮"0x7f08003f".
在"\smali\com\syezon\wifi\activity\HardwareActivity.smali"中搜到了这个地址.
纯文本查看 复制代码
const v0, 0x7f08003f


4.定位推理
终极定位文件HardwareActivity.smali.我们可以猜测这个文件就是与积分限制有关的文件.那就细心的看下这个文件源码.
发明可疑代码段pswitch_0,如下
纯文本查看 复制代码
:pswitch_0
    #v0=(Integer);v1=(Uninit);v2=(PosByte);v3=(Uninit);
    iget-object v0, p0, Lcom/syezon/wifi/activity/HardwareActivity;->c:Lcom/syezon/wifi/MyActivity;

    #v0=(Reference,Lcom/syezon/wifi/MyActivity;);
    invoke-static {v0, v5}, Lcom/syezon/wifi/activity/HardwareActivity;->a(Landroid/content/Context;Z)V

    iget-object v0, p0, Lcom/syezon/wifi/activity/HardwareActivity;->c:Lcom/syezon/wifi/MyActivity;

    const-string v1, "CLICK_ACT_HARD"

    #v1=(Reference,Ljava/lang/String;);
    invoke-static {v0, v1}, Lv;->a(Landroid/content/Context;Ljava/lang/String;)V

    iget v0, p1, Landroid/os/Message;->arg1:I

    #v0=(Integer);
    sget v1, Lt;->a:I

    #v1=(Integer);
    if-ge v0, v1, :cond_0//留意
看这里,这是个判定
语句.说明
:假如
V0>=V1,就跳转到cond_0事务
.

    iget-object v1, p0, Lcom/syezon/wifi/activity/HardwareActivity;->c:Lcom/syezon/wifi/MyActivity;

    #v1=(Reference,Lcom/syezon/wifi/MyActivity;);
    new-instance v2, Ljava/lang/StringBuilder;

    #v2=(UninitRef,Ljava/lang/StringBuilder;);
    const-string v3, "\u5f53\u524d\u79ef\u5206\uff1a"//解码:当前积分

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

    #v2=(Reference,Ljava/lang/StringBuilder;);
    invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v0

    #v0=(Reference,Ljava/lang/StringBuilder;);
    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-static {v1, v0}, Lq;->a(Landroid/content/Context;Ljava/lang/String;)V

    iget-object v0, p0, Lcom/syezon/wifi/activity/HardwareActivity;->c:Lcom/syezon/wifi/MyActivity;

    invoke-static {v0}, Lcom/syezon/sdk/os/slidingbnxc;->getInstance(Landroid/content/Context;)Lcom/syezon/sdk/os/slidingbnxc;

    move-result-object v0

    invoke-virtual {v0}, Lcom/syezon/sdk/os/slidingbnxc;->sligpsd()V

    goto :goto_0

接着这段代码往下看,找到cond_0代码段
纯文本查看 复制代码
:cond_0
    #v0=(Integer);v1=(Integer);v2=(PosByte);v3=(Uninit);
    iget-object v0, p0, Lcom/syezon/wifi/activity/HardwareActivity;->c:Lcom/syezon/wifi/MyActivity;

    #v0=(Reference,Lcom/syezon/wifi/MyActivity;);
    invoke-static {v0}, Lt;->b(Landroid/content/Context;)V

    iget-object v0, p0, Lcom/syezon/wifi/activity/HardwareActivity;->c:Lcom/syezon/wifi/MyActivity;

    const-string v1, "\u6fc0\u6d3b\u6210\u529f"//解码:激活胜利


    #v1=(Reference,Ljava/lang/String;);
    invoke-static {v0, v1}, Lq;->a(Landroid/content/Context;Ljava/lang/String;)V

    iget-object v0, p0, Lcom/syezon/wifi/activity/HardwareActivity;->c:Lcom/syezon/wifi/MyActivity;

    invoke-static {v0}, Lcom/syezon/sdk/os/slidingbtxc;->getInstance(Landroid/content/Context;)Lcom/syezon/sdk/os/slidingbtxc;

    move-result-object v0

    sget v1, Lt;->a:I

    #v1=(Integer);
    invoke-virtual {v0, v1}, Lcom/syezon/sdk/os/slidingbtxc;->sligtsd(I)Z

    iget-object v0, p0, Lcom/syezon/wifi/activity/HardwareActivity;->g:Landroid/widget/LinearLayout;

    invoke-virtual {v0, v4}, Landroid/widget/LinearLayout;->setEnabled(Z)V

    iget-object v0, p0, Lcom/syezon/wifi/activity/HardwareActivity;->g:Landroid/widget/LinearLayout;

    invoke-virtual {v0, v2}, Landroid/widget/LinearLayout;->setVisibility(I)V

    iget-object v0, p0, Lcom/syezon/wifi/activity/HardwareActivity;->f:Landroid/widget/RelativeLayout;

    invoke-virtual {v0, v2}, Landroid/widget/RelativeLayout;->setVisibility(I)V

    iget-object v0, p0, Lcom/syezon/wifi/activity/HardwareActivity;->k:Landroid/widget/Button;

    invoke-virtual {v0, v2}, Landroid/widget/Button;->setVisibility(I)V

    iget-object v0, p0, Lcom/syezon/wifi/activity/HardwareActivity;->k:Landroid/widget/Button;

    invoke-virtual {v0, v4}, Landroid/widget/Button;->setEnabled(Z)V

    iget-object v0, p0, Lcom/syezon/wifi/activity/HardwareActivity;->n:Landroid/view/View;

    invoke-virtual {v0, v2}, Landroid/view/View;->setVisibility(I)V

    iget-object v0, p0, Lcom/syezon/wifi/activity/HardwareActivity;->h:Landroid/widget/LinearLayout;

    invoke-virtual {v0, v4}, Landroid/widget/LinearLayout;->setVisibility(I)V

    iget-object v0, p0, Lcom/syezon/wifi/activity/HardwareActivity;->h:Landroid/widget/LinearLayout;

    invoke-virtual {v0, v5}, Landroid/widget/LinearLayout;->setEnabled(Z)V

    iget-object v0, p0, Lcom/syezon/wifi/activity/HardwareActivity;->f:Landroid/widget/RelativeLayout;

    invoke-virtual {v0, v4}, Landroid/widget/RelativeLayout;->setVisibility(I)V

    iget-object v0, p0, Lcom/syezon/wifi/activity/HardwareActivity;->l:Landroid/widget/TextView;

    invoke-virtual {v0, v4}, Landroid/widget/TextView;->setVisibility(I)V

    iget-object v0, p0, Lcom/syezon/wifi/activity/HardwareActivity;->o:Landroid/widget/TextView;

    invoke-virtual {v0, v4}, Landroid/widget/TextView;->setVisibility(I)V

    iget-object v0, p0, Lcom/syezon/wifi/activity/HardwareActivity;->c:Lcom/syezon/wifi/MyActivity;

    const-string v1, "DONE_ACT_HARD"

    #v1=(Reference,Ljava/lang/String;);
    invoke-static {v0, v1}, Lv;->a(Landroid/content/Context;Ljava/lang/String;)V

    goto/16 :goto_0

经由过程cond代码片断,我们就可以基础判断.pswitch_0中的判定是要害,假如V0>=V1,就跳转到cond_0,而cond_0中含有激活胜利的字样.聪慧人就会清楚了吧.
5.理论料想
假如V0>=V1,就跳转到cond_0 激活胜利的处所.那么我们就可以猜测,V0是你当前积分.V1就是"100"积分这个尺度.理论料想下,我们用户安装后的积分确定不会年夜于或即是100吧.要否则我们就可以直接应用硬件加快功效了是吧.那么我们就可以修正这个判定前提.让它假如V0<=V1,就跳转到cond_0.如许是不是就到达了假如用户积分小于或即是100,就直接跳转到激活胜利的目标呢.
6.修正源码
修正之前想先懂得下Smile语法:
(这里我为什么不消JD-Gui东西直接查看Java格局的源码呢.就由于Jd-Gui它不克不及直接修正源码.与其往费工夫经由过程Java定位源码后,然后在经由过程本身的懂得往回心成Smile代码.费劲啊.不如直接往熟习,进修Smile语法不更好?当然,有些其实是找不到,或看不懂Smile的话,仍是用Jd-Gu往看源码吧.否则懂得起来会跟费劲)
纯文本查看 复制代码
Smali基础
语法
.field private isFlag:z  界说
变量
.method  方式

.parameter  方式
参数
.prologue  方式
开端

.line 12  此方式
位于第12行
invoke-super  挪用
父函数
const/high16v0, 0x7fo3  把0x7fo3赋值给v0
invoke-direct  挪用
函数
return-void  函数返回void
.end method  函数停止

new-instance  创立
实例
iput-object  对象赋值
iget-object  挪用
对象
invoke-static  挪用
静态函数

前提
跳转分支:
"if-eq vA, vB, :cond_**"   假如
vA即是
vB则跳转到:cond_**
"if-ne vA, vB, :cond_**"   假如
vA不即是
vB则跳转到:cond_**
"if-lt vA, vB, :cond_**"    假如
vA小于vB则跳转到:cond_**
"if-ge vA, vB, :cond_**"   假如
vA年夜
于即是
vB则跳转到:cond_**
"if-gt vA, vB, :cond_**"   假如
vA年夜
于vB则跳转到:cond_**
"if-le vA, vB, :cond_**"    假如
vA小于即是
vB则跳转到:cond_**
"if-eqz vA, :cond_**"   假如
vA即是
0则跳转到:cond_**
"if-nez vA, :cond_**"   假如
vA不即是
0则跳转到:cond_**
"if-ltz vA, :cond_**"    假如
vA小于0则跳转到:cond_**
"if-gez vA, :cond_**"   假如
vA年夜
于即是
0则跳转到:cond_**
"if-gtz vA, :cond_**"   假如
vA年夜
于0则跳转到:cond_**
"if-lez vA, :cond_**"    假如
vA小于即是
0则跳转到:cond_**


熟习Smile语法后就开端修正吧
纯文本查看 复制代码
if-ge v0, v1, :cond_0

改为
纯文本查看 复制代码
if-le v0, v1, :cond_0

保留后,反编译出来碰运气若何~~~
http://attach.bhby.cc/forum/201503/13/170610u721km987o1grkik.png
之前还会有"获取100积分永远免费激活"这个页面,我们不消理会,直接点击"当即晋升加快"或"获取100积分永远免费激活"即可.然后就会再次跳转到如上阿谁加快界面.刹时截图,可算是把激活胜利这四个字也给截上往了.会弹出一个黑黑的小窗口,然后开端无线模块优化,硬件解锁加快什么的.然后就加快胜利....后

求指点五滴自游 发表于 2015-3-19 20:21:56

哇,,好厉害,,,我去看看
页: [1]
查看完整版本: WIFI旌旗灯号 加强 器 简略 破解积分限制教程