精易论坛

标题: gbits文件查看工具 [打印本页]

作者: 〞剑舞长空    时间: 2019-9-22 10:01
标题: gbits文件查看工具
。这份代码并不完善


网上的文库对dbfs的分析也很到位



gbits的无非就是 文件头 + 数据段 + alpha

文件头具体参照图片类型而定,最重要的是文件头

可能部分ALPHA有加密,就预览效果来看怪怪的
[只管了一帧,其余的我懒得整]

模块自行网上寻找

此代码仅供学习,请勿用于违法用途

[attach]7554[/attach]







密码:




QQ截图20190922094925.png (14.85 KB, 下载次数: 7)

QQ截图20190922094925.png

作者: hgy19880905    时间: 2019-9-22 10:05
参照图片类
作者: 汉族    时间: 2019-9-22 10:22
解析 看看源码
作者: 流星暴雨    时间: 2019-9-22 10:33
感谢楼主分享

作者: 爱的愤愤    时间: 2019-9-22 11:36
楼主辛苦了,谢谢楼主,感谢楼主分享,楼主好人一生平安!!!
作者: jhai    时间: 2019-9-22 11:56
神啊,终于让我找到了!

作者: Demono    时间: 2019-9-22 11:58
好像很好玩哈哈哈。里面有个公仔。
{:4_269:}
作者: fyh505099    时间: 2019-9-22 12:52
学习一下 谢谢楼主分享

作者: a1372704087    时间: 2019-9-22 14:12
学习一下 谢谢楼主分享

作者: Nice回忆    时间: 2019-9-22 16:23
此代码仅供学习
作者: Nice回忆    时间: 2019-9-22 16:26
内裤怎么不发一下啊,找起麻烦
作者: 韦贝贝    时间: 2019-9-23 08:40
学习一下 谢谢楼主分享
作者: chenliben    时间: 2019-9-23 09:06
感谢分享 下载看看
作者: 网络注册络员    时间: 2019-9-23 09:47

作者: yinghao2005    时间: 2019-9-23 12:38
感谢分享支持
作者: kyo9766    时间: 2019-9-23 17:06
gbits 是啥文件,看一下,感谢分享
作者: kaitolib    时间: 2019-9-23 17:55

学习一下 谢谢楼主分享
作者: 铭聚科技    时间: 2019-9-23 18:09
来看看
来看看
来看看
来看看
来看看
来看看
来看看
来看看
来看看

作者: 无情的少年    时间: 2019-9-23 18:21
阿发递四方速递

作者: web188    时间: 2019-9-23 20:24
感谢分享,支持开源

作者: 林一学编程    时间: 2019-9-24 02:37
那么快排空口渴了

作者: 林一学编程    时间: 2019-9-24 02:37
废弃物莪伐车企物权法
作者: 林一学编程    时间: 2019-9-24 02:38
如风别跟我日无所谓
作者: 子柒    时间: 2019-9-24 04:19
是不是真的

作者: 小飞爱精易    时间: 2019-9-24 15:17
感谢分享,支持开源
作者: gjhaini1314    时间: 2019-9-25 13:38
111111111111111111111111111

作者: huhua    时间: 2019-9-26 20:59
厉害了哦

作者: wuqingg    时间: 2019-9-28 08:54
66666666666666666
作者: 星星是我啊    时间: 2019-10-14 13:32
2年前曾经写过问道的解包工具,包括打开文件,解压文件及图片,替换文件及图片
文件索引list目录打开2秒搞定。写了我前前后后将近2周,问道的资源文件结构确实国内行内领先
写其他游戏的解包工具,1-2小时就写完全部功能了




作者: 深情不及久伴i    时间: 2019-11-20 22:59
厉害了我的哥 6666
作者: 271430324    时间: 2019-12-13 01:34
星星是我啊 发表于 2019-10-14 13:32
2年前曾经写过问道的解包工具,包括打开文件,解压文件及图片,替换文件及图片
文件索引list目录打开2秒搞 ...

可以加QQ123990 737
作者: 星星是我啊    时间: 2020-1-14 11:49
本帖最后由 星星是我啊 于 2020-1-14 11:58 编辑

公布下源码吧 个人可以自己去研究

首先是入口部分
.版本 2

