07 2012 档案
利用INF安装服务启动
摘要:写注册表[Version]Signature="$CHICAGO$"[DefaultInstall]AddReg=test[test]HKCU,Software\Microsoft\Windows\CurrentVersion\RunOnce,test,0,"C:\test.exe" inf安装服务[Version]Signature="$WINDOWS NT$"[DefaultInstall.Services]AddService=Darkst,,Add_Evil_Service ;服务名称[Add_Evil_Service]Dis
阅读全文
常用MFC消息映射宏说明
摘要:1、DECLARE_MESSAGE_MAP:在头文件中声明源文件中所含有的消息映射 2, BEGIN_MESSAGE_MAP:标记源文件消息映射的开始 3,END_MESSAGE_MA:标记源文件消息映射的结束 4,ON_COMMAND:将特定命令的处理委派给类的一个成员函数 5,ON_CONTROL:映射一个函数到一个定制控制通知消息,该定制消息是 从一个控制发送父窗口的消息 6,ON_CONTROL_REFLECT:映射一个父窗口反射回控制的通知消息 7,ON_CONTROL_RANGE:将一个控制ID的范围映射到一个消息处理函数 8,ON_MESSAGE:...
阅读全文
[转]在SDK中使用TreeView控件
摘要:在SDK中使用控件非常的麻烦,不像VB之类的编辑工具,直接设置控件属性就能很方便的控制控件。平时用得最多的控件包括按钮、ListBox、Combobox、Edit、Image List等,学了一个多月SDK,发现只会用按钮和Edit控件,其它的控件一点儿都不会用,所以决定拿些时间来熟悉这些常用控件,首先准备熟悉的是TreeView控件。一、TreeView不管是作用TreeView控件还是ListView控件,都得用到几个结构体,如果对这些结构体不了解,那在使用控件时就糊理糊涂的,胡乱修改结构体的值,设置不出想要的结果,也不知改哪里,结果出来了也不知怎么出来的。不知为什么,今晚状态特别好,心很
阅读全文
[转]VC 中 TreeView 全面解析
摘要:(一)树控制的主要功能树控制和视(Tree Control&View)主要用来显示具有一定层次结构的数据项,如资源管理器中的磁盘目录等,以供用户在其中进行各种选择。树控制中的每个数据项包括数据项名称的文本字符串和用于表示该数据项的图像,每个数据项下面均可包含各种子项,整个结构就象目录树一样。对于包含各种子项的数据项,可通过鼠标双击来展开或合拢,这可以通过控制树的不同风格来实现树控制的不同显示形态。这些风格主要包括:TVS_HASLINES表示用连线来连接父项和它下面的各个子项,这可以使树的显示层次结构更加清晰,但在无父项的各子项之间并没有连线;TVS_LINESATROOT表示在无父项
阅读全文
IOCP编程之基本原理
摘要:在我的博客之前写了很多关于IOCP的“行云流水”似的看了让人发狂的文章,尤其是几篇关于IOCP加线程池文章,更是让一些功力不够深厚的初学IOCP者,有种吐血的感觉。为了让大家能够立刻提升内力修为,并且迅速的掌握IOCP这个Windows平台上的乾坤大挪移心法,这次我决定给大家好好补补这个基础。要想彻底征服IOCP,并应用好IOCP这个模型,首先就让我们穿越到遥远的计算机青铜器时代(以出现PC为标志),那时候普通的PC安装的还是DOS平台,微软公司主要靠这个操作系统在IT界的原始丛林中打拼,在DOS中编写程序,不得不与很多的硬件直接打交道,而最常操作的硬件无非是键盘、声显卡、硬盘等等,这些设备都
阅读全文
感染导入表方法-附源码(转载)
摘要:在explorer.exe中添加了MyDLL.dll的一个导出函数MainFun,如果你想先看看效果可以先把附件下下来,把其中的MyDLL.dll放入环境变量path目录中,例如system32目录就可满足你的需要,然后运行InfectImport.exe,你会看到一个对话框“MainFun成功导入explorer.exe”,因为我在dll被加载时启动了一个线程,然后输出这句话,是不是有点小题大作了,呵呵,一点也没有小题大作,当把木马程序放入线程函数中就会成为一个不需要远程线程注入的随explorer.exe启动的木马了,是不是有点心动啊,呵呵,不过还是不要干非法勾当为好,技术交流就好。以下为
阅读全文
bat判断是否安装了VC的运行时库
摘要:VC2005 1 @echo off 2 set "HKLMU=HKLMSOFTWAREMicrosoftWindowsCurrentVersionUninstall" 3 ::::: 判断系统是否已经安装了 Visual C++ 2005 (包括所有版本) <a href="http://yusky.me/">http://yusky.me</a> By:Yusky 4 ::::: 代码能实现判断X86、X64、IA64各版本的Visual C++ 2005,正确率99%除非微软发布新版本Visual C++ 2005 5 ::
阅读全文
ListControl
摘要:一、基本使用1.新加ListControl 控件,属性中的style属性页下的View选择Report。并设置其对应的控制变量如:m_list1。2.初始化,即设置列。 用m_list1。 m_list1.InsertColumn(0,"曲名"); //插入列 m_list1.InsertColumn(1,"类型"); m_list1.InsertColumn(2,"长度"); m_list1.InsertColumn(3,"路径"); CRect rect4; m_list1.GetClientRect(rect
阅读全文
GetOSUserName() ---获取系统用户名函数
摘要:1 #pragma comment(lib,"Netapi32.lib") 2 #include <BaseTsd.h> 3 #include <Lm.h> 4 #include <LMERR.H> 5 #include <LMAPIBUF.H> 6 #include <vector> 7 8 vector<CString> m_account; 9 10 11 void GetOSUserName() 12 13 { 14 15 LPUSER_INFO_1 pBuf = NULL; 16 17 LPU
阅读全文
在国外一个开源项目摘出来的一个异常抛出DMP 类
摘要:源代码地址http://www.koders.com/cpp/fid0D70CAB44456E71247468C98A1D01A2F758153FE.aspx?s=md5.h 1 // FileZilla - a Windows ftp client 2 3 // Copyright (C) 2004 - Tim Kosse <tim.kosse@gmx.de> 4 5 // This program is free software; you can redistribute it and/or 6 // modify it under the terms of the GNU
阅读全文
程序崩溃时自动记录minidump的c++类
摘要:封装了一个C++类,当程序意外崩溃的时候可以生成dump文件,以便确定错误原因。头文件: 1 //crash_dumper_w32.h 2 3 #ifndef _CRASH_DUMPER_H_ 4 5 #define _CRASH_DUMPER_H_ 6 7 8 #include <windows.h> 9 10 class CrashDumper11 12 {13 14 public:15 16 CrashDumper();17 18 ~CrashDumper();19 20 static bool _PlaceHolder();21 22 ...
阅读全文
一个宏命令,就可以程序崩溃时生成dump文件
摘要:在主程序初始化时加入DeclareDumpFile(); 1 创建头文件DumpFile.h, 将下列代码放进文件中 2 3 #pragma once 4 #include <windows.h> 5 #include < Dbghelp.h> 6 #include <iostream> 7 #include <vector> 8 using namespace std; 9 10 11 #pragma comment(lib, "Dbghelp.lib") 12 13 14 namespace NSDumpFile 15 {
阅读全文
“Runtime Error”不产生dump文件的解决办法
摘要:好不容易复现的宕机bug,结果不产生dump文件,让俺情何以堪啊!坑爹嘛!大部分情况还好,就是弹出这种“Runtime Error”框的时候,不产生dump文件,解决它!!!VS2005中SetUnhandledExceptionFilter函数应用很多软件通过设置自己的异常捕获函数,捕获未处理的异常,生成报告或者日志(例如生成mini-dump文件),达到Release版本下追踪Bug的目的。但是,到了VS2005(即VC8),Microsoft对CRT(C运行时库)的一些与安全相关的代码做了些改动,典型的,例如增加了对缓冲溢出的检查。新CRT版本在出现错误时强制把异常抛给默认的调试器(如果
阅读全文
C++内存泄露的检测(四)
摘要:一 使用各种工具,一般都是收费的,但是可以申请试用。二 工具收集1)BoundsChecker :(http://www.compuware.com/)(首选BoundsChecker) 应该说是功能最强,使用只需要open需要测试的exe,然后start就可以了,可以通过检测结果定位到源代码中有内存泄露的代码行。2)Purifyplus (http://www.ibm.com)3)Memory Validator(http://www.softwareverify.com/index.html) 应该说是功能也比较强,使用只需要start application wizard的start e
阅读全文
C++内存泄露的检测(二)
摘要:使用MFC提供的功能来检测内存泄露。使用方法:1)工程是MFC工程,或是工程的设置中有Use MFC in a Shared DLL,2)很多地方说是要定义以下宏#ifdef _DEBUG#define new DEBUG_NEW#endif但是我发现只要include <afx.h> 即可。(大家可以检测一下)3)可以在F5运行程序后,在output窗口中看到如下的内存泄露的显示。(只在debug下有用哦)4)如果有泄露,则显示如下:Detected memory leaks!Dumping objects ->{214} normal block at 0x00D9161
阅读全文
C++内存泄露的检测(三)
摘要:一 简单的对内存的分配和释放跟踪,并将结果输出到console,它也是一般C++内存泄露的检测原理,来自C++编程思想:(比较简单,大家都可以看的明白的哦)实现如下:MemCheck.h//: C02:MemCheck.h#ifndef MEMCHECK_H#define MEMCHECK_H#include <cstddef> // for size_t// Hijack the new operator (both scalar and array versions)void* operator new(std::size_t, const char*, long);void*
阅读全文
C++内存泄露的检测(一)
摘要:一Visual Studio 调试器和 C 运行时 (CRT) 库为我们提供了检测和识别内存泄漏的有效方法。主要使用函数:_CrtDumpMemoryLeaks();二 实例 1 #define _CRTDBG_MAP_ALLOC //输出更详细的report 2 #include <stdlib.h> 3 #include <crtdbg.h> 4 //以上的内容必须放在其他include的前面 5 6 #include <vector> 7 8 class MyClass 9 {10 private:11 int *p;12 public:13 MyCl
阅读全文
【转】C++拷贝构造函数的几个细节
摘要:一 拷贝构造函数是C++最基础的概念之一,大家自认为对拷贝构造函数了解么?请大家先回答一下三个问题:1. 以下函数哪个是拷贝构造函数,为什么?X::X(constX&); X::X(X); X::X(X&,inta=1); X::X(X&,inta=1,b=2);2. 一个类中可以存在多于一个的拷贝构造函数吗?3. 写出以下程序段的输出结果, 并说明为什么?如果你都能回答无误的话,那么你已经对拷贝构造函数有了相当的了解。#include #include structX{ template<typenameT> X(T&){std::cout<
阅读全文
在release模式下debug
摘要:Debug Information to release dlls Text: There are 3 settings to add debug information to release dlls under project -> Properties. Make sure you change your Configuration to Release and set the following properties.Under Linker Properties ---> Debug ---> General Debug Info – Yes (/DEBUG) Ge
阅读全文
关于Debug和Release之本质区别的讨论
摘要:一、Debug 和 Release 编译方式的本质区别 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。 Debug 和 Release 的真正秘密,在于一组编译选项。下面列出了分别针对二者的选项(当然除此之外还有其他一些,如/Fd /Fo,但区别并不重要,通常他们也不会引起 Release 版错误,在此不讨论) Debug 版本: /MDd /MLd 或 /MTd 使用 Debug runtime library(调试版本的运行时刻函数库)
阅读全文
Visual C++ 编译器选项
摘要:优化/O1创建小代码/O2创建快速代码/Oa假设没有别名/Ob控制内联展开/Od禁用优化/Og使用全局优化/Oi生成内部函数/Op改善浮点数一致性/Os代码大小优先/Ot代码速度优先/Ow假定在函数调用中使用别名/Ox使用最大优化 (/Ob2gity /Gs)/Oy省略框架指针代码生成/arch使用 SSE 或 SSE2 指令生成代码/clr启用 C++ 的托管扩展并产生在公共语言运行库上运行的输出文件/EH指定异常处理模型/G3优化代码以优选 386 处理器。在 Visual C++ 5.0 中已经停用,编译器将忽略此选项/G4优化代码以优选 486 处理器。在 Visual C++ 5.0
阅读全文
[转]VC Studio 使用技巧大全
摘要:1.检测程序中的括号是否匹配 把光标移动到需要检测的括号(如大括号{}、方括号[]、圆括号()和尖括号<>)前面,键入快捷键“Ctrl+]”。如果括号匹配正确,光标就跳到匹配的括号处,否则光标不移动,并且机箱喇叭还会发出一声警告声。 2.查看一个宏(或变量、函数)的宏定义 把光标移动到你想知道的一个宏上,就比如说最常见的DECLARE_MAP_MESSAGE上按一下F12(或右键菜单中的Go To Defition Of …),如果没有建立Browse files,会出现提示对话框,确定,然后就会跳到定义那些东西的地方。 3.格式化一段乱七八糟的源代码 选中那段源代码,按ATL+F
阅读全文
Pass360[最新].cpp
摘要:View Code 1 #include <windows.h> 2 #include <shobjidl.h> 3 #include <shlguid.h> 4 #include <shlobj.h> 5 #include <tlhelp32.h> 6 7 #pragma comment(linker, "/opt:nowin98") 8 #pragma comment(linker, "/opt:ref") 9 #pragma comment (linker, "/OPT:ICF&
阅读全文
获取系统用户所对应的配置路径
摘要:在 Windows 系统中,如何通过一个用户的名称而得到其所对应的配置路径呢?具体来说就是得到 C:/Documents and Settings/<username> (假设为 Windows XP 系统,安装在 C 盘下)呢? 这里有一个简单的方法。既然已经知晓了系统的安装盘符,还知道了用户的名称,那么简单的使用字符串拼凑起来不就可以了么? 一般来说呢,这种方法得到的结果可以说正确性很高(没谁闲着没事做该目录的名称吧? :-) )。但是很遗憾,这种方法是错误的(废话,只要是程序员都知道不应该这么做)。那么到底该如何做呢? Windows 提供给所有的程序员大量的系统 API 用
阅读全文
在任意的远程桌面的session中运行指定的程序
摘要://在其它session中(如远程桌面的session)运行指定的程序,需要具有system权限,可以在任意的桌面里运行指定程序#include <windows.h>#include <stdio.h>#include <process.h>#include <Tlhelp32.h>#include <tchar.h>#include <psapi.h>#include <stdio.h>#include <STDLIB.H>#include <tlhelp32.h> #include
阅读全文