随笔分类 -  VC文档

上一页 1 2 3 4 5 6 ··· 9 下一页
隐藏DLL模块( HideDll)
摘要:void HideDll(){ HMODULE hMod = ::GetModuleHandle("MyHook.dll"); PLIST_ENTRY Head,Cur; PPEB_LDR_DATA ldr; PLDR_MODULE ldm; __asm { mov eax , fs:[0x30] mov ecx , [eax + 0x0c] //Ldr mov ldr , ecx } Head = &(ldr->InLoadOrderModuleList); Cur = Head->Flink; do { ldm = CONTAINING_RECORD 阅读全文
posted @ 2011-04-30 14:20 °ι 、曲 终 阅读(1663) 评论(0) 推荐(0)
截取屏幕指定区域保存为BMP文件
摘要:HBITMAP CopyScreenToBitmap(LPRECT lpRect){//屏幕和内存设备描述表HDC hSrcDC, hMemDC;//位图句柄HBITMAP hBitmap, hOldBitmap;//选定区域坐标int nX, nY, nX2, nY2;//位图宽度和高度int nWidth, nHeight;//屏幕分辨率int xScrn, yScrn;//确保选定区域不为空矩形if(IsRectEmpty(lpRect)) return NULL;//为屏幕创建设备描述表hSrcDC = CreateDC("DISPLAY", NULL, NULL, 阅读全文
posted @ 2011-04-30 14:18 °ι 、曲 终 阅读(863) 评论(0) 推荐(0)
VC EXE程序删除自身
摘要:在开发程序过程中,有许多情况中都需要执行程序自己把自己从物理磁盘上删除,例如,卸装程序,一些黑客程序获取信息后自清除等,我们把这些具有自删除功能的程序统称为“自杀”程序。对于一名程序员,想必都有在程序中使用代码删除物理磁盘文件的经历吧,我们只需要简单的调用DeleteFile API函数就可以搞定,但是该函数并不能删除自己,当它执行删除自己时,将会导致出现“无法删除文件:拒绝访问。源文件可能正被使用”的错误提示,其原因是由于本程序在执行删除自己代码时仍处于内存中,在Windows中,不可以删除正在执行中的程序。 为了实现程序自删除功能,我们可以通过多进程的方法解决这个问题。可执行文件在结束返回 阅读全文
posted @ 2011-04-30 14:15 °ι 、曲 终 阅读(1215) 评论(0) 推荐(0)
vc编译exe的体积最小优化
摘要:人们都说vc做出的东西可以小点,现在你打开vc编译一个Hello World出来!点属性看下,咦!我没走眼吧,就一Hello World就160kb真是要人命啊!呵呵!上面的情况是笔者所遭遇的情况.不过后来了解vc可以通过设置参数来自定义编译方式.为什么文件那么大!主要是编译器加入了很多没必要的代码(这里是对我们而言,不过有些代码还是有利于安全的).好了我们就手动改下编译器的参数来看看能到多大!我们主要用到的技巧有:一,使用release版而不用debug版编译使用debug版编译会生成许多垃圾信息.我们先使用默认的设置进行一下编译.可以看到编译后生成的文件有152k之巨.使用release版 阅读全文
posted @ 2011-04-30 14:12 °ι 、曲 终 阅读(452) 评论(1) 推荐(1)
VC++鼠标画圈
摘要:int r=100; int x0=gameRect.left+pt.x; int y0=gameRect.top+pt.y; int x,y; double n=0; MoveTo(x0,y0); while(n < 100) { x=x0+r*cos(n); y=y0-r*sin(n); MoveTo(x,y); Sleep(50); if ( GetCursorShape()== _T("6ea90254")) { LeftClick(); break; } r--; n++; }BOOL RectangleCircle(int x,int y,int Circ 阅读全文
posted @ 2011-04-26 22:50 °ι 、曲 终 阅读(454) 评论(1) 推荐(0)
应用程序上屏蔽FLASH控件的右键菜单并获得左键消息
摘要:使用FLASH做界面美化是一种较为常见的方式,FLASH动画制做简单,美观大方,而且将FLASH嵌入到应用程序界面上也是非常容易的,只要放置一个Shockwave Flash控件即可。但这样做出来的界面有两个问题,一是在FLASH上点击右键会有FLASH的菜单,二是在FLASH上点击的鼠标消息从应用程序里是获取不到的,FLASH控件并不会向用应程序发送WM_LBUTTONDOWN等鼠标消息。解决的办法应该有很多,我使用了自定义窗口过程的方法,经过试验效果不错。以下都基于Visual C++ 6.0和MFC环境:首先需要为Flash控件生成变量,这一步借助ClassWizard可以轻松完成,略过 阅读全文
posted @ 2011-04-20 22:52 °ι 、曲 终 阅读(390) 评论(0) 推荐(0)
assert,assert_valid,verify,trace用法
摘要:ASSERT()ASSERT()被测试它的参数,若参数为0,则中断执行并打印一段说明消息。在 Release 版本的程序中它不起任何作用。ASSERT()使用的时候必须保证参数表达式中不能有函数调用(译者注:ASSERT()宏在 Release 版本中不对表达式求值),因此对于任何有函数调用的参数表达式,应该使用宏 VERIFY(),以保证表达式中的函数调用在 Release 版本中会被正确求值。断言(assertion)用带断言信息(程序, 模块, assertion行)的对话框执行. 对话框有3个按钮: "Break", "Repeat" (&quo 阅读全文
posted @ 2011-04-17 12:22 °ι 、曲 终 阅读(390) 评论(0) 推荐(0)
BMP位图文件结构及VC操作
摘要:---- 用普通方法显示BMP位图,占内存大,速度慢,在图形缩小时,失真严重,在低颜色位数的设备上显示高颜色位数的图形图形时失真大。本文采用视频函数显示BMP位图,可以消除以上的缺点。---- 一、BMP文件结构---- 1. BMP文件组成---- BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。---- 2. BMP文件头---- BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位置等信息。---- 其结构定义如下:typedef struct tagBITMAPFILEHEADER{WORD bfType; // 位图文件的类型,必须为BMDWORD bfSiz 阅读全文
posted @ 2011-04-17 10:53 °ι 、曲 终 阅读(246) 评论(0) 推荐(0)
Visual Studio 6/2005/2008/2010 各版本编译器 下载
摘要:Microsoft Visual Studio 6.0 下载:英文版:http://www.verycd.com/topics/123807/英文版迅雷下载:http://61.138.140.18/download/jlste_nw/vs6en.isoFTP下载:ftp://211.69.16.66/microsoftvisualc++6.0.zip汉化补丁:http://www.verycd.com/topics/63305/Visual C++ 6.0 汉化补丁:http://www.onlinedown.net/soft/27329.htmVisual C++ 6.0 with Sp6 阅读全文
posted @ 2011-04-14 09:36 °ι 、曲 终 阅读(2062) 评论(2) 推荐(0)
获取文件属性
摘要:CFileStatus rStatus; if(CFile::GetStatus(m_strFile,rStatus)) { m_strSize.Format("%d字节",rStatus.m_size); m_strCTime = rStatus.m_ctime.Format("%Y年%m月%d日 %H:%M:%S"); m_strMTime = rStatus.m_mtime.Format("%Y年%m月%d日 %H:%M:%S"); m_strATime = rStatus.m_atime.Format("%Y年%m月 阅读全文
posted @ 2011-04-02 22:32 °ι 、曲 终 阅读(257) 评论(0) 推荐(0)
各个进制间的转换
摘要://将16进制的一个字符转换为十进制的数unsigned char CConvNumsDlg::BtoH(char ch){ //0-9 if (ch >= '0' && ch <= '9') return (ch - '0'); //9-15 if (ch >= 'A' && ch <= 'F') return (ch - 'A' + 0xA); //9-15 if (ch >= 'a' && ch &l 阅读全文
posted @ 2011-04-02 22:00 °ι 、曲 终 阅读(417) 评论(0) 推荐(0)
VC的水波效果
摘要:下载地址:http://files.cnblogs.com/rogee/WaveObject.rar一直很羡慕那些有水波效果的程序,可是无奈我水平差劲。自己写不出来,好不容易见一好友发的程序上有这特效边向他索要源码,才得知那是Delphi的一个控件,由于本人对Delphi实在不通,所以很是遗憾。 忽然想起,曾经在老罗的站点上看到过这样的汇编代码,因此对它有了“不轨之心”,今天在网上参考了好多资料终于将它编译成了一个Lib,写了一个对应的头文件,哈哈,以后我的程序上也可以有这样的特效了。 这里我给出我改写的ASM源文件以及Rasm的工程文件和编译后的Lib及.h文件,希望大家喜欢。具体的用法如下 阅读全文
posted @ 2011-04-02 20:58 °ι 、曲 终 阅读(1288) 评论(0) 推荐(0)
在程序内部注册ACTIVE X控件
摘要:BOOL DllRegister(LPCTSTR lpszDllName){ ASSERT(lpszDllName != NULL); ASSERT(AfxIsValidString(lpszDllName)); //加载ActiveX控件 HINSTANCE hLib = LoadLibrary(lpszDllName); if (hLib == NULL) { TRACE(_T("%s加载失败\n"), lpszDllName); return FALSE; } //获得注册函数DllRegisterServer地址 FARPROC lpDllEntryPoint; l 阅读全文
posted @ 2011-04-02 16:13 °ι 、曲 终 阅读(544) 评论(0) 推荐(0)
OnPaint()与OnEraseBkgnd()
摘要:地址:在MFC中 任何一个window组件的绘图 都是放在这两个member function中在设定上OnEraseBkgnd()是用来画底图的 而OnPaint()是用来画主要对象的举例说明 一个按钮是灰色的 上面还有文字则OnEraseBkgnd()所做的事就是把按钮画成灰色而OnPaint()所做的事就是画上文字既然这两个member function都是用来画出组件的那为何还要分OnPaint()与OnEraseBkgnd()呢其实OnPaint()与OnEraseBkgnd()特性是有差的:1.OnEraseBkgnd()的要求是快速在里面的绘图程序最好是不要太耗时间因为每当win 阅读全文
posted @ 2011-04-02 14:15 °ι 、曲 终 阅读(257) 评论(0) 推荐(0)
一步一步教你怎么写牧场挂
摘要:首先需要准备2个工具:HttpWatch(或HttpAnalyzer),以及JSONViewer(http://www.codeplex.com/JsonViewer)HttpWatch(或HttpAnalyzer)是收费软件,JSONViewer是free的。另外你也可以安装Firefox的JSONView插件,也可以不用JSONViewer。编写任何一个WEB应用外挂,第一步肯定都是登录。只有正确登录了,才能继续后面的操作。我们先拿HttpWatch来分析一下搜狐白社会的登录过程。第一部分:登录1、打开http://bai.sohu.com,如果你以前已经登录了,先退出来到要求你输入ema 阅读全文
posted @ 2011-04-01 21:55 °ι 、曲 终 阅读(833) 评论(0) 推荐(0)
一种软件网络验证方式的实现 + 网络验证转本地验证的一种实现(附VC源码)
摘要:目前很多软件都是通过网络验证来实现的,一种比较流行的方式便是把服务器端(如验证网页)放在服务器上,软件为客户端,当软件注册或启动时通过网络与服务器端进行数据交换,重新实现验证的目的。 个人觉得网络验证将是一种趋势,做得好的网络验证方式将是对软件的一种极大保护,如把软件的关键数据或关键代码放在服务器端,当认证通过后再发回到软件,且在传输过程中都用比较成熟的大型算法加密,从而达到一种防破解的目的。举个简单的例子,软件SMC加传输数据的RSA加密便是一个强度还可以的保护。 这段程序只是一个示例,显示其最简单的实现方式,程序很好的可移植性和很大的发挥空间。 服务端为一个验证网页Conn.asp,get 阅读全文
posted @ 2011-04-01 21:48 °ι 、曲 终 阅读(3422) 评论(1) 推荐(0)
浅谈外挂编程之模拟键盘鼠标
摘要:1、前台模拟鼠标键盘操作这里将窗口置顶,再调用模拟键鼠操作相关的API,微软提供了一个API,例如:SetWindowPos(this->GetSafeHwnd(),HWND_TOPMOST, cx, cy, 0, 0, SWP_NOSIZE);但是这个API也不能确保当前窗口就是最顶层(因为另一个程序再次调用的时候会覆盖)为了确保当前窗口在最顶层,下面是我整理后的代码,实例代码如下:激活窗口:voidCMFCDlg::OnBtnActivewindow(){//TODO:AddyourcontrolnotificationhandlercodehereCStringstrCaption 阅读全文
posted @ 2011-03-31 02:10 °ι 、曲 终 阅读(3618) 评论(0) 推荐(0)
偷窥桌面程序和IE浏览器的密码编辑框
摘要:环境VC6/VC7, MS Platform Core SDK, IE4.0+, WinNT/2K/XP (在英文/中文/日文版的Win2k/XP 及IE6.0+SP1上测试通过)关键字Windows 钩子,IE COM 对象,Win2k 安全上下文 IE编程 工具 系统摘要本文将介绍一个工具,它不仅能偷窥各种桌面程序的密码框,还能窥到IE页面中的密码框,这个程序就是本文要介绍的——SuperPasswordSpy++。使用 Windows 钩子偷窥远程进程(或者说桌面程序)密码框内容不是太难,但要偷窥到网页上密码输入域的内容要如何做呢?显然,在网页里的密码输入框不是一个窗口,你得借助 IHT 阅读全文
posted @ 2011-03-31 02:06 °ι 、曲 终 阅读(560) 评论(0) 推荐(0)
对注册表进行简单的操作
摘要:前言近来由于需要在自己写的程序中对注册表进行操作。总结些经验,并做个一个DEMO供日后使用,现在把它拿出来和大家分享。小弟初学VC,有误之处还请赐教。为了使用方便,我把一些操作写成了函数,以便方便调用,具体代码如下所示。定义HKEY hKey;char content[256]; //所查询注册表键值的内容DWORD dwType=REG_SZ; //定义读取数据类型DWORD dwLength=256;struct HKEY__*RootKey; //注册表主键名称TCHAR *SubKey; //欲打开注册表项的地址TCHAR *KeyName; //欲设置项的名字TCHAR *Value 阅读全文
posted @ 2011-03-31 02:05 °ι 、曲 终 阅读(212) 评论(0) 推荐(0)
利用键盘钩子开发按键发音程序
摘要:前言一日,看见我妈正在用电脑练习打字,频频低头看键盘,我想:要是键盘能发音的话,不就可以方便她养成"盲打"的好习惯吗?光想不做可不行,开始行动按键能发音,其关键就是让程序能够知道当前键盘上是哪个键被按下,并播放相应的声音,自己的程序当然不在话下,那么其它程序当前按下哪个键如何得知呢?利用键盘钩子便可以很好地解决。挂钩(HOOK)的基本原理WINDOWS 调用挂接的回调函数时首先会调用位于函数链首的函数,我们只要将自己的回调函数置于链首,该回调函数就会首先被调用。那么如何将我们自己的回调函数置于函 数链的链首呢?函数SetWindowsHookEx()实现的就是该功能。我们首 阅读全文
posted @ 2011-03-31 02:04 °ι 、曲 终 阅读(318) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 ··· 9 下一页