首页
社区
课程
招聘
[旧帖] [求助].net程序的修改方法 0.00雪花
发表于: 2007-8-19 21:08 3718

[旧帖] [求助].net程序的修改方法 0.00雪花

2007-8-19 21:08
3718
最近在尝试修改一个.net程序的dll文件。看过一些教程自己动手改了一下老是报错。比如类似
((((用UltraEdit打开asc.exe,这里要定位该代码的位置。可以在Reflector中将显示语言改为IL,寻找一段特别的指令序列,我选择了L_003f到L_0043的五条指令,对应的十六进制数据是"00 00 06 16 1B"。在UltraEdit中搜索这个数据,可以确定唯一的位置在000522a0h处。

00052290h: 00 70 16 28 A6 00 00 0A 16 FE 01 60 2C 11 16 80 ;
000522a0h: 3B 00 00 04 00 38 8B 00 00 00 38 85 00 00 00 00 ;
000522b0h: 00 06 16 1B 6F 5A 01 00 0A 0C 06 1C 1B 6F 5A 01 ;

其中0005229eh处的16对应idc.i4.0,80对应stsfld,后面的3b 00 00 04则应该是blnRegistered的标识。将16改为17,既idc.i4.1,保存修改。)))
我也有个dll要改一些代码如下
L_0000: ldarg.0
    L_0001: ldfld string VertikalSystems.License.s::c
    L_0006: call string VertikalSystems.License.c::f()
    L_000b: call bool [mscorlib]System.String::op_Equality(string, string)
    L_0010: brfalse.s L_0051
    L_0012: ldarg.0
    L_0013: ldfld string VertikalSystems.License.s::a
    L_0018: call string VertikalSystems.License.c::e()
    L_001d: call bool [mscorlib]System.String::op_Equality(string, string)
    L_0022: brfalse.s L_0051
    L_0024: ldarg.0
    L_0025: ldfld class [mscorlib]System.Version VertikalSystems.License.s::b
    L_002a: callvirt instance int32 [mscorlib]System.Version::get_Major()
    L_002f: call class [mscorlib]System.Version VertikalSystems.License.c::d()
    L_0034: callvirt instance int32 [mscorlib]System.Version::get_Major()
    L_0039: blt.s L_0051
    L_003b: ldarg.0
    L_003c: ldfld class VertikalSystems.License.t VertikalSystems.License.a::b
    L_0041: brfalse.s L_004f
    L_0043: ldarg.0
    L_0044: ldfld class VertikalSystems.License.t VertikalSystems.License.a::b
    L_0049: callvirt instance bool VertikalSystems.License.t::c()
    L_004e: ret
    L_004f: ldc.i4.1
    L_0050: ret
    L_0051: ldc.i4.0
    L_0052: ret
}
我想改0051: ldc.i4.0 为ldc.i4.1
请问如何改??

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 5275
活跃值: (451)
能力值: (RANK:1170 )
在线值:
发帖
回帖
粉丝
2
老大,你自己不都把答案写出来了吗
2007-8-20 09:13
0
游客
登录 | 注册 方可回帖
返回
//