ildasm破解和用ilasm来重新编译VB.NET程序

(1)程序员用高级OO语言(C#,VB.NET,VC.Net,Cobol,Python……)编写代码,这些代码经过。Net编译器(比如Visual Studio.Net),编译成统一的MSIL(Microsoft Intermediate Language)。NET应用程序是以MSIL的形式出现的,只有在程序执行的时候才通过即时编译器JIT(Just-In-Time)被编译为本机代码。

(2)程序执行的时候,由JIT装入程序的MSIL,JIT同时作了很多其他的工作(装载相应的运行库,安全检测……) 最后JIT将转化成本地机器码(EXE或者DLL)。

(3)本地机器码被装入内存,开始执行。

就是通过这几个步骤,。net实现了编程语言无关(都转化成MSIL);平台无关(执行的时候根据本地配置,生成相应的机器码);安全性(JIT里面做了很多检测)。

作为Cracker,可以用。Net Framework SDK自带的工具进行MSIL和EXE(DLL)之间的互换:利用FrameworkSDK\Bin\目录下的ilasm和ildasm(1)ilasm示例:下面的命令对 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(2)ildasm示例下面的命令使 PE 文件 MyHello.exe 的元数据和反汇编代码显示在 Ildasm.exe 的默认 GUI 中。

ildasm myHello.exe下面的命令对 MyFile.exe 文件进行反汇编,并将结果 MSIL 汇编程程序文本存储在 MyFile.il 文件中。

ildasm MyFile.exe /output:MyFile.il下面的命令对 MyFile.exe 文件进行反汇编,并将结果 MSIL 汇编程序文本显示到控制台窗口中。

ildasm MyFile.exe /text如果文件 MyApp.exe 包含嵌入的托管和非托管资源,则下面的命令将产生以下 4 个文件:MyApp.il、MyApp.res、Icons.resources 和 Message.resources:ildasm MyApp.exe /output:MyApp.il下面的命令对 MyFile.exe 的 MyClass 类中的 MyMethod 方法进行反汇编,并将输出显示到控制台窗口中。

ildasm /item:MyClass::MyMethod MyFile.exe /text在上面的示例中,可能有几个具有不同签名的 MyMethod 方法。下面的命令对返回类型为 void 且带有参数 int32 和 System.string 的MyMethod 方法进行反汇编。

ildasm /item:"MyClass::MyMethod(void(int32,class System.String))" MyFile.exe /text

时间: 2024-10-30 04:59:00

ildasm破解和用ilasm来重新编译VB.NET程序的相关文章

巧用ASP.NET预编译Web应用程序规避调用延迟的方法_实用技巧

自从ASP.NET面市以来,开发人员一直都在要求(微软)出台一个解决办法,而ASP.NET 2.0利用预编译提供了一个有效的解决方案. 预编译选项 在首次启动应用程序的时候,ASP.NET会动态地分析和编译所有的ASP.NET文件(aspx页面).运行环境要对编译的结果进行缓冲,以便更好地服务未来所有的请求. 在服务器重启或者Web服务器重启之后,第一次启动应用程序也意味着这一过程要重新开始.而且,对应用程序任何文件的改变都会被系统检测到,而在文件发生改变之后首次运行应用程序也会让这一过程再次发

iostream-请大神一看!使用tinyxml编译出来的程序运行时的错误!

问题描述 请大神一看!使用tinyxml编译出来的程序运行时的错误! 因为是新手刚学习tinyxml,所以谢了个生成xml文件的cpp试试,编译时没问题,但是程序运行时会出现:xml: malloc.c:2395: sysmalloc: Assertion `(old_top == initial_top (av) && old_size == 0) || ((unsigned long) (old_size) >= MINSIZE && prev_inuse (ol

亲测VS2010纯静态编译QT4.8.2,实现VS2010编译调试Qt程序

      下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.2.zip,不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0-vs2010.exe,这些版本都只是动态编译的,不是我们所需要的.只有用源码包才能做真正的纯静态编译,如果用Qt官网已编译的标准库.exe文件进行编译,有可能出现各种错误,而且编译后的文件巨大,我当时就在这里绕了很大的弯子,请童鞋们注意啦!!可能有些老鸟会笑话,但我本着最严肃的态度告诉菜

c语言-关于C语言编译C51单片机程序的一点疑问

问题描述 关于C语言编译C51单片机程序的一点疑问 1.为什么两段不相干的代码会互相影响 在主程序里有一段点亮发光二极管的代码,和一段计数器计数并在数码管上显示的代码.同时工作时,二极管正常点亮,数码管几秒才点亮一回,而且十位显示是闪烁一下就不显示了2.数码管显示时,位选和段选顺序不能改变吗?按照书上的方法是先段选再位选,但是点亮的数码管是本来不应该点亮的,段选和位选顺序换了之后就能正常显示了 解决方案 问题1)你所谓的同时工作是指led亮的同时数码管也在显示,是这样的吗?单片机跑的程序都是单线

安卓开发-编译好的程序无法在手机或模拟器中调试

问题描述 编译好的程序无法在手机或模拟器中调试 程序如图所示,也已经将layout添加进manifest,程序却依然无法运行 另外,在创建android新工程时,系统也没有总动创建main_activity 文件 下图分别为主程序与layout文件开发-编译好的程序无法在手机或模拟器中调试-安卓开发模拟器调试"> 下图为控制台输出 解决方案 http://www.cnblogs.com/jxgxy/p/3669554.html 解决方案二: 出现这个的原因我想是因为你没有在AndroidM

如何在linux 32位机器编译64位程序

编译64位程序,不一定要编译机器是64位的,但是32位机器默认安装的gcc编译环境还是不能用来编译64位程序. 编译64位程序,需要加上-m64编译器参数,默认安装的gcc已经支持该参数,但是缺少64位机器指令相关的文件,所以不能编译,会出现下面的错误 [plain] view plain copy   In file included from /usr/include/features.h:378,                    from /usr/include/assert.h:

qte4 5 3-qte4.5.3编译opencv显示图像程序出错

问题描述 qte4.5.3编译opencv显示图像程序出错 用qte4.5.3 make一个简单的opencv显示图像程序时,出现错误:/usr/local/lib/libopencv_calib3d.so:could not read symbols:Invalid operation 具体的.pro工程文件如下: QT+= core QT-=gui TARGET=opencvqt // 工程文件名 CONFIG+=console CONFIG-=app_bundle CONFIG+=link

定位-编译的小程序无法正常打开

问题描述 编译的小程序无法正常打开 老师编了一个封装的小程序,我运行时提醒"无法定位序数4820于动态链接库+程序地址",这是什么原因??怎么解决??? 解决方案 动态链接库提示是哪个呢? 出现这个问题主要是开发机与测试机的动态链接库版本不一致引起的 解决办法:在开发机中查找动态库MFC90.DLL的位置,将其复制到测试机的相同路径的文件夹下就OK了!! 解决方案二: 无法定位动态链接库的原因 1.病毒木马导致的,比较典型的病毒是绑架类木马,它是一种新型破坏性极强的木马与传统病毒不同,

vc++-VC++运行时,编译提示应用程序MSPDB60.DLL为无效的WINDOWS映像

问题描述 VC++运行时,编译提示应用程序MSPDB60.DLL为无效的WINDOWS映像 安装Visual Studio的时候没有提示报错,但是对程序进行编译时,提示应用程序MSPDB60.DLL为无效的WINDOWS映像,请再检测一次安装盘.按照网上说的方法将MSPDB60.DLL拷贝到system32文件夹下,并进行注册时提示loadlibrary(mspdb60.dll)失败,找不到. 第一次遇到这个问题,我重装了系统,再次安装先装的Visual Studio,这回是可以用的,但开机重启