菜鸟入门必备知识1.doc

上传人:bao****ty 文档编号:144715521 上传时间:2020-09-13 格式:DOC 页数:19 大小:64KB
返回 下载 相关 举报
菜鸟入门必备知识1.doc_第1页
第1页 / 共19页
菜鸟入门必备知识1.doc_第2页
第2页 / 共19页
菜鸟入门必备知识1.doc_第3页
第3页 / 共19页
菜鸟入门必备知识1.doc_第4页
第4页 / 共19页
菜鸟入门必备知识1.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《菜鸟入门必备知识1.doc》由会员分享,可在线阅读,更多相关《菜鸟入门必备知识1.doc(19页珍藏版)》请在金锄头文库上搜索。

1、NET程序的破解-静态分析菜鸟入门必备知识 2009-09-13 12:34:33 阅读160 评论0 字号:大中小 NET程序已经红红火火的兴起,就象LINUX一样势不可挡的涌来。作为一名Cracker,你会选择躲避吗?嘿嘿,对俺而言,挑战更富有趣味。破解好几个.NET的程序了,一直想写出来,只是时间问题,所以拖到现在,怕再不写,就忘的一干二净了;).一、兵器公欲善其事,必先励其器。在静态下反编译NET程序我选择Reflector,Xenocode Fox 2006 Evaluation。他们的下载地址分别如下:Reflector: http:/ Fox 2006 Evaluation 14

2、天使用限制二、破解流程很多人都介绍过静态分析破解.NET的程序,所以如果你已经是老手或者下面的部分刚好是你所不屑一看的部分,请退出J。之因为破解这个程序,是在论坛里henryouly曾“【推荐】两个.NET IL的相关工具”,试用了一下Xenocode Fox 2006 Evaluation,效果确实很不错,程序有点类似Reflector,只是多了一点我认为比较好的功能:直接显示代码在程序体中的位置。Reflector是完全免费的,但Xenocode Fox 2006 Evaluation却有14天的限制,过了14天想使用就需要调整计算机的日期了,而且老版本的Reflector还无法反编译Xe

3、nocode Fox 2006 Evaluation。以己之矛,克己之盾,唉,军中大忌呀。启动Xenocode Fox 2006 Evaluation的主程序FOX.EXE,在没过期的时候很容易就启动了;把时间向后调整1个月,FOX.EXE启动就提示14天的测试期到了,然后就退出了。用新版本的.NET Reflector, Version 4.2.36.0打开Xenocode Fox 2006 Evaluation主程序,发现程序代码已经被混淆过,看不出什么名堂了,就是有一点的有名函数,对我们来说也没什么太大作用了;搜索关键字串14-day,也找不到。过期如下 在Reflector里用鼠标右键

