加速世界吧 关注:258,120贴子:6,863,799

回复:直播~PSP游戏-银翼之觉醒-韩货破解历程~

只看楼主收藏回复

加油!等福利


IP属地:陕西来自手机贴吧18楼2013-11-12 21:30
回复
    请收下我的膝盖(等福利)


    IP属地:重庆来自Android客户端19楼2013-11-12 21:42
    回复
      2026-04-16 22:12:38
      广告
      不感兴趣
      开通SVIP免广告
      坐等资源


      IP属地:吉林来自Android客户端20楼2013-11-12 21:49
      回复
        看起来好像很刁炸天啊!高手果然在人间。。。。。
         =================================
          いつか仆らが未来に振り返るときには
          いつもこの场所で君が笑った
        =================================  


        IP属地:江苏来自Android客户端21楼2013-11-12 22:28
        回复
          LZ 土豪 技术宅 碉堡了 围观


          来自Android客户端22楼2013-11-12 22:46
          回复
            拯救世界吧,好顶赞


            来自Android客户端23楼2013-11-12 22:53
            回复
              一直想学习,用软件打开得到16进制和对于的acii码后,完全不知道怎么看。看了这个帖子总算知道一些方法了。


              IP属地:广东24楼2013-11-12 23:03
              收起回复
                代码之后呢?


                IP属地:山东来自Android客户端25楼2013-11-12 23:20
                回复
                  2026-04-16 22:06:38
                  广告
                  不感兴趣
                  开通SVIP免广告
                  本来不想插手这事的,不过这个似乎和之前遇到过一些同种开坑方式的情况有点不太一样(不是太坑爹?),于是顺手下载来瞧瞧,刚通完战神加上时间太晚了精神不佳,有错的地方见谅,之后具体能不能完坑就看开坑人的造化了,我就不打击了。。。。。
                  envpsp.dat
                  文本utf-16编码,一些系统信息文本
                  first.dat解包后

                  再次解包之后基本所有文件都用了GZIP压缩方法,嫌麻烦全部命名为xx.gz用winrar直接打开(文件头:1F 8B 08)
                  logo.dat:就是一堆logo文件
                  saveicon.dat:一堆PNG的存档所用图片
                  text.dat:scriptname.txt可以留意一下其他感觉没用
                  systemse.dat:全是音频无视
                  expansion.dat:无视
                  image_sharing.dat:几张小图,无视
                  environ.dat:感觉没用,无视
                  seekmap.dat:LBA?
                  script.dat:乱七八糟的东西
                  下面以init_psp.dat为例

                  蓝色方框分别是:文件头标示符,整个文件的大小,此文件中含有的文件数
                  红色部分是每个文件的offset,绿色部分是分文件的大小,黄色部分是分文件的文件名所在offset,程序读取到黄色部分时就会跳转到相应的的offset,然后读取粉色部分(文件名占的长度),然后读入文件名,以此类推进行解包,这些都是以LE的形式储存的。很简单吧?
                  然后文本图片自己找,基本上都在上面这种包结构中,其他什么AWB啊,HCA啊都是音频,全部无视就好,都说到这一步了都是程序员应该很容易就能找到吧~~~反正都是utf-16编码,而图片都是GIM,GIM百度都有工具转换,至于字库在哪看图,早上还要早起,撤


                  IP属地:广东26楼2013-11-13 03:22
                  收起回复
                    上接12楼回复
                    savepos tmp //保存当前偏移 标记为tmp
                    for i = 0 < files // 这里是个for loop 一直到结尾的next i
                    goto tmp// 跳转到tmp的偏移 (没调试 推辞这里的tmp是0x10 那里长得像指针)
                    get offset long //向下读取 长度为long 定义为offset
                    get comp long //向下读长度为long 定义为comp
                    get size long //向下读长度为long 定义为size
                    get nameoff long //向下读长度为long 定义为nameoff
                    savepos tmp //保存当前偏移 标记为tmp(这里重新标记了tmp)
                    goto nameoff //跳转至nameoff(刚刚读取到的2进制码 这里用作偏移地址)
                    get nsize long //向下读长度为long 定义为nsize
                    getdstring name nsize
                    if comp == 1 //一个if 的condition 当comp==1时
                    string name + .gz // string一个name 再在后面加上个.gz
                    endif//结束condition
                    log name offset size// log出一个文件 ;文件名是刚刚string的name;从刚刚读取到的offset开始log log的长度为size(相当于把文件从包里抠出来)
                    next i//这个我就不讲了 都懂的


                    27楼2013-11-13 04:03
                    收起回复
                      给楼主提供个方便 看着bms码和lz的截图 码了个底层的过程 看起来会更清晰些(其实我啥都不懂 上面都是我编的 有错误的地方就放过我吧)
                      偏移 bms码 效果
                      00 idstring "GPDA" //0x0 "GPDA"
                      04 get tsize longlong //set tsize to 0x0000000012533800
                      0C get files long // set files to 0x00000012
                      10 savepos tmp // set tmp to 0x10
                      10 for i = 0 < files //set i to 0(太累了 我只写完第一个loop)
                      //check 0 < 12
                      10 goto tmp // 偏移至0x10
                      10 get offset long //set offset to 0x00000800
                      14 get comp long //set comp to 0x00000000
                      18 get size long //set size to 0x03070800
                      1C get nameoff long //set nameoff to 0x00000130
                      20 savepos tmp //set tmp to 0x20
                      20 goto nameoff //偏移到nameoff(这个loop里是刚才读取到的0x130)
                      130 get nsize long //set nsize to 0x0000000B
                      134 getdstring name nsize //string name battle.dat
                      140 if comp == 1 //check comp ==1 ?(not good 从这个脚本上判断 这个condition是判断 文件有没有加gz压缩的)
                      140 log name offset size //从0x800开始 输出一个长度为0x3070800的文件 文件名为battle.dat
                      140 next i //++i;
                      嘛 剩下的就看lz造化了


                      28楼2013-11-13 04:32
                      收起回复
                        好流弊                              --世界的模样,取决于你凝视它的目光。


                        来自Android客户端29楼2013-11-13 07:03
                        回复
                          不明觉厉!


                          来自手机贴吧30楼2013-11-13 07:38
                          回复
                            我去,吧里好多程序员


                            IP属地:江苏来自Android客户端31楼2013-11-13 07:43
                            回复
                              2026-04-16 22:00:38
                              广告
                              不感兴趣
                              开通SVIP免广告
                              楼主加油!技术渣只能做到这么多了


                              IP属地:浙江来自Android客户端32楼2013-11-13 08:20
                              回复