.子程序 ASK_打开文件, 文件信息, , 问道
.参数 参_文件名, 文本型
.参数 参_压缩信息, 压缩信息, 参考 数组
.局部变量 地址表, 字节集
.局部变量 文件信息, 文件信息

地址表 = {  }
ASK_循环递归 (参_文件名, 地址表, 12288, 参_压缩信息)
ASK_循环递归 (参_文件名, 地址表, 16384, 参_压缩信息)
文件信息.索引表 = { 1 }
文件信息.文件大小 = 函_取文件大小 (参_文件名)
返回 (文件信息)

真正的核心部分,读取所有文件的索引信息,包括文件名,偏移地址,文件大小之类的

.版本 2

.子程序 ASK_循环递归, , , 问道
.参数 参_文件名, 文本型
.参数 参_地址表, 字节集
.参数 参_地址, 长整数型
.参数 参_压缩信息, 压缩信息, 参考 数组
.局部变量 字节集, 字节集
.局部变量 临时集, 字节集
.局部变量 文本, 文本型
.局部变量 cc, 整数型
.局部变量 dd, 整数型
.局部变量 i, 整数型
.局部变量 l, 整数型
.局部变量 a, 整数型
.局部变量 b, 整数型
.局部变量 c, 整数型
.局部变量 d, 整数型
.局部变量 e, 整数型
.局部变量 f, 整数型
.局部变量 g, 整数型
.局部变量 h, 整数型
.局部变量 x, 整数型
.局部变量 y, 整数型
.局部变量 z, 整数型
.局部变量 bb, 长整数型
.局部变量 aa, 长整数型, , "0"
.局部变量 压缩存储, 压缩信息, , "0"
.局部变量 文本存储, 压缩信息, , "0"
.局部变量 压缩信息, 压缩信息

参_地址表 = 参_地址表 + 到字节集 (参_地址)  ' 防止多次遍历这个地址,虽然可能不会重复出现
字节集 = 函_映射读文件 (参_文件名, 2048, 0, 参_地址)
a = 取字节集xx (字节集, 1, 26)  ' block标志 3为文件夹,5为文件 7为文件
.如果真 (a ≠ 3 且 a ≠ 5)  ' 如果为7,则为文件,防止遍历到文件 如果为文件夹,则无任何意义
    返回 ()
.如果真结束

' 前26字节意思
' int  0
' int  1
' int  当前block
' int  上一个block
' int  下一个block
' short ?层?
' short 废弃长度 04
' byte  未知?
' byte 3为文件夹,5为文件
bb = 取字节集xx (字节集, 3, 17) × 2048  ' 下一个链的地址
.如果真 (bb > 0 且 寻找字节集 (参_地址表, 到字节集 (bb), ) = -1)  ' 如果没有遍历过,则将下一个链加入到循环队列中
    加入成员 (aa, bb)
.如果真结束
d = 取字节集xx (字节集, 2, 23)  ' 废弃block大小
h = 取字节集xx (字节集, 2, 21)  ' 是否数组排序
字节集 = 取字节集右边 (字节集, 2048 - d)  ' 取出具体xx
z = 1  ' 定义当前读取xx起始地址,C语言从0开始
y = 2048 - d  ' 定义block大小
压缩信息.解压图片 = 1
.判断循环首 (z < y 且 z > 0)
    .如果真 (a ≠ 5 且 a ≠ 3)
        返回 ()
    .如果真结束
    .如果真 (a = 5)  ' 全部为文件
        c = 取字节集xx (字节集, 2, z)  ' 文本长度或者文件长度
        b = 取字节集xx (字节集, 1, z)  ' 标识符
        e = 取字节集xx (字节集, 1, z)  ' 标识符,也有可能是压缩算法标志(压缩算法目前发现2种,不排除未来加入其它算法)
        ' '压缩算法zlib或变异huffman算法,压缩算法的五个参数"12 4 2 2 0"
        .如果真 (b = 2)  ' 下一个坐标
            bb = 取字节集xx (字节集, 3, z) × 2048  ' 下一个链的地址
            .如果真 (bb > 0 且 寻找字节集 (参_地址表, 到字节集 (bb), ) = -1)  ' 如果没有遍历过,则将下一个链加入到循环队列中
                加入成员 (aa, bb)
            .如果真结束
            z = z + 4
            到循环尾 ()
        .如果真结束
        .如果真 (b = 3)
            g = g + 1
            压缩信息.偏移地址 = 取字节集xx (字节集, 3, z) × 2048
            压缩信息.索引位置 = 参_地址 + d + z - 1
            压缩信息.压缩前长度 = 取字节集xx (字节集, 3, z)
            压缩信息.压缩后长度 = 压缩信息.压缩前长度
            压缩信息.备用xx1 = 0
            加入成员 (压缩存储, 压缩信息)
            到循环尾 ()
        .如果真结束
