熊猫看书 等几款小说软件去保护教程

使用工具
1、IDA32
2、AS
3、反编译工具,MT管理器

本来只写了熊猫看书,但准备发表的时候感觉只有一种软件帖子篇幅太小了,就找了另外两款没有加固的软件充数,所以一共有3款软件,分别是熊猫、纵横、番茄。MOD软件之前要先去掉自带的保护,广告的话都是常见的穿山甲、腾讯、百度等,这类的教程发太多了,可以自己找一下论坛。

禁止转载本帖内容,一些博客怎么老喜欢转我的帖子,最主要的是还分类在原创标签到处引流。  吾爱芽衣原创
5

一、熊猫看书9.4.1.01

跟下载评论一样,差不多是个流氓软件了。我刚安装,想点击开屏广告的跳过按钮,点几次都点不到,结果打开京东购物APP。
主要是那个按钮过小,而且太靠近顶端,容易和状态栏冲突,点错就会打开购物软件了。换了另一部手机,状态栏比较高,就容易点。

这软件我用mt管理器一键hook失败,那就不用hook了,来看一下怎么回事。
还是老生常谈的>signatures,dex内直接搜索这个代码,有很多个结果,一些广告三方sdk就不要理了。

反编译后查看AndroidManifest,入口名是android:name=”com.baidu.shucheng91.Application”,定位到结果com/baidu/shucheng91/util/g。

