求大神!2进制导出文本语言显示不正确

month83 2019-02-16 06:34:47
2进制导出文本语言 中文 日文 韩文和一些符号都显示不正确

# -*- coding: utf-8 -*-
import os
import json
import codecs


def read_block(f):
block_size = 0
index = int.from_bytes(bytes(f.read(4)), byteorder='little')
block_size += 4

len1 = int.from_bytes(bytes(f.read(2)), byteorder='little')
block_size += 2
str1 = codecs.decode(bytes(f.read(len1 * 2)), encoding='utf-8', errors='replace').replace('\00','')
block_size += len1 * 2

return {"index": index, "str1": str1, "size": block_size}

fname = 'tb_npc_script.res'
fsize = os.path.getsize(fname)
entries = []
with open("tb_npc_script.res", "rb") as f:
try:
entry_count = int.from_bytes(f.read(4), byteorder='little')
fsize -= 4
while entry_count > 0:
block = read_block(f)
fsize -= block["size"]
entry_count -= 1
entries.append(block)

except Exception as e:
print(e)

with open('tb_npc_script.txt', 'w', encoding='utf-8') as c:
json.dump(entries, c, ensure_ascii=False, indent=4)

print('完成')
...全文
36 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
month83 2019-02-16
  • 打赏
  • 举报
回复
相关文件下载
https://pan.baidu.com/s/1Sc1WagA7K15mu5A8L1saZw
作用:           静态/黑月编译后会生存同名的txt文件,内含 子程序名称,代码起始偏移,代码结束偏移;           根据以上文件,可以实现不在源码中做标记的情况下,进行发布版本的异常定位!           支持加壳定位,前提是子程序中的代码没有被加密壳混淆,如压缩壳与没有进行虚拟/变异处理的VMP壳等.           支持 易语言 模块中的子程序.           目前支持易语言5.90,因为是动态定位特征码,所以理论上相邻版本也可以用.           奉上源码与demo. 以文本形式输出是为了直观调试,易友们也可以修改成输出二进制文件或更友好的格式. 偏移相对于映像基址.如果是EXE一般为0x00400000,DLL不固定 ------------------------------------------------------------------------------------------------------------------------------------------------------- 前几天我在论坛上下载了个异常通知辅助模块(作者东灿,修改者QIQI) 配合工具效果还可以. 就是得添加一大堆代码来定位错误的函数名,不仅影响执行效率,还容易担心软件会被小白破解 正所谓不怕贼偷就怕贼惦记,所以我还是放弃使用他了. 这时候我就萌生出能不能写个把子程序名称和所在内存地址导出的插件. 也没花多少时间,在参考了小色开源的WonderWall插件后我终于确定了可行性! 第二天初版就写好了,经过几天的修改现在已经兼容黑月与静态编译. 本来想先发支持库,等我自己体验下,没得修改了再开源.主要是没有时间,干脆直接开源了.希望大神能完善完善. 现在可以支持定位到错误的子程序名以及调用者的子程序名.我相信还有进步空间,多敲几行代码可以定位到行号什么的. 我也不知道网上有没有类似这样的插件,但起码我没见过. 插件源码,成品以及demo源码

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