--------------
后面的源码请自己研究
我当初研究了2周才完全了解这款游戏



作者: 星星是我啊    时间: 2020-1-14 11:51
问道采用了2种压缩方案,一种传统的zlib压缩,一种叫做 lzss压缩算法,lzss的参数是12 4 2 2 0,貌似填12 4 2 2 1也是能解开的。

提取图片的方案

.版本 2

.子程序 ASK_解压图片, 字节集, , 问道
.参数 参_传入数据, 字节集
.参数 参_压缩数据, 压缩信息
.局部变量 字节集, 字节集
.局部变量 临时集, 字节集
.局部变量 缓冲区, 字节集
.局部变量 结果区, 字节集
.局部变量 返回值, 字节集
.局部变量 存文本, 文本型
.局部变量 a, 整数型, , , 是否为带坐标的图片
.局部变量 b, 整数型, , , 头部大小
.局部变量 c, 整数型, , , 图片数据width
.局部变量 d, 整数型, , , 图片数据height
.局部变量 e, 整数型, , , 数据区域大小
.局部变量 f, 整数型, , , 数据区域大小
.局部变量 g, 整数型, , , 数据区域大小
.局部变量 h, 整数型
.局部变量 x, 整数型, , , x坐标
.局部变量 y, 整数型, , , y坐标
.局部变量 z, 整数型, , , 像素宽度
.局部变量 l, 整数型, , , 数据长度
.局部变量 num, 整数型, , , 循环次数
.局部变量 jici, 整数型

字节集 = 参_传入数据
a = 取字节集数据 (字节集, 3, 5)
l = 取字节集长度 (字节集)
.如果 (a > 0)  ' 只有单张图片
    b = 9
    临时集 = 取字节集中间 (字节集, b, a)
    g = 10000 × 10000 × 4
    缓冲区 = 取空白字节集 (g)
    .如果真 (取字节集左边 (临时集, 2) ≠ { 255, 216 })  ' JPG幻数
        返回 ({  })
    .如果真结束
    picture_readjpeg (临时集, a, 缓冲区, g, c, d, z)
    b = b + a
    缓冲区 = 取字节集左边 (缓冲区, g)
    临时集 = 取字节集中间 (字节集, b, l - b + 1)
    .如果 (取字节集长度 (临时集) = 0)
        h = c × d × 4 + 100
        临时集 = 取空白字节集 (h)
        picture_u3d_rgba (缓冲区, c × d × 3, 临时集, c, d, 3)
        结果区 = 取空白字节集 (c × d × 5 + 100)
        h = picture_rgba_png (临时集, 结果区, c, d, 0)
        临时集 = 取字节集左边 (结果区, h)
    .否则
        临时集 = zlib_压缩算法 (临时集, c × d, , 真)
        h = c × d × 4 + 100
        结果区 = 取空白字节集 (h)
        picture_rgb_a_rgba (缓冲区, 临时集, 结果区, h, c, d, z)
        缓冲区 = 取字节集左边 (结果区, h)
        结果区 = 取空白字节集 (c × d × 5 + 100)
        h = picture_rgba_png (缓冲区, 结果区, c, d, 0)
        临时集 = 取字节集左边 (结果区, h)
    .如果结束

    存文本 = 参_压缩数据.压缩文件名 + “_X” + 到文本 (x) + “_Y” + 到文本 (y) + “.png”
    返回值 = 到字节集 (存文本)
    返回值 = 到字节集 (取字节集长度 (返回值)) + 返回值
    返回值 = 返回值 + 到字节集 (取字节集长度 (临时集)) + 临时集