[Java] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
package com.baidu.shucheng91.util;
import android.content.Context;
/* compiled from: CheckUtil */
public class g {
    public static byte[] a = {-26, -126, -88, -27, -82, -119, -24, -93, -123, -26, -104, -81, -25, -101, -105, -25, -119, -120, -27, -70, -108, -25, -108, -88, -17, -68, -116, -24, -81, -73, -27, -82, -119, -24, -93, -123, -27, -82, -104, -26, -106, -71, -25, -119, -120, -26, -100, -84};
    public static int b = 1654413599;
    public static int a(Context context) {
        try {
            return context.getPackageManager().getPackageInfo(context.getPackageName(), 64).signatures[0].hashCode();
        catch (Exception e) {
            e.printStackTrace();
            return 0;
        }
    }
}

其原理就是获取签名的哈希值,然后对比b,如果不一致就弹出a提示。b的值smali代码已经给出,直接写死就可以了。我本以为这样就完成了,结果安装后还是弹出盗版提示。xdl
回到smali代码,有一句sput-object v0, Lcom/baidu/shucheng91/util/g;->a:[B,dex继续搜索Lcom/baidu/shucheng91/util/g;->a:[B,主要关注sget-object,这些成员变量都是比较好分析的。定位到com/baidu/shucheng/ui/main/MainActivity$l,然后查找是哪个地方调用了这里。

熊猫看书 等几款小说软件去保护教程插图2

部分代码如下:

[Java] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
invoke-static {v0}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide v0
sput-wide v0, Lcom/baidu/shucheng/ui/main/MainActivity;->K:J
const-wide/32 v3, 0xa6d833
sub-long/2addr v0, v3
.line 40
sput-wide v0, Lcom/baidu/shucheng/ui/main/MainActivity;->K:J
:cond_6
const-string v0, "classes.dex"
.line 41
invoke-virtual {v6, v0}, Ljava/util/zip/ZipFile;->getEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry;
move-result-object v0
.line 42
invoke-virtual {v0}, Ljava/util/zip/ZipEntry;->getCrc()J
move-result-wide v0
sget-wide v3, Lcom/baidu/shucheng/ui/main/MainActivity;->K:J
cmp-long v5, v0, v3
if-eqz v5, :cond_7
.line 43
new-instance v0, Landroid/os/Handler;
invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
move-result-object v1
invoke-direct {v0, v1}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V
new-instance v1, Lcom/baidu/shucheng/ui/main/MainActivity$l;
invoke-direct {v1, p0}, Lcom/baidu/shucheng/ui/main/MainActivity$l;-><init>(Lcom/baidu/shucheng/ui/main/MainActivity;)V
invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z

这里读取了压缩包内的classes.dex值,用来判断(cmp-long v5, v0, v3)是否被修改过。目的就是防止你hook或者修改了dex代码。所以先把第一个dex拉出来备份,用一键过签,再把第一个dex放回去,hook才会成功。原判断if-eqz,改成if-nez即可绕过检测。

二、纵横小说

直接签名后安装卡死闪退,还是直接搜索>signatures,发现是校验签名哈希值。

熊猫看书 等几款小说软件去保护教程插图3

现在MT管理器支持查看哈希值,方便许多。直接把哈希值写死就可以解决卡屏问题了。

熊猫看书 等几款小说软件去保护教程插图4

三、番茄小说5.3.9.32

熊猫看书 等几款小说软件去保护教程插图5

直接重签名后提示盗版,同样hook无效。ida加载libmetasec_ml,修改如下图的跳转,BEQ改成BNE指令(静态地址227e0)。

熊猫看书 等几款小说软件去保护教程插图6

再编写一个Java,代码可自行思考:

 复制代码 隐藏代码
import android.content.Context;
import java.io.File;

public class y {

    public static void a(Context context) {
        File xml = new File("data/data/com.dragon.read/shared_prefs", "applog_stats.xml");
        if(xml.exists()) {
            xml.delete();
        }
    }
}

可以得到smali:

 复制代码 隐藏代码
.class public Ly;
.super Ljava/lang/Object;
.source "y.java"

# direct methods
.method public constructor <init>()V
    .registers 1

    .prologue
    .line 4
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    return-void
.end method

.method public static a(Landroid/content/Context;)V
    .registers 4
    .param p0, "context"    # Landroid/content/Context;

    .prologue
    .line 7
    new-instance v0, Ljava/io/File;

    const-string v1, "data/data/com.dragon.read/shared_prefs"

    const-string v2, "applog_stats.xml"

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

    .line 8
    .local v0, "xml":Ljava/io/File;
    invoke-virtual {v0}, Ljava/io/File;->exists()Z

    move-result v1

    if-eqz v1, :cond_12

    .line 9
    invoke-virtual {v0}, Ljava/io/File;->delete()Z

    .line 11
    :cond_12
    return-void
.end method

利用MT管理器快速添加到一个dex,然后在入口处(com.dragon.read.app.MainApplication)和阅读界面(com.dragon.read.reader.ReaderActivity)调用这个代码。

[Java] 纯文本查看 复制代码
1
invoke-static {p0}, Ly;->a(Landroid/content/Context;)V

 

 复制代码 隐藏代码
.method public onCreate(Landroid/os/Bundle;)V
    .registers 13

    .prologue
    invoke-static {p0}, Ly;->a(Landroid/content/Context;)V

    const/4 v0, 0x1

    const-string v1, "com.dragon.read.reader.ReaderActivity"

    const-string v2, "onCreate"

    invoke-static {v1, v2, v0}, Lcom/bytedance/apm/agent/v2/instrumentation/ActivityAgent;->onTrace(Ljava/lang/String;Ljava/lang/String;Z)V

    new-array v3, v0, [Ljava/lang/Object;

 

 复制代码 隐藏代码
.method public attachBaseContext(Landroid/content/Context;)V
    .registers 4

    invoke-static {p0}, Ly;->a(Landroid/content/Context;)V

    const-string v0, "attachBaseContext"

    const/4 v1, 0x1

    invoke-static {v0, v1}, Lcom/bytedance/apm/agent/v2/instrumentation/AppAgent;->onTrace(Ljava/lang/String;Z)V

    invoke-super {p0, p1}, Lcom/dragon/read/app/AbsApplication;->attachBaseContext(Landroid/content/Context;)V

    const/4 p1, 0x0

    invoke-static {v0, p1}, Lcom/bytedance/apm/agent/v2/instrumentation/AppAgent;->onTrace(Ljava/lang/String;Z)V

    return-void
.end method

主要目的是干扰APP获取设备信息,覆盖安装后就不会提示盗版了。

下载说明: 1.特别声明:原创产品提供以上服务,破解产品仅供参考学习,不提供售后服务(均已杀毒检测),如有需求,建议购买正版!如果源码侵犯了您的利益请留言告知! 2.如果源码下载地址失效请 联系站长进行补发。 3.本站所有资源仅用于学习及研究使用,请必须在24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担。资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您权益请联系本站删除! 4.本站站内提供的所有可下载资源(软件等等)本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发);但本网站不能保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug;同时本站用户必须明白,【源码无忧】对提供下载的软件等不拥有任何权利(本站原创和特约原创作者除外),其版权归该资源的合法拥有者所有。 5.请您认真阅读上述内容,购买即以为着您同意上述内容。 原文链接:https://www.dabaiwu.top/blog/%e7%86%8a%e7%8c%ab%e7%9c%8b%e4%b9%a6-%e7%ad%89%e5%87%a0%e6%ac%be%e5%b0%8f%e8%af%b4%e8%bd%af%e4%bb%b6%e5%8e%bb%e4%bf%9d%e6%8a%a4%e6%95%99%e7%a8%8b/,转载请注明出处。

各位大哥大姐们好 本站属于非盈利网站,所有资源来自网络搜集而来,如果您发现你需要的资源需要VIP的权限,请发邮件给到我,前期需要帮忙宣传我们的站点5个连接就可以了,也不多,附上截图就可以了。谢谢
显示验证码
没有账号? 注册  忘记密码?
您好,有任何疑问请与我们联系!