如何用工具修改ildasm.exe导出的资源文件中的强名称PublicKeyToken

Go 旅城通票 2016-12-07 05:36:02
  不懂描述得对不对,最近研究IL,用ildasm导出的文件会包含“文件名.g.resources”的资源文件,并且里面包含了强名称(如下图所示)
ILSPY中显示的PublicKeyToken



文件名.g.resources”的资源文件包含的PublicKeyToken

  如果用记事本打开“文件名.g.resources”后替换掉强命为自己生成的强名称PublicKeyToken后,再用ilasm编译为dll或者exe,发现资源文件没有编译进入dll或者exe文件中,丢失了。

  虽然可以16进制编辑器对编译后的文件进行替换,但是这样比较伤眼睛,而且不小心打错字母又得重头来过。所以问下各位老大有没有好的工具可以直接修改resources里面的PublicKeyToken内容的。
...全文
2269 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Go 旅城通票 2016-12-08
  • 打赏
  • 举报
回复
谢谢各位,搞定了。。直接File.ReadAllBytes,然后字节数组匹配查找,然后替换掉PublicKeyToken的值就行了,最后File.WriteAllBytes写会。。等我整好发个下载链接,可以替换强命和里面资源的PublicKeyToken的
Go 旅城通票 2016-12-08
  • 打赏
  • 举报
回复
引用 13 楼 caozhy 的回复:
蟹腰~这个我也不是很清楚。因为签名本身就是验证用户身份的,需要证书和私钥。 http://blog.csdn.net/bobwu/article/details/7448608 不过这个工具可以方便你重新反编译得到整个项目。
谢谢。。~
threenewbee 2016-12-07
  • 打赏
  • 举报
回复
蟹腰~这个我也不是很清楚。因为签名本身就是验证用户身份的,需要证书和私钥。 http://blog.csdn.net/bobwu/article/details/7448608 不过这个工具可以方便你重新反编译得到整个项目。
Go 旅城通票 2016-12-07
  • 打赏
  • 举报
回复
引用 11 楼 save4me 的回复:
微软的这个工具可以吗? Replace Public Key Token Utility
谢谢,我试试。。那个程序是wpf做的。。看到了类似的代码 xxx.StartupUri =new Uri("xxxxxx.xaml", UriKind.Relative) xxxxxx.xaml对应ilspy里面的xxxxxx.baml资源,类似xml配置界面的,然后根节点有强命。 xmlns:gsc="clr-namespace:程序及名称;assembly=程序及名称,Version=1.0.9.8,Culture=neutral,PublicKeyToken=214ae955ed8e0be9" 类似的代码。。没弄过wpf,wpf可以给资源文件xaml文件加强命,厉害。。
save4me 2016-12-07
  • 打赏
  • 举报
回复
微软的这个工具可以吗? Replace Public Key Token Utility
Go 旅城通票 2016-12-07
  • 打赏
  • 举报
回复
引用 7 楼 qq_29594393 的回复:
看到bobo来发帖,过来顶一下
Go 旅城通票 2016-12-07
  • 打赏
  • 举报
回复
引用 3 楼 starfd 的回复:
IL反编译源代码 或者你既然能通过16进制编辑器找到位置,那是否可以将这个过程自己写代码实现
好像有搞。。用File.ReadAllBytes,操作2进制不懂得不得,试试。。
Go 旅城通票 2016-12-07
  • 打赏
  • 举报
回复
引用 6 楼 shen_wei 的回复:
反编译的话,很多程序都是多次加密加壳的。。不知道你有没有脱壳??? 不然的话这样大规模替换都是错误的。。。
用了dotnet专门的工具de4dot试了,没法脱壳。。。。算法都检查不出来
当作看不见 2016-12-07
  • 打赏
  • 举报
回复
看到bobo来发帖,过来顶一下
shen_wei 2016-12-07
  • 打赏
  • 举报
回复
反编译的话,很多程序都是多次加密加壳的。。不知道你有没有脱壳??? 不然的话这样大规模替换都是错误的。。。
Go 旅城通票 2016-12-07
  • 打赏
  • 举报
回复
他那个代码是加壳混淆过的,而且人工修改过il代码再加的强命,用de4dot无法反混淆,检查不出混淆算法。。,也是牛人编写这个的。。 所以才拿这个来研究il破解。。
Go 旅城通票 2016-12-07
  • 打赏
  • 举报
回复
引用 3 楼 starfd 的回复:
IL反编译源代码 或者你既然能通过16进制编辑器找到位置,那是否可以将这个过程自己写代码实现
通过C#调用16进制编辑器?这个有点难搞
  • 打赏
  • 举报
回复
IL反编译源代码 或者你既然能通过16进制编辑器找到位置,那是否可以将这个过程自己写代码实现
Go 旅城通票 2016-12-07
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
要修改key干嘛?你有源代码直接编译,然后用你要的key编译不就行了?
没源代码,拿别人的来开刀
  • 打赏
  • 举报
回复
要修改key干嘛?你有源代码直接编译,然后用你要的key编译不就行了?

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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