(200分)Ilasm.exe这个工具到底是怎么使用的,我的一打开一闪就没啦,咋回事?

wxm3630478 2011-03-16 10:58:10
有个C# 的DLL文件,我想修改一下里面的东西,没源码的

网上查拉:

用Ildasm.exe 转存成 IL文件,修改里面的代码....

然后用Ilasm.exe 工具 把IL转换成 DLL文件 (修改的代码找到啦,也修改啦,想测试下修改成功没有)


但是我的Ilasm.exe 打不开, 一闪就没啦!


咋回事,Ilasm.exe到底怎么使用的? (Ilasm.exe在我的C盘里搜索出4个,一个都不能使用)


破解高手怎么使用,还有其他的工具吗?


我是菜鸟啦昨天才开始研究这个玩意儿---------(200分奉上)
...全文
792 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
crackdung 2011-03-16
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 amandag 的回复:]
有了Reflector以后就不用ildasm了
[/Quote]


no.,,,你誤導別人
wxm3630478 2011-03-16
  • 打赏
  • 举报
回复
中午吃饭的时候结贴!
windxx 2011-03-16
  • 打赏
  • 举报
回复
200份引来了若干红星,呵呵
wxm3630478 2011-03-16
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 walkghost 的回复:]

引用 15 楼 wxm3630478 的回复:

引用 11 楼 amandag 的回复:

有了Reflector以后就不用ildasm了


我这里有Reflector,但是不能修改代码,是否要什么插件

看我在13楼的回答。
[/Quote]

谢谢你的热心回答
-------------------------------------------------
谢谢各位啦

Ilasm.exe 我知道怎么用啦?

Reflector要慢慢研究
walkghost 2011-03-16
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 wxm3630478 的回复:]

引用 11 楼 amandag 的回复:

有了Reflector以后就不用ildasm了


我这里有Reflector,但是不能修改代码,是否要什么插件
[/Quote]
看我在13楼的回答。
wxm3630478 2011-03-16
  • 打赏
  • 举报
回复
我先去看一看

刚看了下 Reflector 有导出源码的功能
wxm3630478 2011-03-16
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 amandag 的回复:]

有了Reflector以后就不用ildasm了
[/Quote]

我这里有Reflector,但是不能修改代码,是否要什么插件
walkghost 2011-03-16
  • 打赏
  • 举报
回复
另外,如果你能看懂IL,对你理解.Net的机制有一定的帮助,对写程序就大有裨益啦。
walkghost 2011-03-16
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 amandag 的回复:]

有了Reflector以后就不用ildasm了
[/Quote]
UP。我现在还用免费版,唉,做的好了,用的人多了,就开始收费了。
PS:Reflector如果再加上reflexil插件,更牛X。
walkghost 2011-03-16
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wxm3630478 的回复:]

ilasm.exe 是不是不能直接双击exe文件打开的?

要在Visual Studio 2008 命令提示 里面使用?
[/Quote]
命令行环境下运行就能看到执行结果了。
amandag 2011-03-16
  • 打赏
  • 举报
回复
有了Reflector以后就不用ildasm了
walkghost 2011-03-16
  • 打赏
  • 举报
回复
下面的 MSIL 代码示例对应于前面的 C# 代码示例。可使用 MSIL 汇编程序 (Ilasm.exe) 工具将此代码编译为程序集。MSIL 和 C# 代码示例都向控制台显示“Hello World!”。


// Metadata version: v2.0.50215
.assembly extern mscorlib
{
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
.ver 2:0:0:0
}
.assembly sample
{
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 )
.hash algorithm 0x00008004
.ver 0:0:0:0
}
.module sample.exe
// MVID: {A224F460-A049-4A03-9E71-80A36DBBBCD3}
.imagebase 0x00400000
.file alignment 0x00000200
.stackreserve 0x00100000
.subsystem 0x0003 // WINDOWS_CUI
.corflags 0x00000001 // ILONLY
// Image base: 0x02F20000


// =============== CLASS MEMBERS DECLARATION ===================

