Dlan 发表于 2014-6-10 12:32

机制的卷纸去除积分墙+另一种方法查找关键位置

本帖最后由 Dlan 于 2014-6-10 12:51 编辑

通过软件 ,可以看出 是用了积分墙,那么看看用了哪个积分墙 打开AndroidManifest.xml 关键部分:
<activity android:configChanges="keyboard|keyboardHidden|orientation" android:name="com.baidu.mobads.AppActivity"/>
      <activity android:configChanges="keyboard|keyboardHidden|orientation" android:name="com.baidu.mobads.appoffers.OffersActivity"/>
      <activity android:label="@string/app_name" android:launchMode="singleTask" android:name="activity.IndexActivity" android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
      </activity>
      <activity android:label="@string/app_name" android:name="activity.LoginActivity"/>
      <activity android:label="@string/app_name" android:name="activity.ShareAccountActivity"/>
      <activity android:label="@string/app_name" android:name="activity.ImageActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>

广告的调用必须在activity这里声明权限
com.baidu.mobads.AppActivity
com.baidu.mobads.appoffers.OffersActivity


无疑是百度的广告了,继续百度"com.baidu.mobads.appoffers.OffersActivity"
来到广告的在线文档:http://www.adview.cn/sdk/adwallandroid
关键方法:
⑶.显示积分墙:
AdViewOffer.showOffer(Invoker.this);
⑷.查看积分:
AdViewOfferManager.getPoints(Invoker.this);
⑸.奖励积分:
AdViewOfferManager.addPoints(i,Invoker.this);
⑹.消费积分:
AdViewOfferManager.spendPoints(j,Invoker.this);
⑺.刷新积分:
adViewOffer.requestPoints();
我们看看谁调用了showOffer显示积分墙 方法,通过apkide搜索:



看到有两处调用,一处属于百度的广告代码,来到第二处,又回到了老地方,详见(http://www.52pojie.cn/thread-264171-1-1.html):
直接删除:
invoke-static {v2}, Lcom/baidu/mobads/appoffers/OffersManager;->showOffers(Landroid/content/Context;)V

这样的效果就是点击后无任何反应,还是显示0积分,不好看,我们改下文字吧
往上看: pointChanged方法
.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, "\u8d5a\u53d6" "赚取"

    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

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

    move-result-object v1

    .line 58//通过前面的代码 ,v2临时寄存器, v1寄存器存放着最终的数据
const-string v1, "52pojie.cn " //增加这句
    invoke-virtual {v0, v1}, Landroid/widget/Button;->setText(Ljava/lang/CharSequence;)V
// 这里调用了Button 的setText 方法,应该就是这里
    return-void
.end method
同理把下面的settext也修改掉
    .line 70
const-string v1,"\u542f\u52a8\u6210\u529f \u4e48\u4e48\u54d2"
    invoke-virtual {v0, v1}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V<Button android:textSize="@dimen/general__shared__font_size_px_36" android:textColor="@color/white" android:gravity="center" android:id="@id/start" android:background="@drawable/seletor_button_server" android:padding="@dimen/activity_horizontal_margin" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="点我启动" />
------------------------------
通过查看广告的文件 我们搜索 getPoints查看积分 就又定位到了此位置


来个效果图:






http://v1.freep.cn/3tb_140610124912o1sg512293.png

ps:    @低调(d-iao)低调 大神是我的偶像。这几天一直看大大的教程 ,长得帅 ,声音又好听。我是看着大大的教程长大的。感谢大大的无私奉献!



闹够了没有 发表于 2014-6-10 12:49

膜拜会android逆向滴{:1_931:}

star0angel 发表于 2014-6-10 12:54

膜拜大神 学习一下 先进经验啊

zc123 发表于 2014-6-10 12:52

膜拜会android逆向滴。。

manbajie 发表于 2014-6-10 13:32

学习一下经验

coxie99 发表于 2014-6-11 09:38

伸手堂来伸个手可以吗?求地址

kingo 发表于 2014-6-16 16:12

好多游人的教程呀

wxh16810 发表于 2014-6-26 14:41

我的怎么不能改代码,改一个就反编译失败
> 正在编译Apk...-
- 失败:
I: Checking whether sources has changed...
I: Smaling...
I: Checking whether resources has changed...
I: Building resources...
E:\android\ApkIDE\Work\com.lumu.bdy\res\layout\item_share_account_type.xml:2: error: No resource identifier found for attribute 'textAlignment' in package 'android'
Exception in thread "main" brut.androlib.AndrolibException: brut.androlib.AndrolibException: brut.common.BrutException: could not exec command:
        at brut.androlib.Androlib.buildResourcesFull(Androlib.java:358)
        at brut.androlib.Androlib.buildResources(Androlib.java:283)
        at brut.androlib.Androlib.build(Androlib.java:206)
        at brut.androlib.Androlib.build(Androlib.java:176)
        at brut.apktool.Main.cmdBuild(Main.java:228)
        at brut.apktool.Main.main(Main.java:79)
Caused by: brut.androlib.AndrolibException: brut.common.BrutException: could not exec command:
        at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:357)
        at brut.androlib.Androlib.buildResourcesFull(Androlib.java:336)
        ... 5 more
Caused by: brut.common.BrutException: could not exec command:
        at brut.util.OS.exec(OS.java:89)
        at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:355)
        ... 6 more

- 失败!请检查您的代码然后重试。

seanow 发表于 2014-6-26 19:19

看不懂很复杂
页: [1]
查看完整版本: 机制的卷纸去除积分墙+另一种方法查找关键位置