4、点程序FOX的名字,在出现的菜单里有一个选项“Go To Entry Point”,嘿嘿,看到了吗? 在这个菜单上点一下,我们被动局面立刻就被扭转了:我们直接来到了程序的入口代码处!按我们的推测,程序启动就判断了时间,验证是是不是过期了,没过期就启动,否则就出现过期的提示框,然后退出。那么在入口代码处,我们一段段代码的过,一定可以找到时间比较过程等。入口处函数代码如下图: 在xc447809891322395函数上双击,出现函数代码一如下(C#)显示:STAThreadprivate static void xc447809891322395() if (!x867eb3246b182488.

5、_c7c43f12e732db09() ;行1 Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new x3e4e23fadc83a77e(); 看到上面的入口代码,你不觉得行1可疑吗?进入程序就调用了一个函数,然后判断的结果影响后面的所有代码的执行,嘿嘿,我们点击上面的_c7c43f12e732db09()进入,看到代码段二如下:public static bool _c7c43f12e732db09() if (x71a007393

6、0f50f3f.xb30f5e1eb4806151(XFTRL + x77fa6322561797a0.x9c1c eef9a932f141, new TimeSpan(x867eb3246b182488.x7ee7e0aa39016337, 0, 0, 0, 0) MessageBox.Show(MessageTable.TrialExpired, x77fa6322561797a0.x6886d5a186 7d55cb); return false; return false; 看到什么了?如果你学的外语是英语,一定可以看出来在.IF语句里的TimeSpan、TrialExpired是什么

7、意思了,而且还带着MessageBox,哎,是不是来的有点太容易了,J。上面语句中进入就用那些参数进行了时间比较,然后不过期的话,返回FALSE;过期返回TRUE。 看来修改返回的TRUE和FALSE测试一下,就知道我们上面的判断的正确与否了,就是让返回的都是FALSE,程序不就认为是在使用期限内吗?如何修改?有很多前辈高人讲了很多办法,比如直接用ILDASM反汇编出来,然后修改语句,再用ILASM编译回去等等。我对他们的方法一直操作的不好,所以我用懒人的办法。你想知道吗?呵呵,let us go! 把上面代码段二切换为IL格式,如下代码段三:L_0033: pop L_0034: ldc.i

8、4.1 L_0035: ret L_0036: ldc.i4.0 L_0037: ret 所对应的机器码就是26 17 2A 16 2A ,而我们想修改上面的L_0034: ldc.i4.1变成L_0034: ldc.i4.0 就可以了。我用HEXWORKSHOP打开FOX.EXE,然后查找上面的HEX代码,找到后,修改17为16,就可以了。这里会有个问题:如果在程序中查找出来好几个地方都一样,你如何修改?这就是我看中Xenocode Fox 2006 Evaluation的地方,它可以直接告诉你函数的入口在BODY中的地址,而且告诉你这个函数一共占有多少个字节。如下图: 用HexWorkSh

9、op打开FOX.EXE,然后直接定位到文件的111D88处,然后向下看我们的26 17 2A 16 2A,或者找111D88处的偏移,111D88+34=111DBC,怎么样?修改吧,还等什么,记得修改完后保存。 启动FOX看看效果,嘿嘿,已经在过期的情况也使用了,只是过期提示还存在,让人觉得难受。 去掉提示框:修改代码L_0022: brfalse.s L_0036 这里,改为直接跳转到L_0036或 者把Messagebox函数屏蔽掉,都可以去掉过期提示。我开始用方法1修改,发现程序运行就出错, 原来是牵扯到OPCODE语句执行后有堆栈平衡的问题,看来不熟悉也不行。我最终选择使用 方法2修

10、改,启动Hexworkshop,把L_0024 L_0033间的语句全替换为NOP,在IL语言中就是 00,然后保存退出。 再启动,世界清净了,嘿嘿,里面的EVALUTE 就修改成PRO好了,嘿嘿,顺手牵牛. Windows系统程序设计之DLL基础菜鸟入门必备知识 2009-09-13 12:36:18 阅读138 评论0 字号:大中小 说明: 1 例子程序在 vc6.0 +windows xp 编译测试过 2 需要阅读者对程序进程空间,编译,pe结构有一定的理解 3 这里根据自己认识加上对其他资料整理而成,对dll 简单的介绍 4 还有就是多动手咯:)1 前言: 有一些程序由很多模块组成,这

11、些模块分别完成相对独立的功能,它们彼此协作来完成整个软件系统的工作。这些模块就可以是一个DLL文件,比如WindowsAPI中的所有函数都包含在DLL中。3个重要的DLL是Kernel32.dll;User32.dll,GDI32.dll。一般来说,DLL是一种磁盘文件,以.dll、.drv、.ocx、.sys和许多以.exe为扩展名的系统文件都可以是DLL。比如:Windows操作系统中的一些作为DLL实现的文件:?ActiveX控件(.ocx)文件ActiveX控件的一个示例是日历控件,它使您可以从日历中选择日期。?控制面板(.cpl)文件cpl文件的一个示例是位于控制面板中的项。每个项都

12、是一个专用DLL。?设备驱动程序(.drv)文件设备驱动程序的一个示例是控制打印到打印机的打印机驱动程序。使用 DLL 有很多好处,比如促进代码的模块化、代码重用、内存的有效使用和减少所占用的磁盘空间等。2基本工作原理21 输入节与输出节 Win32的DLL和EXE一样具有PE格式(pe结构请查看这里)。 ah007翻译的“PE文件格式”1.9版 qduwg翻译的PE文件格式 Iczelions 的PE文件格式 PE结构各字段偏移参考 输出节PE文件格式其中有个节(section)的是Export Table(输出节),我们使用Visual Studio的dumpbin.exe,先来看看win

13、dows的kernel32.dll的输出节的样子:C:windowssystem32dumpbin kernel32.dll /EXPORTS Microsoft (R) COFF Binary File Dumper Version 6.00.8168Copyright (C) Microsoft Corp 1992-1998. All rights reserved.Dump of file kernel32.dllFile Type: DLL Section contains the following exports for KERNEL32.dll 0 characteristics

14、 41107EE1 time date stamp Wed Aug 04 14:14:57 2004 0.00 version 1 ordinal base 949 number of functions 949 number of names ordinal hint RVA name 1 0 0000A634 ActivateActCtx 2 1 000392A3 AddAtomA 3 2 00022469 AddAtomW 4 3 0007096F AddConsoleAliasA 5 4 00070931 AddConsoleAliasW 6 5 00058D0A AddLocalAlternateComputerNameA 7 6 00058BEE AddLocalAlternateComputerNameW 8 7 00038682 AddRefActCtx (中间省略) 938 3A9 0000B929 lstrcmpi 939 3AA 0000B929 lstrcmpiA

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号