.class public auto ansi beforefieldinit Hello
extends [mscorlib]System.Object
{
.method public hidebysig static void Main(string[] args) cil managed
{
.entrypoint
// Code size 13 (0xd)
.maxstack 8
IL_0000: nop
IL_0001: ldstr "Hello World!"
IL_0006: call void [mscorlib]System.Console::WriteLine(string)
IL_000b: nop
IL_000c: ret
} // end of method Hello::Main

.method public hidebysig specialname rtspecialname
instance void .ctor() cil managed
{
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void [mscorlib]System.Object::.ctor()
IL_0006: ret
} // end of method Hello::.ctor

} // end of class Hello
wxm3630478 2011-03-16
  • 打赏
  • 举报
回复
ilasm.exe 是不是不能直接双击exe文件打开的?

要在Visual Studio 2008 命令提示 里面使用?
walkghost 2011-03-16
  • 打赏
  • 举报
回复

using System;
public class Hello
{
public static void Main(String[] args)
{
Console.WriteLine("Hello World!");
}
}


宝_爸 2011-03-16
  • 打赏
  • 举报
回复
或者用.NET Reflector

刚去官网上看了下新的7.0居然要35刀。

lz去找找以前免费的版本吧
walkghost 2011-03-16
  • 打赏
  • 举报
回复
MSIL 汇编程序有助于工具供应商设计和实现 MSIL 生成器。通过使用 Ilasm.exe,工具和编译器开发人员可以专注于生成 MSIL 和元数据,而无需考虑以 PE 文件格式发出 MSIL。

与面向运行库的其他编译器(如 C# 和 Visual Basic)类似,Ilasm.exe 不产生中间对象文件,并且不需要链接阶段即可形成 PE 文件。

MSIL 汇编程序可以表达以运行库为目标的编程语言的所有现有元数据和 MSIL 功能。这使得用上面任何编程语言编写的托管代码都可以在 MSIL 汇编程序中充分表达并且可以用 Ilasm.exe 编译。

可以将 Ilasm.exe 同它的伙伴工具 Ildasm.exe 一起使用。Ildasm.exe 采用包含 MSIL 代码的 PE 文件并创建相应的文本文件作为 Ilasm.exe 的输入。这很有用,例如当编译用并非支持所有运行库元数据属性的编程语言编写的代码时。通过 Ildasm.exe 编译该代码并运行输出后,可以手动编辑结果 MSIL 文本文件以添加缺少的属性。然后可以通过 Ilasm.exe 运行此文本文件以生成最终的可执行文件。

也可以使用此方法从最初由不同的编译器生成的数个 PE 文件生成一个 PE 文件。
Note注意

目前,无法对包含嵌入的本机代码的 PE 文件(例如,由 Visual C++ 生成的 PE 文件)使用此技术。

为使 Ildasm.exe 和 Ilasm.exe 的这种组合使用尽可能准确,此汇编程序不执行某些简单的优化,即不推断是使用短格式指令还是使用长格式指令。例如,此工具不会尝试确定它是否可以用短编码替换长编码,这些长编码可能是在 MSIL 源中编写的,也可能是由其他编译器发出的。如果需要短编码,则必须显式编写该格式。但是,此汇编程序在可能的情况下,还是会检查是否有超出范围的条件。
Note注意

Ildasm.exe 只对磁盘上的文件进行操作。它不对安装在全局程序集缓存中的文件进行操作。

有关 MSIL 的语法的更多信息,请参见 .NET Framework SDK 中的 asmparse.grammar 文件。
示例

下面的命令对 MSIL 文件 myTestFile.il 进行汇编并产生可执行文件 myTestFile.exe.


ilasm myTestFile

下面的命令对 MSIL 文件 myTestFile.il 进行汇编并产生 .dll 文件 myTestFile.dll。


ilasm myTestFile /dll

下面的命令对 MSIL 文件 myTestFile.il 进行汇编并产生 .dll 文件 myNewTestFile.dll。


ilasm myTestFile /dll /output:myNewTestFile.dll

下面的代码示例演示一个向控制台显示“Hello World!”的极其简单的应用程序。可编译此代码,然后使用 Ildasm.exe 工具生成 MSIL 文件。
离洛 2011-03-16
  • 打赏
  • 举报
回复

没用过这个工具
宝_爸 2011-03-16
  • 打赏
  • 举报
回复
在Visual Studio 2008 Command Prompt (在开始菜单里Visual studio 2008下找,或者其他版本)里面
直接敲ildasm就可以了。

crackdung 2011-03-16
  • 打赏
  • 举报
回复
在黑屏使用,就像你的簽名一樣,黑你沒商量
加载更多回复(1)

110,552

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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