和谐掉系统的文件保护一分钟
从某AutoRun中逆出来的,利用微软未公布的API,sfc_os.dll中的ordinal为5函数,关闭文件保护一分钟。
生活的天平本不平衡,只有通过努力改变其偏向。
从某AutoRun中逆出来的,利用微软未公布的API,sfc_os.dll中的ordinal为5函数,关闭文件保护一分钟。
在程序使用Dll有两个加载方式,一种是动态方式,就是LoadLibrary载入Dll,然后用GetProcAddress来加载需要使用的Dll函数。另一种就是静态连接方式,将dll生成的lib,加入到工程中,然后使用时就像使用Win API一样使用。
今天我们不讨论动态载入的方式,我们采用静态载入的方式。但有一个问题,由于很多Dll发布的时候,根本就不提供lib,也或许你在使用一个未公开的dll,没有lib我们就不能静态加载,我手工来生成吧。
程序简要说明:
可以解析出PE各个部分的数据解析出来用于分析,主要包括基本数据段、数据目录、区段信息、导入表、导出表、重定位表、资源表。可以对一些陌生程序在运行前进行查看,以免运行了一些恶意程序。
如果你对Windows下的加密解密感兴趣或想DIY可执行文件的话,可以查看本程序的数据解析部分的代码。网上的零星代码,我好像没找到这么全的,能包括导入表、导出表、重定位表、资源表等解析。
还是侯老的那句话:“源码之前 了无秘密”
作者:楚狂人
这一本专门介绍实时扫描的防毒软件、虚拟磁盘、硬盘还原、硬盘加密、文件
系统保护、文件透明加密、防火墙、密码输入保护等软件的Windows 内核模块的具体实现方法的编程技术书。本书的目的是使读者能够用C 语言编写这些核心模块。
OGRE真是一个很牛X且开源的3D图像引擎,值得学习,分享一份中文开发文档。
前一段时间写了一个大数的四则运算,主要思路就是将大数转成字符串进行运算。这种方式虽然效率不太高,但在某些场合,由于种种原因,系统的四则运算,不满足要求时,这种方式到是派上了用场。
看到网上也有类似的计算方法,不过好像不支持浮点,我写了一个支持浮点的。
实现方式,纯C + 几个字符串运行库。
IDE: VC6.0
Bug肯定多多,如果你在观看代码或使用时,发现Bug请即时和我联系,当然如果你肯在这份代码上作相应的优化,请将优化后的版本也发一份给我,Thx.
//最近比较懒,一直没更新。by lonkil
今天无意中年到这篇文章,很不错的主意,就转过来了。
原文:http://blog.csdn.net/bhw98/archive/2004/04/28/19683.aspx
相信大多数的程序员或用户,在Windows中见到类…
最近的项目需要对字体进行描边,也就是将字体缕空。为了实现不同桌面背景图使字体看上去清楚,目前通用的解决方案就是将字体描边。关键现在这款芯片的GUI开发包功能比较弱,一些特殊效都需要自己手动实现,汗。要实现这个效果的第一个想到的解决方案就是将系统字体的点阵取出,进行边缘检测出来,进行处理,运算的开销不小,而且处理起来麻烦,国际化也是个麻烦。
我在整理代码时将一组常用函数打包成一个utility类,采用的方案就是静态化成员函数.但是遇到到了Link错误,原以为这个和以前的Link错误一样容易解决(又见link错误之LNK1104,VS2005中郁闷的lnk2001和lnk2019),没想到试了各种办法都失败,仅仅能编译通过,Link时不同的编译器产生不同的错误,VS6产生LNK1120,VS8产生LNK2019.
晚上在写一个PE文件格式解析的小程序(等完工将会放出Source,^_^),使用stringstream将一个int转成string,方便显示。
总是报这样的错误:
error C2679: 二进制“=”: 没有找到接受“std::basic_string<_Elem,_Traits,_Ax>”类型的右操作数的运算符(或没有可接受的转换)
前一段时间Ricokuo给我一个捉弄人的小程序,主要实现意思就是将窗口置顶且全屏,Hook了几个关键,让你退不出程序。我和Ricokuo说那个程序做的太简单了,还能弹出开始菜单,改天我做一个强大一点的。当时说将开机自启动也加上,现在想想还是算了吧,对于那些普通用户,加个自启动,就不是捉弄人了,就是害人了。所以这一版还是放弃了自启动的功能。
Windows程序支持两种拖拽试式,一种文件拖拽,这正是我今天要演示的。一种是OLE拖拽,当你在VC中编辑代码,将代码从这个位置拖到另一个位置,就属于这种。拖拽功能给用户的操作带很大的方便,这一细节有助于提高软件的交互性和用户体验。这早已不是什么新技术,介绍给还不知道的朋友。
前两天写了一个二叉树的递归遍历法,虽然递归的算法让人容易理解,代码简短。但有一个致命缺陷,那就是遍历的二叉树数据不能太大,否则会造成栈溢出,使程序崩溃。如果这种情况出现,问题比较难跟踪。致于遍归层数太多为什么会造成栈崩溃的原因很好理解,由于函数据的调用是靠栈进行传递参数的,栈的分配内存地址是逐渐减小的,终会有分配完的一天。所以采用递归进行遍历会有一定的隐患。
今天讲的非递归法,就是根据不同的遍历法则,将数据“压栈”,什么还是栈来传递?和递归有何区别?其实看下面的代码就可以知道,我这个栈,其实是在堆上维护的一个链表,堆的空间取决于物理内存和虚拟内存的大小。
二叉树我还是用的是前两天二叉树的递归遍历法中生成的那棵。
用递归进行二叉树的遍历比较简单,三种遍历分别为前序遍历、中序遍历和后序遍历。在写遍历代码时,被卡在怎么样自动建立一个二叉树这一块。想建成每层按顺序时生成的二叉树,还真有点困难。没想出什么好的办法,就在main中用了比较恶心的办法,手动调用,汗。