欢迎光临

木子屋

标题: ILdasm+ILasm修改.NET应用程序示例

作者: dnawo

日期: 2011-07-20 11:57 AM

分类: 网络破解

内容: 假如有个.NET控制台应用程序，功能是让用户输入一个用户名并判断是否有效用户：
现在我们想修改下，不管用户输入什么用户名都返回是有效的。在Reflector中打开应用程序，发现作者没有对源代码进行加密/混淆，并且判断逻辑由CheckUser函数完成：
好了，这样子我们就可以使用ILdasm+ILasm对其进行修改了。
一、使用ILdasm将exe文件反编译为IL代码
打开VS2008命令行工具，执行如下命令：
复制内容到剪贴板 程序代码D:\Program Files\Microsoft Visual Studio 9.0\VC>ildasm /out=f:\test\ConsoleApplication1.il f:\test\ConsoleApplication1.exe
将会生成ConsoleApplication1.res和ConsoleApplication1.il两个文件。
二、IL代码修改
用记事本打开ConsoleApplication1.il文件，找到如下内容：
复制内容到剪贴板 程序代码.method private hidebysig static bool CheckUser(string username) cil managed
{
// 代码大小 17 (0x11)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldstr "admin"
IL_0006: call bool [mscorlib]System.String::op_Equality(string,
string)
IL_000b: brfalse.s IL_000f
IL_000d: ldc.i4.1
IL_000e: ret
IL_000f: ldc.i4.0
IL_0010: ret
} // end of method Program::CheckUser
修改第IL_000f行内容并保存：
复制内容到剪贴板 程序代码IL_000f: ldc.i4.1
三、使用ILasm将IL代码编译成exe文件
在VS2008命令行工具执行如下命令：
复制内容到剪贴板 程序代码D:\Program Files\Microsoft Visual Studio 9.0\VC>ilasm /resource=f:\test\ConsoleApplication1.res /output=f:\test\ConsoleApplication2.exe /exe f:\test\ConsoleApplication1.il
Microsoft (R) .NET Framework IL Assembler. Version 2.0.50727.4927
Copyright (c) Microsoft Corporation. All rights reserved.
Assembling 'f:\test\ConsoleApplication1.il' to EXE --> 'f:\test\ConsoleApplication2.exe'
Source file is ANSI
Assembled method ConsoleApplication1.Program::Main
Assembled method ConsoleApplication1.Program::CheckUser
Assembled method ConsoleApplication1.Program::.ctor
Assembled method ConsoleApplication1.Properties.Settings::get_Default
Assembled method ConsoleApplication1.Properties.Settings::.ctor
Assembled method ConsoleApplication1.Properties.Settings::.cctor
Creating PE file
Emitting classes:
Class 1: ConsoleApplication1.Program
Class 2: ConsoleApplication1.Properties.Settings
Emitting fields and methods:
Global
Class 1 Methods: 3;
Class 2 Fields: 1; Methods: 3;
Resolving local member refs: 5 -> 5 defs, 0 refs, 0 unresolved
Emitting events and properties:
Global
Class 1
Class 2 Props: 1;
Resolving local member refs: 0 -> 0 defs, 0 refs, 0 unresolved
Writing PE file
Operation completed successfully
结果生成一个ConsoleApplication2.exe文件，运行看下：
可以了

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.727 ms

返回

标题: ILdasm+ILasm修改.NET应用程序示例

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.727 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.754 ms

返回