网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
可签
7
级以上的吧
50
个
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
09月15日
漏签
0
天
百影虱子吧
关注:
7
贴子:
162
看贴
图片
吧主推荐
游戏
19
回复贴,共
1
页
<返回百影虱子吧
>0< 加载中...
求助
只看楼主
收藏
回复
1548hg
高级粉丝
3
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
@caoyang131
大佬,我最近在研究_info.psb.m&_body.bin的解包,是new game的,我发现你之前有研究过这种打包方式,然后我又通过外面得知了key,但是当我尝试使用exm2lib.cpp编译一个exe的时候,报错缺少好几个头文件,请问你之前是怎么解压的
(他给的链接失效了)
送TA礼物
IP属地:广东
1楼
2019-04-21 22:32
回复
caoyang131
初级粉丝
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
这个?已经研究好了
IP属地:上海
来自
Android客户端
2楼
2019-04-22 08:12
回复(3)
收起回复
caoyang131
初级粉丝
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
首先,类似于_info.psb.m&_body.bin的PSB引擎早已由number201724在github开源的psbfile所解决。
但是psbfile只能解决解密后的psb,对于掌机来说psb还有一层加密壳。今天我就告诉你如何加解密:
其实加解密psb的算法也在很久就由feitiange给出来了(在研究了exm2lib源码之后)
具体我也记得不大清了,只记得是用了md5和著名的MT19937算法变种(貌似?当时本人研究都要吐了)
算了直接贴本人的python源码:
import hashlib,struct,zlib,os,glob,io
key = 'a9231213e7231' # 这里换成你的key
repeatLen = 0x83 # 默认都是0x83
N = 624
M = 397
MATRIX_A = 0x9908b0df
UPPER_MASK = 0x80000000
LOWER_MASK = 0x7fffffff
mt = [1]*N
mti = N+1
def init_genrand(s):
global mti
mt[0] = s&0xffffffff
for i in range(1,N):
mt[i] = (1812433253*(mt[i-1]^(mt[i-1]>>30))+i);
mt[i] &= 0xffffffff
mti = N
def init_by_array(init_key,key_length):
init_genrand(19650218)
i=1
j=0
if N>key_length:
k = N
else:
k = key_length
for x in range(k):
mt[i] = (mt[i] ^ ((mt[i-1] ^ (mt[i-1] >> 30)) * 1664525))+ init_key[j] + j
mt[i] &=0xffffffff
i+=1
j+=1
if i>=N:
mt[0] = mt[N-1]
i = 1
if j>=key_length:
j=0
k = N-1
while k!=0:
k-=1
mt[i] = (mt[i] ^ ((mt[i-1] ^ (mt[i-1] >> 30)) * 1566083941))- i
mt[i] &= 0xffffffff
i += 1
if i>=N:
mt[0] = mt[N-1]
i = 1
mt[0] = 0x80000000
def genrand_int32():
mag01 = [0x0,MATRIX_A]
global mti
if mti >= N:
if mti == N+1:
init_genrand(5489)
for kk in range(N-M):
y = (mt[kk]&UPPER_MASK)|(mt[kk+1]&LOWER_MASK)
mt[kk] = mt[kk+M] ^ (y >> 1) ^ mag01[y & 0x1]
for kk in range(N-M,N-1):
y = (mt[kk]&UPPER_MASK)|(mt[kk+1]&LOWER_MASK)
mt[kk] = mt[kk+(M-N)] ^ (y >> 1) ^ mag01[y & 0x1]
y = (mt[N-1]&UPPER_MASK)|(mt[0]&LOWER_MASK)
mt[N-1] = mt[M-1] ^ (y >> 1) ^ mag01[y & 0x1]
mti = 0
y = mt[mti]
mti += 1
y ^= (y>>11)
y ^= (y & 0xff3a58ad) << 7
y &= 0xffffffff
y ^= (y & 0xffffdf8c) <<15
y &= 0xffffffff
y ^= (y >> 18)
return y
# 关键点
# 把所有的m文件丢到src目录下,第一部要获取解密的m
files = glob.iglob('src\\*.m')
# 创建dec文件夹
if os.path.exists('dec\\') == False:
os.makedirs('dec\\')
for src in files:
dirname = os.path.dirname(src)
filename = os.path.basename(src)
String = key+filename
#print(String)
seed = hashlib.md5(String.encode('ascii')).digest()
num =[0]*4
for i in range(4):
tmp = seed[i*4:(i+1)*4]
num[i] = struct.unpack('<I',tmp)[0]
init_by_array(num,4)
repeattime = 0
if repeatLen%4 == 0:
repeattime = repeatLen //4
else:
repeattime = repeatLen //4 +1
array = [b'\x00']*(repeattime*4)
k=0
for i in range(repeattime):
arraypack = genrand_int32()
arraytmp = struct.pack('<I',arraypack)
for x in range(4):
array[k] = arraytmp[x]
k += 1
f = open(dirname+'\\'+filename,'rb')
basename,extname = os.path.splitext(filename)
fw = open('dec\\'+basename,'wb')
f.seek(8)
print(filename)
bytebuf = f.read()
k = 0
newbuf = io.BytesIO()
#print(hex(array[k]))
for chr in bytebuf:
x = chr ^ array[k]
newbuf.write(struct.pack('B',x))
k = (k+1) % repeatLen
try:
hehe = zlib.decompress(newbuf.getvalue())
#print('OK')
except:
hehe = newbuf.getvalue()
print('NO')
fw.write(hehe)
fw.flush()
fw.close()
f.close()
IP属地:上海
3楼
2019-04-27 09:16
回复(2)
收起回复
1548hg
高级粉丝
3
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
在已知key的情况下,用hex把exm2lib.exe打开直接修改就可以用了
不过导出来的图片颜色有点怪,似乎还要处理,现在就卡这一步了
IP属地:广东
4楼
2019-04-27 14:51
回复(2)
收起回复
1548hg
高级粉丝
3
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
现在变成不知道怎么拼合了。。。
IP属地:广东
6楼
2019-05-06 19:12
回复(5)
收起回复
1548hg
高级粉丝
3
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
IP属地:广东
8楼
2019-06-25 14:59
回复(1)
收起回复
懿寯彦訸
初级粉丝
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
大佬,我想了解一下你的key是怎么拿到的
IP属地:广东
9楼
2022-08-20 18:03
回复
收起回复
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧热议榜
1
林诗栋4-1战胜王楚钦晋级决赛
1594140
2
T1晋级S14
1440459
3
LOL全球总决赛规则公布
1134868
4
美国将花16亿美元抹黑中国
921969
5
孙颖莎4比2张本美和
862914
6
Scout经纪公司回应EDG
857400
7
崩坏3联动星穹铁道
777216
8
Deft第四次缺席全球总决赛
562258
9
今年的月饼怎么就卖不动了?
428450
10
《刺客信条影》演示现中国乐器埙
381318
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示