首页
社区
课程
招聘
[原创].net的joke me
2007-3-21 23:47 9959

[原创].net的joke me

2007-3-21 23:47
9959
joke me是偶发明的名字,呵呵

功能:让Reflector查看时失效(见后图)
你的任务:让Reflector能查看这个exe文件。
提示:利用ildasm和ilasm再编译成的exe确实可以被Reflector查看,但你还需要找到无法查看的原因。这样,在面对一些无法进行反编译再编译的程序时,你才能利用Reflector直接分析。

看看大家玩的情况如何,然后公布答案,不过有人提前公布最好:)


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 7
打赏
分享
最新回复 (10)
雪    币: 1969
活跃值: (46)
能力值: (RANK:550 )
在线值:
发帖
回帖
粉丝
hawking 12 2007-3-22 09:33
2
0
.net的东东要试试
将文件偏移位置 336h、337h 处的两个 FF FF 字节替换成 00 00 即可在reflector中正常显示。
雪    币: 5276
活跃值: (406)
能力值: (RANK:1170 )
在线值:
发帖
回帖
粉丝
tankaiha 29 2007-3-22 10:52
3
0
靠,如此之快呵。应该是文件比较出来的吧!呵呵。hawking说下过程,然后偶晚上回来也说一下。(白天学驾驶,上不了网喽。)
雪    币: 1969
活跃值: (46)
能力值: (RANK:550 )
在线值:
发帖
回帖
粉丝
hawking 12 2007-3-22 10:54
4
0
确实是比较出来的
这两个字节是MetaData表中token = 0x02000001的.<Module> TypeDef中的Extends值
TypeDef Table
Each row represents a class in the current assembly.
Columns:
Flags (a 4-byte bit mask of type TypeAttributes). 
TypeName (index into String heap). 
TypeNamespace (index into String heap). 
[COLOR=deeppink]Extends (index into TypeDef, TypeRef or TypeSpec table; more precisely, a TypeDefOrRef coded index). [/COLOR]
FieldList (index into Field table; it marks the first of a continuous run of fields owned by this type). The run continues to the smaller of: 
the last row of the Field table. 
the next run of Fields, found by inspecting the FieldList of the next row in this TypeDef table. 
MethodList (index into MethodDef table; it marks the first of a continuous run of methods owned by this type). The run continues to the smaller of: 
the last row of the MethodDef table. 
the next run of Methods, found by inspecting the MethodList of the next row in this TypeDef table. 

从上面的资料可以看出,Extends代表一个继承对象,指到 TypeDef 或者 TypeRef ?的另一个 class。 其值是一个index,而tankaiha给出的程序中这个值是FFFF,如果我没理解错的话,应该可以看成-1,这里引起了reflector数组超界,但reflector程序本身没有对这种异常加以处理,这就导致了相关信息不能正确显示。(Index was outside the bounds of the array.System.IndexOutOfRangeException)
从这里可以推断,只要修改元数据表中的任一个index值,使其为-1,都应该能引起reflector异常。
雪    币: 1969
活跃值: (46)
能力值: (RANK:550 )
在线值:
发帖
回帖
粉丝
hawking 12 2007-3-22 12:36
5
0
The .NET File Format
http://www.codeproject.com/dotnet/dotnetformat.asp?df=100&forumid=252054&exp=0&select=1333264
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
笨笨雄 14 2007-3-22 13:06
6
0
在没有正确文件对比的情况下,遇到一个未知ANTI如何解决?
。NET貌似没有调试器?
雪    币: 5276
活跃值: (406)
能力值: (RANK:1170 )
在线值:
发帖
回帖
粉丝
tankaiha 29 2007-3-22 20:35
7
0
呵呵,是的,不过别的类修改的话应该会在运行时报错,而修改Module的Extends不会。

这个保护出自一个.net混淆器对程序的加密,加密中有一选项叫“加入错误的元数据”。

用.net SDK自带的peverify.exe可以很容易定位,运行peverify xxx.exe /md /hresult可以显示得非常清楚。

调试器有,不过现在的保护下,调试器大多不好用,除了OD本地调试,比较累。
雪    币: 1969
活跃值: (46)
能力值: (RANK:550 )
在线值:
发帖
回帖
粉丝
hawking 12 2007-3-22 21:18
8
0
学习了
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
笨笨雄 14 2007-3-23 19:21
9
0
留个标记以后学
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
luckyray 2007-5-24 09:42
10
0
不过这种保护很弱啊——Dis#就可以直接查看~
雪    币: 5276
活跃值: (406)
能力值: (RANK:1170 )
在线值:
发帖
回帖
粉丝
tankaiha 29 2007-5-24 21:47
11
0
呵呵,本来就不是什么保护手段,所以才叫joke。但厂家在卖给消费者的时候可不会这么说,呵呵。
游客
登录 | 注册 方可回帖
返回