能力值:
( LV3,RANK:20 )
|
-
-
2 楼
可以自己写个程序使用反射调用类似于下列代码中的<Module>::a(string, int32)函数进行解密。
L_000e: ldstr "\u****\u****\u****\u****\u****"
L_0013: ldloc num
L_0017: call string <Module>::a(string, int32)
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
@tease
能告诉在哪里call 这个地方?我发现有好多好多地方call 这里啊,或能告诉 这 L_000e: ldstr "\u****\u****\u****\u****\u****" 具体是什么字符?
再次谢谢老师
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
@tease
老师,,能说一下你分析的思路和想法,就是怎样为什么从某个地方call这里 <Module>::a(string, int32)
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
1。“使用反射调用”,这个是好方法,巩固了知识又达到了目的
2。如果这个程序是dotfuscator混淆的 ,也可以使用现成的工具DotFuckScator,效果不错的
|
能力值:
( LV3,RANK:20 )
|
-
-
6 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
谢谢老师,关键是有这么多的"\u****\u****\u****\u****\u****",怎样去定位呢?
我理解这是解密的函数,但是怎样定位哪里就是这些Evaluation字样call 这个解密函数?
谢谢
|
能力值:
( LV3,RANK:20 )
|
-
-
8 楼
步骤。(文中的截图,只是为了说明问题,和本文无关)
1、写一个工具(或者使用已经有的工具),遍历所有的类和方法,并解密所有的字符串,将这个字符串所在的类和方法记录下来
2、搜索DEMO中出现的字符串,可以定位具体的类和方法名。
3、使用Reflector的Analyze功能,可以分析第二步中定位的方法,被哪些方法所调用。
4、查找到第二步和第三步中的所有涉及到的方法,利用编程功底去分析程序验证的地方。
这就是传统的经典做法,全是体力活~ 
现在流行的是玩意识,秒破。
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
支持,以后学习是好好看看
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
多谢老师,收益不少,非常感谢
另外,老师如果有时间的话,请帮忙看看这个控件,它也是EXCEL类型的.NET控件,也是有demo字样在电子表的第一行出现,,,,
真是麻烦你了,浪费你宝贵时间真抱歉
老师请:
d25K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4S2#2L8U0k6Q4x3X3g2U0L8$3#2Q4x3V1k6X3K9h3I4W2i4K6u0r3x3e0j5K6y4K6c8W2y4K6p5%4i4K6u0r3e0X3q4@1K9i4k6W2c8i4S2U0k6h3I4z5k6i4c8p5k6h3#2G2i4K6u0W2M7X3q4J5i4K6u0W2K9s2c8E0L8l9`.`.
|
能力值:
( LV3,RANK:20 )
|
-
-
11 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
期待老师能出几个NET破解的视频教程
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
呵呵呵,老师真是非常高的高手,希望以后多多指点我们,感恩,
你肯定会为中国的软件发展做出重大贡献
能分享怎样分析吗?
再次感谢您
|
能力值:
( LV3,RANK:20 )
|
-
-
14 楼
有时间就做录像。
能分享怎样分析吗?
再次感谢您
1、新建一个工程,导入这个dll。只写两句代码:
IWorkbook book = NativeExcel.Factory.CreateWorkbook();
book.SaveAs("test.xls");
运行项目后,发现生成的test.xls文件已经包含了Demo字样。那么也就是说,生成DEMO字样的可能性只有在CreateWorkbook()方法或者在saveas()方法中。
2、我们发现生成的DEMO字样总是在A1的单元格内,我们在代码中往A1和B1中添加数据看看。
IWorkbook book = NativeExcel.Factory.CreateWorkbook();
IWorksheet sheet = book.Worksheets.Add();
sheet.Range["A1:A1"].Value = "Hello";
sheet.Range["A1:B1"].Value = "World";
book.SaveAs("test.xls");
运行后我们发现,A1单元格被DEMO字样覆盖了,而B1单元格则出现了World的字样。那么控件肯定是在SaveAs方法中覆盖了我们写的"Hello"字符串。也就是说只要重点在于分析SaveAs中的代码。
3、看到这里有两种方法解决问题:
其一,记录自己的A1数值,然后再控件中新增加一个方法,这个方法放在SaveAs的最后处被调用,这个方法的内容是重新还原A1单元格的内容。优点是快速解决问题,缺点是要给控件逆向增加一个方法,用户调用起来不会习惯。
其二,试想,控件是如何覆盖数据的?肯定用了和我们类似于sheet.Range["A1:A1"].Value = "Hello";这样的代码逻辑。所以只要调查这个代码是如何在Excel中生成数据的就可以了。
加两个MessageBox
IWorkbook book = NativeExcel.Factory.CreateWorkbook();
IWorksheet sheet = book.Worksheets.Add();
MessageBox.show("1");
sheet.Range["A1:A1"].Value = "Hello";
MessageBox.show("2");
sheet.Range["A1:B1"].Value = "World";
book.SaveAs("test.xls");
使用windbg+sos载入程序,设断点在messagebox处。找到在调用这两个messagebox之间分别调用了哪些方法,将这些方法全部记录下来。
最后在Reflector中稍微的分析一下这些方法,很快就定位了。
4、使用windbg设断点在第三步找到的位置,很快在saveas()方法中断下来判断是否是填写DEMO字样的地方。NOP掉即可。
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
to tease:
老师,你对windbg+sos 使用方面比较熟悉吗?
能否告诉我这方面的教程或资料或动画教程,我要知道的一个问题是,如何调试一个exe文件中有调用DLL,怎样断点?
谢谢
对于 NativeExcel 这个控件,我认为应在填充(0,0)方面下手,我认为(0,0)就是第一行和第一列,不知道思路是否合理?
请指正,谢谢
最后希望能早日看到你使用 windbg+sos 调试.NET方面的教程
|
能力值:
( LV3,RANK:20 )
|
-
-
16 楼
随着加密技术的提高,静态分析DONET已经不能满足当今破解的需求了,windbg+sos是锻炼意识流最好的工具之一,而且可以做到以不变应万变。我没看过动画教程,我只看过两本书
《软件调试》的windbg部分
《.NET2.0应用程序调试》
只要dll文件被加载了,就可以向对exe文件下断一样。
sxe ld:xxx.dll在dll加载时中断。
!nam2ee xxx.dll xxxx.xxx.xx()在dll中查找方法并获得 methodDesc address
然后对前面获得的这个地址下断即可。
你说的(0,0)就是我前文中说的A1 单元格(MS Office是这样描述的)......
你说的思路更适合静态破解,肯定是可行的,但是如何去缩小范围呢?你可以尝试一下,如果成功了,可以分享一下经验。
我的思路有一点点区别,就是我先找到填充任意数据的地方(我缩小范围的方法是自己写填充数据的代码夹在两个MessageBox之间),然后再找到的方法中设断点,当发现填充字符串为DEMO字符时,可以通过看堆栈来定位是哪个方法调用的。
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
老师,,,
因为你是动态调试,你能看到堆栈,但是,我们这些初学者不懂如何去动态调试,希望能提供更多的动态调试方面的经验给我们,
谢谢
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
@tease
《软件调试》是什么出版社出版?作者是谁?
谢谢
|
能力值:
( LV3,RANK:20 )
|
-
-
19 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
实在是太有才了 绝对同意楼上的
------------------------------------------------------------
张娜拉 安奈竹碳一洗白。瑞脑香消魂梦断 吸立白
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
非常的好看,非常的实用
|
能力值:
( LV2,RANK:10 )
|
-
-
22 楼
标记一下!谢谢
|
能力值:
( LV2,RANK:10 )
|
-
-
23 楼
帮顶,确实厉害
|
能力值:
( LV2,RANK:10 )
|
-
-
24 楼
意识很重要。。
|
能力值:
( LV2,RANK:10 )
|
-
-
25 楼
tease果然对.net有研究啊
|
|
|