200分:如何解决ilasm打包超过2000个资源文件到DLL时出错?

changechange 2010-10-16 10:00:06
200分:如何解决ilasm打包超过2000个资源文件到DLL时出错?

现在有个DLL,需要对DLL里面的几个 JS 文件 GIF 文件进行修改。我用

"C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\ildasm.exe" /out=C:\extfiles\carpaerp.il C:\WeWaySoft\Program\bin\carpaerp.dll

语句对 DLL 进行了解包,成功。具体文件名列表请看:大家可以看到是不分目录存放的,1500多个资源文件全部存放在一个目录中。

然后我用

"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\ilasm.exe" /resource="C:\ilsam\carpaerp.res" /dll /output=Carp1.dll "c:\ilsam\carpaerp.il"

语句进行打包,但是提示:

Method Implementations (total): 5
Resolving local member refs: 0 -> 0 defs, 0 refs, 0 unresolved
Error: failed to read expected 177481224 bytes from mgd resource file 'c:\ilsam\
CarpaERP.images.down.png'

但是我查看了目录,该文件的确存在,后来查了一些英文资料,说 ilasm.exe 包含的资源文件不能超过1024个,于是我手动编辑 carpaerp.il 文件,减少

.mresource public CarpaERP.Stat.QueryTypeBuyInput.gspx
{
// Offset: 0x00050868 Length: 0x00000D12
// 警告: 创建了托管资源文件 CarpaERP.Stat.QueryTypeBuyInput.gspx
}

这样的文件,到1024个,再编译打包,果然成功的生成了一个 DLL,但是如果我增加一个,到1025个 .mresource 文件,再执行编译,果然又不通过,而且提示与前面的错误提示一模一样。

另,我用 Reflector FileDisassembler 导出 DLL 中的文件时,它都是按分目录存放文件的。


提问!:如何用ilasm打包超过2000个资源文件到DLL中。
或者
提问!:如何修改 .il 文件,让他能使用分目录存放的资源文件进行编译到 DLL 的工作?

如果能够解决,另外100分在以下链接:
http://topic.csdn.net/u/20101016/21/5390a537-4fb7-4caf-8a42-b7785d69f37c.html?98345
...全文
327 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
changechange 2010-10-19
  • 打赏
  • 举报
回复
这200分就由 crackdung 和
fangxinggood 两位高手获得吧。
changechange 2010-10-19
  • 打赏
  • 举报
回复
DLL 已经通过邮件发送给 CRACKDUNG 了,给出的指导是:还是用 VS 对项目进行编译,手动修改反编译产生的包含非法字符的变量名,然后再编译就可以了,修改了大概 800处左右的问题,现在 DLL 正在测试。
crackdung 2010-10-17
  • 打赏
  • 举报
回复
同时你可以导出到vs项目,修改更为方便,前提没有混淆,没有dll之间引用,如果反之也要修改很多地方
crackdung 2010-10-17
  • 打赏
  • 举报
回复
如果大于1024 个文件的,你可以修改ilasm,

如果大于10mb就会麻烦些
crackdung 2010-10-17
  • 打赏
  • 举报
回复
请提供dll测试
机器人 2010-10-17
  • 打赏
  • 举报
回复
我也想知道怎么修改ilasm使之对于超过1024个文件有效的?
changechange 2010-10-17
  • 打赏
  • 举报
回复
如果大于1024 个文件的,你可以修改ilasm,---------------如何修改,能否提供操作细节。我是做 数据库的,对 .NET 不熟悉。
changechange 2010-10-16
  • 打赏
  • 举报
回复
另外,有没有可能专门建立一个项目,然后建立resx文件,然后再将文件与dll一起打包呢?
changechange 2010-10-16
  • 打赏
  • 举报
回复
目前这个 DLL 文件体积小于 8MB。另外如何能够修改资源和 JS 文件?能否在这里告知或者发邮件给我:access911@gmail.com 也行。

我不仅仅是修改,会要添加文件进去的。



如果资源分开存放,ilasm不能编译,如果的文件,你可以指定绝对路径,----------如何指定路径?目前我指看到一个 .il 文件的内容我可以修改,请问如何修改为绝对路径?有具体语法示例么?

我看到的都是:
.mresource public CarpaERP.Stat.QueryTypeBuyInput.gspx
{
// Offset: 0x00050868 Length: 0x00000D12
// 警告: 创建了托管资源文件 CarpaERP.Stat.QueryTypeBuyInput.gspx
}

这样的段落,如何对其添加路径呢?或者添加路径还在其他地方?请帮助,分不够再加。
crackdung 2010-10-16
  • 打赏
  • 举报
回复
1,估计没人能帮助解决这个问题。
,2,ilasm 打包超过10mb的已经不能成功了。
,3,如果资源分开存放,ilasm不能编译,如果的文件,你可以指定绝对路径,但是相对路径,你必须编写辅助功能,例如bat。
,4,不需要转存,也可以修改资源和js相应内容。


my blog
http://ufo-crackerx.blog.163.com/

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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