.否则
    b = 取字节集数据 (字节集, 3, 9)
    b = b + 1
    num = 取字节集数据 (字节集, 2, 41)
    .计次循环首 (num, jici)
        x = 取字节集数据 (字节集, 2, b)
        y = 取字节集数据 (字节集, 2, b)
        c = 取字节集数据 (字节集, 2, b)
        d = 取字节集数据 (字节集, 2, b)
        b = b + 4
        e = 取字节集数据 (字节集, 3, b)
        .如果真 (e = 0)
            到循环尾 ()
        .如果真结束
        f = 取字节集数据 (字节集, 3, b)
        .如果 (f = -140640256 或 f = 268435456 或 f = 813826048)
            b = b - 4
            临时集 = 取字节集中间 (字节集, b, e)
            b = b + e

            ' 缓冲区 = 函_文本字节集 (“424D000000000000000046000000380000000000000000000000010010000300000000000000120B0000120B0000000000000000000000F80000E00700001F00000000000000”)  ' RGB565
            ' 缓冲区 = 函_文本字节集 (“424D000000000000000046000000380000000000000000000000010010000300000000000000120B0000120B00000000000000000000007C0000E00300001F00000000800000”)  ' RGB1555
            缓冲区 = 函_文本字节集 (“424D000000000000000046000000380000000000000000000000010010000300000000000000120B0000120B00000000000000000000000F0000F00000000F00000000F00000”)  ' RGBA4444
            缓冲区 = 函_文本字节集 (“424D16640000000000003604000028000000710000006C0000000100100000000000AC02000000000000000000000000000000000000”)

            缓冲区 = 字节集替换 (缓冲区, 19, 4, 到字节集 (到整数 (c)))
            缓冲区 = 字节集替换 (缓冲区, 23, 4, 到字节集 (到整数 (d)))
            缓冲区 = 字节集替换 (缓冲区, 11, 4, 到字节集 (到整数 (54 + 512)))
            缓冲区 = 字节集替换 (缓冲区, 3, 4, 到字节集 (到整数 (54 + e)))
            临时集 = 缓冲区 + 临时集
            存文本 = 参_压缩数据.压缩文件名 + 到文本 (jici) + “_X” + 到文本 (x) + “_Y” + 到文本 (y) + “.bmp”

        .否则

            e = e - 8
            f = 取字节集数据 (字节集, 3, b)
            临时集 = 取字节集中间 (字节集, b, f)
            g = c × d × 5
            .如果真 (取字节集左边 (临时集, 2) ≠ { 255, 216 })  ' JPG幻数
                返回 ({  })
            .如果真结束
            .如果真 (g = 0)
                g = b × 100
            .如果真结束
            e = e - f
            缓冲区 = 取空白字节集 (g)
            picture_readjpeg (临时集, f, 缓冲区, g, c, d, z)
            b = b + f
            缓冲区 = 取字节集左边 (缓冲区, g)
            临时集 = 取字节集中间 (字节集, b, e)
            b = b + e
            临时集 = zlib_压缩算法 (临时集, c × d, , 真)
            h = c × d × 4 + 100
            结果区 = 取空白字节集 (h)
            picture_rgb_a_rgba (缓冲区, 临时集, 结果区, h, c, d, z)
            缓冲区 = 取字节集左边 (结果区, h)
            结果区 = 取空白字节集 (c × d × 5 + 100)
            h = picture_rgba_png (缓冲区, 结果区, c, d, 0)
            临时集 = 取字节集左边 (结果区, h)
            存文本 = 参_压缩数据.压缩文件名 + 到文本 (jici) + “_X” + 到文本 (x) + “_Y” + 到文本 (y) + “.png”
        .如果结束

        返回值 = 返回值 + 到字节集 (取文本长度 (存文本)) + 到字节集 (存文本)
        返回值 = 返回值 + 到字节集 (取字节集长度 (临时集)) + 临时集
    .计次循环尾 ()
.如果结束

返回 (返回值)

作者: 星星是我啊    时间: 2020-1-14 12:03

文件目录
作者: qw7418590    时间: 2020-3-3 19:30
星星是我啊 发表于 2020-1-14 12:03
文件目录

老哥,可以吧这个资源提取器分享哈吗?
作者: qq386520    时间: 2020-12-5 20:27
完善了一下题主的源码,可以解压全部的帧数的图片并且可以播放动画!希望有人可以完善一下星星大佬的dbfs解压工具

gbitsview.zip

781.63 KB, 下载次数: 132, 下载积分: 精币 -2 枚


