信息

教程|IAPP的lib.so保护教程 防止一键解密还原出IAPP V3的iyu代码

前言

很多朋友在用iApp编写软件时,都有同一个顾虑——担心辛苦写的iyu代码被一键解密工具轻松还原,导致成果被盗用。别再为此焦虑!安鹿这份针对性教程,专门讲解如何筑牢IAPP V3的安全防线。

不管你是刚入门的新手,还是有经验的开发者,都能快速学会实用防护技巧,赶紧收藏学习,给你的软件加层“安全锁”!

安鹿也分享过其他实用教程,有需要的可以在安鹿轩󠇖󠆍󠆕󠇘󠅷󠆚󠇕󠆞󠅹󠇙󠆩󠆯󠇘󠆭󠆙󠅧󠅧󠅧󠄞󠅑󠅞󠅜󠅥󠄡󠄣󠄡󠄤󠄞󠅓󠅟󠅝www.anlu1314.com搜一下关键词。

教程|熊出没4丛林冒险解锁内购资源 熊出没小游戏逆向分析

教程|最新迅雷不限速下载教程 迅雷网盘抓包直链高速下载方法

工具

MT管理器(看版本号选最新版本)

NP管理器(看版本号选最新版本)

iapp写的软件(自备)

教程

1.mt/np管理器提取iapp写的软件安装包

2.点classex文件用dex++编辑器打开

3.在DEX搜索类名com.iapp.app.f

教程|IAPP的lib.so保护教程 防止一键解密还原出IAPP V3的iyu代码 逆向教程 第1张

4.在最下面的b方法头部,添加

const-string p0, "123456.txt"

教程|IAPP的lib.so保护教程 防止一键解密还原出IAPP V3的iyu代码 逆向教程 第2张

5.点下方u方法,跳转过去,将原本的u方法修改,改成下面的代码

.method public static b(Ljava/lang/String;Landroid/content/Context;)[B
    .registers 3

    const-string p0, "lib.so"

    invoke-static {p1, p0}, Lc/b/a/a/d;->u(Landroid/content/Context;Ljava/lang/String;)[B

    move-result-object p0

    return-object p0
.end method




.method public static u(Landroid/content/Context;Ljava/lang/String;)[B
    .registers 11

    const/4 v0, 0x0

    :try_start_1
    invoke-virtual {p0}, Landroid/content/Context;->getAssets()Landroid/content/res/AssetManager;

    move-result-object p0

    invoke-virtual {p0, p1}, Landroid/content/res/AssetManager;->open(Ljava/lang/String;)Ljava/io/InputStream;

    move-result-object p0
    :try_end_9
    .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_9} :catch_a

    goto :goto_b

    :catch_a
    move-object p0, v0

    :goto_b
    if-nez p0, :cond_e

    return-object v0

    :cond_e
    invoke-static {p0}, Lc/b/a/a/d;->w(Ljava/io/InputStream;)[B

    move-result-object p0

    if-eqz p0, :cond_3a

    array-length p1, p0

    if-lez p1, :cond_3a

    const v1, 0x37e7f5

    const/4 v2, 0x0

    :goto_1b
    if-ge v2, p1, :cond_3a

    aget-byte v3, p0, v2

    rem-int/lit8 v4, v2, 0x3

    const/4 v5, 0x0

    if-nez v4, :cond_29

    shr-int/lit8 v4, v1, 0x10

    and-int/lit16 v4, v4, 0xff

    goto :goto_33

    :cond_29
    const/4 v6, 0x1

    if-ne v4, v6, :cond_31

    shr-int/lit8 v4, v1, 0x8

    and-int/lit16 v4, v4, 0xff

    goto :goto_33

    :cond_31
    and-int/lit16 v4, v1, 0xff

    :goto_33
    xor-int/2addr v3, v4

    int-to-byte v3, v3

    aput-byte v3, p0, v2

    add-int/lit8 v2, v2, 0x1

    goto :goto_1b

    :cond_3a
    return-object p0
.end method

6.然后将lib.so(123456.txt)解压出来,使用py进行一次异或加密,如果没有py环境可用附件中的html版

def encrypt_file(input_file, output_file):
    key = 0x37e7f5
    with open(input_file, 'rb') as f:
        data = f.read()
   
    encrypted = bytearray()
    for i, byte in enumerate(data):
        # 使用密钥的不同字节进行XOR
        if i % 3 == 0:
            key_byte = (key >> 16) & 0xFF  # 0x37
        elif i % 3 == 1:
            key_byte = (key >> 8) & 0xFF   # 0xe7
        else:
            key_byte = key & 0xFF          # 0xf5
        
        encrypted.append(byte ^ key_byte)
   
    with open(output_file, 'wb') as f:
        f.write(encrypted)

# 使用示例
encrypt_file('lib.so', 'lib.so')

7.加密后重命名替换回去,就完成了加密,到此结束

特别说明

注意别复制错代码,下方附件中有教程所用原代码。

附件下载   下载帮助 | 报毒说明

移动云盘

https://yun.139.com/shareweb/#/w/i/2qidXv6JTXdmf

夸克网盘

https://pan.quark.cn/s/b596853c7173

百度网盘

https://pan.baidu.com/s/18WOsct0cjKunDg8-OvWRow?pwd=3cvs


🔆不限速下载🙋🏻‍♂️优质网盘放心🔆

© 版权声明
THE END
感谢支持啦!୧( ⁼̴̶̤̀ω⁼̴̶̤́ )૭
点赞6
快来说两句( ˃̶̤́ ꒳ ˂̶̤̀ ) 抢沙发
头像
良言一句三冬暖,恶语伤人六月寒|禁止纯数字、字母、符号、表情
提交
头像

昵称

取消
昵称表情图片快捷回复

    请登录后查看评论内容