解密工程宝上的tlw格式文件
本帖最后由 Light紫星 于 2023-10-31 21:03 编辑今天下午有朋友发给我一个tlw格式的文件,说是apk加密生成的,是工程宝上面用的软件,想让我解密一下。
在论坛搜索了一下,有如下未解决的帖子:能不能把tlw格式的程序转换成安卓的APK格式 - 『悬赏问答区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn
于是乎,自己动手,丰衣足食。
首先,百度搜索了一下网路通工程宝相关资料,发现在某论坛上有人上传了相关的apk和tlw格式的文件。
通过猜想,估计他的应用更新是通过其他apk负责的,于是找到了如下软件
下载应用更新.apk,搜索tlw,果然搜索到一个关键字
然后发现他走到了so里面
此时,去so里面一探究竟
发现他是异或加密的,只是规则比较复杂一些。
上c++
测试解密失败,于是卡在这里很久。
后来通过分析标准zip文件和解密出来的文件的区别,发现有些部分的数据具有相似性,于是推断是不是异或的key错了,而且从这个key122可以看出,可能是版本号,于是尝试降级key,降级到109的时候,成功解密。
这个时候apk就可以打开了。
然后把脚本翻译成python
import os
def numDecode(a1, a2, a3):
v4 = 0
if a1 == 0:
v4 = 1
if a2 <= 0:
v4 |= 1
if v4:
return -1
v5 = a2 - 1
v6 = a2
a1=list(a1)
while v5:
v5 -= 1
v7 = a1
a1=a1
v6=v6-1
a1 =v7 ^ a3
a1 ^= a3
return bytes(a1)
def main():
filename='d:\\1.tlw'
file=open(filename,'rb')
t=file.read(1)
ver=b''
ver=ver+t
while(ord(t)!=59):
t=file.read(1)
ver=ver+t
print(ver)
name = file.read(4)
print(name)
#temp=file.read(0xF4)
#print(temp)
alldata=b''
#print(file.read(0x20).hex())
while(1):
s = file.read(0x400);
if(s==b''):
break
v7 = numDecode(s, len(s), 109);
alldata+=v7
open('out.apk','wb').write(alldata)
main()
尝试了一下,同样解密成功,顺便加上了加密的代码,在附件中,至此本帖结束。
题外话:似乎没有在百度上搜索到tlw格式的解密方式,感觉这可能是全网首发的tlw格式解密吧。
lcg888 发表于 2023-10-31 19:43
最近在想买个什么工程宝比较好,都说海康的是套牌货搞的我都不敢买哈哈哈大佬有没有什么推荐的@
工程宝都是贴牌代工的,以前的模拟bnc工程宝,到现在网络的。 别买贵的,百十块。 坏了就换。 花高价还是贴牌。。已经踩过坑了!!!十多年工地监控施工维护分享。 大佬牛逼! 谢谢分享 最近在想买个什么工程宝比较好,都说海康的是套牌货搞的我都不敢买哈哈哈大佬有没有什么推荐的@ 收藏,备用,感谢楼主 感谢分享!{:1_921:} 学写了 ,谢谢。 大佬厉害 666666666 大佬厉害