作者: qq386520    时间: 2020-12-5 20:30
文件还有一份dbfs提取器源码,望完善!
作者: qq386520    时间: 2020-12-6 14:21
星星是我啊 发表于 2020-1-14 12:03
文件目录

请问一下,怎么确定数据改写到哪个文件
作者: wojiaoxiaoqiang    时间: 2021-1-2 06:05
膜拜膜拜膜拜
作者: nicholasllj    时间: 2021-1-6 02:27
星星是我啊 发表于 2020-1-14 12:03
文件目录

大神能否分享一下这个工具?跪谢了
作者: 街头蚂蚁    时间: 2021-1-31 23:49
牛逼牛上天啊!~!~!~
作者: 成神之日    时间: 2021-2-7 09:27
感谢分享,很给力!~
作者: QQEat    时间: 2021-5-10 15:23
支持一下!
作者: QQEat    时间: 2021-5-10 15:24
源码好像运行不了?错误(10010): 指定的常量或资源名称“”未找到。
作者: QQEat    时间: 2021-5-10 19:11
星星是我啊 发表于 2020-1-14 12:03
文件目录

老哥求分享!!
作者: nicholasllj    时间: 2021-5-26 21:17
qq386520 发表于 2020-12-5 20:27
完善了一下题主的源码,可以解压全部的帧数的图片并且可以播放动画!希望有人可以完善一下星星大佬的dbfs解 ...

感谢大神分享
作者: nicholasllj    时间: 2021-5-26 21:18
星星是我啊 发表于 2020-1-14 12:03
文件目录

希望大神能分享或者公布一下这个神器,我这些小白不懂编程,根本就不知道怎么弄代码
作者: 425914034    时间: 2021-7-10 02:58
qq386520 发表于 2020-12-6 14:21
请问一下,怎么确定数据改写到哪个文件

666666666666666666666666666
作者: nicholasllj    时间: 2021-8-17 19:21
星星是我啊 发表于 2020-1-14 12:03
文件目录

大神,下发那个QQ号码不是你吗?
作者: 425914034    时间: 2021-10-1 23:34
厉害了我的哥 6666
作者: 425914034    时间: 2021-10-24 12:32
厉害了我的哥 6666
作者: kanshijian    时间: 2022-1-6 20:25
qq386520 发表于 2020-12-5 20:27
完善了一下题主的源码,可以解压全部的帧数的图片并且可以播放动画!希望有人可以完善一下星星大佬的dbfs解 ...

大佬可以加一下你吗有偿求完善一下
作者: 425914034    时间: 2022-2-5 22:49
kanshijian 发表于 2022-1-6 20:25
大佬可以加一下你吗有偿求完善一下

我可以写
作者: 千古千古    时间: 2022-2-13 14:03
感谢楼主分析
作者: kanshijian    时间: 2022-3-14 19:13
425914034 发表于 2022-2-5 22:49
我可以写

怎么联系,留个方式
作者: 425914034    时间: 2022-3-16 11:42
kanshijian 发表于 2022-3-14 19:13
怎么联系,留个方式

qq1480888322
作者: zackcheung    时间: 2022-6-23 10:45
厉害 谢谢
作者: panaa    时间: 2022-9-10 08:15
666666666666666666666666666666
作者: gbx2000    时间: 2022-10-20 18:46
谢谢楼主和楼层内各位大佬的分享,先慢慢学习gfbs资源提取吧
作者: 已注销645728    时间: 2023-4-19 11:45
提示: 作者被禁止或删除 内容自动屏蔽
作者: 破城戟    时间: 2023-7-17 15:46
学习一下
作者: HatsuneMirai    时间: 2023-8-6 16:18
厉害了我的哥 6666

作者: 13434230728    时间: 2023-9-30 07:46
支持开源~!感谢分享
作者: 13434230728    时间: 2023-9-30 07:46
支持开源~!感谢分享
作者: 请叫我徐某人    时间: 2024-5-28 17:42
wd11 qwfqwfwaese
作者: kexin2018    时间: 2024-6-25 11:51
感谢分享
作者: koujiancheng    时间: 2024-7-2 22:14
代码不完全,确实,我试了下总是提醒找不到常量或资源名称 “” ,难受
作者: qq1440344    时间: 2025-4-18 18:12
感谢分想  正需要




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4