因版本变动,新版本未开发完,老版本中有个写死的字符串有个别字要替换(设计缺陷)。
首先想到ildasm,将dll反编译成il。
通过源程序定位到需要修改的部分。
发现中文字符串在il中是十六进制字符。
通过几个编码工具比较,最终得出结论:中文经过unicode编码,并简单混淆。
如“你好”,unicode编码 是4F60 597D,在il中是 60 4F 7D 59
将需要替换的文字的编码倒装一下替换到il中。
保存il文件,重新编译,用vs命令行:
ilasm.exe /dll /resource=***.res ***.il
其中/dll是指编译成dll,/resouce资源文件(ildasm时自动生成)。
提供一个汉字unicode编码遍 http://www.chi2ko.com/tool/CJK.htm (ctrl+F查找)
摘抄、记录一些日常工作常见技巧。备忘而已。多数源于网络。
浙公网安备 33010602011771号