能力值:
(RANK:1170 )
|
-
-
101 楼
试试WinDBG+SOS呢
(我没试,只是提一下)
这个问题,可以用IDA反编译mscorwks(反编译时加载pdb),完成后导出MAP文件,在OD中读入,就可以显示API的名称了。不过mscorlib可能不行,因为是托管的。
|
能力值:
(RANK:280 )
|
-
-
102 楼
加油 好好利用这个周末
|
能力值:
( LV4,RANK:50 )
|
-
-
103 楼
如果感觉做注册机太难,那就试一下 找出序列号并分析保护机制,不要忘记本题是有两个要求的啊.
|
能力值:
( LV10,RANK:170 )
|
-
-
104 楼
|
能力值:
( LV10,RANK:170 )
|
-
-
105 楼
好方法!赞一个!
只是,自己IDA不会用,如果你方便,帮我生成一个mscorwks.map好吗?谢谢!
|
能力值:
(RANK:280 )
|
-
-
106 楼
恭喜恭喜
|
能力值:
( LV10,RANK:170 )
|
-
-
107 楼
谢谢!
在这里学到不少。
我以前走了弯路,分析得太细。
后来听你们说,只找数据,才走出那个弯。。
|
能力值:
(RANK:280 )
|
-
-
108 楼
OD .NET和pcode都一样,如果每个call都进去会累死的,所以该跑的时候一定要跑,该停的时候再停
|
能力值:
( LV10,RANK:170 )
|
-
-
109 楼
真的好累。而且每个call都累。。
不过,这题有一个CALL必须得跟到系统API,要不然,根本不知道什么意思。
|
能力值:
(RANK:280 )
|
-
-
110 楼
呵呵,坚持到底,不还是胜利了吗,毛主席说得好啊,我们要打持久战
|
能力值:
( LV2,RANK:10 )
|
-
-
111 楼
我怎么下载后打不开 说什么初始化失败之类的 谢谢
|
能力值:
( LV10,RANK:170 )
|
-
-
112 楼
这是.net的程序,你没有安装.net框架。
|
能力值:
( LV4,RANK:50 )
|
-
-
113 楼
哈哈,又有其他人搞出来了,加油啊
|
能力值:
( LV9,RANK:230 )
|
-
-
114 楼
这就是差距啊!
还看不到希望的曙光。
收获就是对OD的研究和细节体会更深了。
对.NET有了许多直观的理解,基本了解了个框架。
今晚再尝试一下,看看运气!
|
能力值:
(RANK:280 )
|
-
-
115 楼
多玩玩感觉就出来了,加油,祝好运,
|
能力值:
( LV9,RANK:230 )
|
-
-
116 楼
昨夜跟到两点多,只是理解了沙金开始的苦恼。对他们的对话,我能理解其含义,也能体会
他们成功背后的辛苦。
但要成功追码,对我来说,可能要比他们付出更更多的精力。今天认输放弃了。
对mstwugui的跟踪能力和效率是真佩服,你跟过了就知道他的恐怖了。
回顾一下,收获还是满多的。对几位大侠对于原始追码的精辟讨论,对我的受益和影响是深远的。
在此感谢大侠们的坦诚和宽阔胸怀。
tankaiha :
.net破解,其实搞深了还是win32,只不过要知道一些.net的结构。就像逆向C++程序时,得知道C++类在内存中的布局吧,.net也一样,就是知道元数据在内存中的布局。.net连接了高级语言(如C#)和底层系统,因此逆向时,可上可下。
这句话很精炼,是破解经验的高度升华。
我简单谈谈对这个作品的兼容性问题的一些探讨。
反静态汇编手段的系统兼容性问题。我个人认为有。因为我对此有前后对比的实际体会,也曾经多次跟踪探寻。我认为出错的那段代码,在我运行正常的机器里再次调试,发现系统依然对其识别出错。不同的是在net framework 3.5的环境里,对这个错误进行了类似忽略的处理;而在net framework 2.0的环境里却把这个当成了恐怖活动而迅速地终结。换句话说,net framework 3.5对这类错误采取了宽容的态度,似乎是微软在后期默许了这种保护静态汇编的小伎俩。
对于此,看.NET逆向大侠的精辟论述:
tankaiha :
可能有两个原因:
1)crackme加密的程序本身有兼容性问题。(不过.net 2.0应该就能运行,可能性不大)
2)crackme是有反调试机制的,且是抛出异常的形式,因此有可能是运行了反编译或调试器导致的。
许多朋友运行不正常。我个人的理解是资源的冲突问题。冲突的根源是.NET程序的耗资源特性,这恐怕与它分段频繁解码的加密强度有关吧。其解码的过程占用的内存资源是令我吃惊的(这么简单的CRACK ME)。
在我的调试中,我感触深刻。越跟到后面,mstwugui反映的“占用内存比较大的程序运行时就可能会出错退出”的问题就越突出和频繁。于是我想到了内存的问题,加了一个G的内存,情况得到了极大的改善。那么,还有的问题在哪呢?系统的虚拟内存分配最好由系统自动分配,C盘的剩余空间最好大于1.5G。后台运行的不必要程序最好全退出。我的电脑虚拟内存分配是自定义的(某些游戏的需要),改为系统自动后,与输入法冲突的问题消失了。对于那个无声退出的系统,我进行了资源的优化设置后,加了内存后,运行正常。
这里,我就想到了另一个问题:MAXtocode号称目前加密强度世界最强。那么它的耗资源特点引起的系统兼容性问题是不是存在呢?我个人理解,国外的同类软件加密强度比不上它,最大的原因就是他们更多地注重系统兼容性问题的解决吧。一时的想法,MAXtocode的作者JansonNET莫怪!
当然,有很少部分的人确实是反调试的原因。
|
能力值:
( LV10,RANK:170 )
|
-
-
117 楼
看了nba2005大牛的分析,倍感惭愧!
说真的,我在分析这个crackme时,有很大的运气成分。
对于内存占用大的情况,我没有去分析,凭感觉是反调试作怪。
当我在找不到API名字时,试过很多调试程序,如:od2.0b
一加载,内存会占用3G以上。 就算看雪的OllyICE,有时也会造成系统无响应。
crackme大部分代码,是反调试的。
在我一直在一个大循环里转圈时
提醒了我。
直接跳过大循环后,明白了“柳暗花明又一村”
回头再看,才知道是反调试代码。
我调试环境:VM虚拟机 Win2003 + OD
可能是系统的优势,很少出现程序出错的现象。
当找到部分重要断点后,跟起来就简单很多,运用OD的F4,省很多事
这次真的学到不少。
|
能力值:
(RANK:280 )
|
-
-
118 楼
是啊,我也重复引用了sessiondiy的提示,当遇到不熟悉的结构时,可能不大容易选择一个合适的代码执行断点来切入,这个时候通常会考虑以数据为入手,确定第一步以后基本上是一半运气一半经验连追带跑,无论是静态汇编还是动态调试,太细致了都不好,要有选择的分析
|
能力值:
(RANK:280 )
|
-
-
119 楼
再次补充一下,如果安装了.NET Framework 2.0 SP1窗口运行起来了然后再出错那也无所谓的
因为注册校验在这之前就完成了,所以只需分析出错在这之前的代码就足够了
|
能力值:
( LV9,RANK:230 )
|
-
-
120 楼
"就算看雪的OllyICE,有时也会造成系统无响应。"
这应该是时间验证在做怪:
在关键代码处,进行单步跟踪调试,则从一句代码到另一句代码会运行较长时间。因此可以预估计一下正常的执行时间,然后进行对比,若超过这个时间界限,则认为被调试。
原来你是VM虚拟机。
|
能力值:
( LV9,RANK:230 )
|
-
-
121 楼
有时是出错在前,有时出错在后。我调试时,有过几次,这应该是反调试的原因了。出错在后的,多是时间验证,用反调试工具很容易对付。出错在前的,就是我上面分析的因素了。
断下来很容易,难的是后面的跟踪,走和跑的把握没感觉。有regshot,有环境的快照,CRACK.NET.EXE.CONFIG,应该是在反调试。有好几处加密的关键数据,跟进去就大海迷茫了。有好几处的明码,具体含义没完全弄懂。跟踪的效率太差了。
mstwugui:
太细致了都不好,要有选择的分析
说起来容易,做起来就是长年的经验积累了。菜鸟的痛苦啊。
|
能力值:
( LV10,RANK:170 )
|
-
-
122 楼
不过这个crackme,大部分可见字符串。降低了部分分析难度。
只有关键算法里一个可见字符串的产生算法用了一些16进制数。
(不知道这算不算提示?)
|
能力值:
( LV9,RANK:230 )
|
-
-
123 楼
那应该是我跟踪到的几组明码了。可能你的虚拟机环境和我的调试不同。
下午有事情,也累了。这几天,白天没空,晚上都要弄到一两点钟。
晕,我三、四季度还有个重要的考试呢。已经开始报名了。破解这东西容易上瘾啊。
|
能力值:
( LV10,RANK:170 )
|
-
-
124 楼
等kanxue老大发出来吧。
或者我私下发给你也可以。
|
能力值:
( LV9,RANK:230 )
|
-
-
125 楼
谢谢!
等kanxue老大发出来吧。规则还是要尊重的。
这几天想休息一下,正好对.NET的知识梳理一下。
|
|
|