随笔分类 -  API

上一页 1 2 3 4 5 6 ··· 8 下一页
摘要:win7 x64 下VC6的调试程序无法退出的问题Common/MSDev98/Bin/TLLOC.dll必须安装VCSP6,否则无效。http://files.cnblogs.com/ahuo/vc6win7x64.rar 阅读全文
posted @ 2011-07-18 16:05 ahuo 阅读(498) 评论(0) 推荐(0)
摘要:Authenticode®是一种数字签名格式,它是用来验证二进制软件的来源和完整性。Authenticode是基于公开密匙加密标准(PKCS) #7 来签名数据,并使用X.509证书来绑定经过数字签发的二进制程序与其软件发布者的身份的联系。这份文档包含Authenticode签名的结构和技术细节。这份文档不讨论如何签发/处理X.509证书,如何使用Windows SDK工具来签署二进制程序,如何部署代码签名基础设施,或者相关的Windows® API函数。这方面的相关信息可以查看在本文档最后的“资源”章节。本资料应用于下列操作系统: Windows Server® 阅读全文
posted @ 2011-07-13 13:55 ahuo 阅读(3487) 评论(0) 推荐(0)
摘要:创建脚本debug.batcall C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\Remote Debugger\x86\msvsmon.exe" /noauth /anyuser /silent创建服务sc create runsys binpath= "cmd /k start c:\debug.bat" type= own type= interact完成后机器不用登录都可以调试了 阅读全文
posted @ 2011-07-07 17:43 ahuo 阅读(293) 评论(0) 推荐(0)
摘要:void ExpandTreeItems(const CTreeCtrl& tree,HTREEITEM hItem) { AfxMessageBox( tree.GetItemText(hItem));HTREEITEM hChildItem = tree.GetChildItem(hItem); if ( NULL != hChildItem)ExpandTreeItems(tree,hChildItem); HTREEITEM hSib = tree.GetNextSiblingItem(hItem);if (hSib != NULL)ExpandTreeItems(tree,h 阅读全文
posted @ 2011-07-06 19:38 ahuo 阅读(5247) 评论(0) 推荐(0)
摘要:Windows Research KernelWRK目录列表模块目录模块功能cache\cache managerconfig\registry implementationdbgk\user-mode debugger supportex\executive functions (kernel heap, synchronization, time)fsrtl\file system run-time supportio\I/O managerke\scheduler, CPU management, low-level synchronizationlpc\local procedure 阅读全文
posted @ 2011-05-29 22:44 ahuo 阅读(8733) 评论(0) 推荐(0)
摘要:.dml_startkd> .dml_startAnalyze last eventBrowse process informationBrowse core commandsBrowse extension chainBrowse dot commandskd> .help /D a*A B C D E F G H I J K L M N O P Q R S T U V W X Y Z All. commands matching a*: .allow_bp_ba_convert [0|1] - Control bp/bm/bu breakpoints to use hardwa 阅读全文
posted @ 2011-04-15 13:56 ahuo 阅读(391) 评论(0) 推荐(0)
摘要:NTSTATUS ntStatus = STATUS_SUCCESS; PDEVICE_OBJECT DeviceObject = NULL; PFILE_OBJECT FileObject = NULL; ntStatus = IoGetDeviceObjectPointer(pObjectName,FILE_ALL_ACCESS,&FileObject,&DeviceObject); if(!NT_SUCCESS(ntStatus)) { KdPrint(("IoGetDeviceObjectPointer Failed,ntStatus = 0x%08lX\n& 阅读全文
posted @ 2011-04-10 15:16 ahuo 阅读(458) 评论(0) 推荐(0)
摘要:1.什么是Access TokenAccess Token用来标识一个用户,其中包括用户的SID和用户所属组的SID,还包括这个用户和所属用户组的所拥有的权限列表。当用户输入用户名和密码登陆到Windows之后,Windows会创建一个Acess Token,用来标识这个用户。在这个用户下创建的进程都将得到一份这个Access Token的备份。当进程需要访问一个可以加密的对象(如文件,事件等)时,windows利用这个Access Token来跟对象的Security Descriptor进行比较,以确认这个进程是否有权限来访问这个对象。(关于SID和Security Descriptor请 阅读全文
posted @ 2011-03-27 23:12 ahuo 阅读(730) 评论(0) 推荐(0)
摘要:1,一个session中可以拥有多个winstation,一个winstation必然属于某个session,且无法更换。2,所有winstation的函数,包括OpenWindowStation,CreateWindowStation,EnumWindowStations等等,均仅限于调用Process的primary token的session。3,一个process仅对应一个session,也即其primary token的session。更简单的方法是ProcessIdToSessionId。当然也可以通过查询primary token的方法获得。一个process的thread可以拥 阅读全文
posted @ 2011-03-27 23:10 ahuo 阅读(797) 评论(0) 推荐(0)
摘要:用法: prog.exe address1:port1 address2:port2程序将从本地端口的port1接收的数据发往 address1:port1, 同时address1:port1发出的数据将转发会原始的发送者。#ifndef __WIN32__#include<time.h>#include<errno.h>#include<fcntl.h>#include<unistd.h>#include<signal.h>#include<sys/types.h>#include<netinet/in.h> 阅读全文
posted @ 2011-03-27 23:03 ahuo 阅读(881) 评论(0) 推荐(0)
摘要:#include<stdio.h>#include<assert.h>#include<windows.h>#defineLOCK_READ0#defineLOCK_WRITE1classrwlock{public:rwlock();~rwlock();public:voidlock(intdirect);voidunlock(intdirect);voidlock_exclusive(void);voidunlock_exclusive(void);voidwrlock(){lock(LOCK_WRITE);}voidwrunlock(){unlock(L 阅读全文
posted @ 2011-03-27 23:00 ahuo 阅读(391) 评论(0) 推荐(0)
摘要:HANDLE hToken;TOKEN_PRIVILEGES tkp;OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken);tkp.PrivilegeCount=1;tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);AdjustTokenPrivileges(hToken,FALSE,& 阅读全文
posted @ 2011-03-27 22:58 ahuo 阅读(429) 评论(0) 推荐(0)
摘要:1、对于CJK(多字节编码)的环境(泰文,日文,韩文,中文),CP_ACP与CP_OEMCP没有区别。2、对于非 CJK(单字节编码)的环境这两个代码页不同1)对应的实际代码页不同,例如English-US的环境,ACP对应1252,OEMCP而437。2)一个字节能表示的数值范围是(0-255),对于小于128的编码,437和1252对应的字符是一样的。3)对于大于128的编码,是不一样的,有可能有些OEM字符(大于128的编码)在437中不存在,有些ASCII(大于128的编码)字符在1252中不存在。4)相同的编码,对应的字符有可能不同。5)同理,相同的字符对应的编码有可能不同。3、wi 阅读全文
posted @ 2011-03-27 22:49 ahuo 阅读(1790) 评论(0) 推荐(0)
摘要:rem exe文件签名signtool.exe sign /s "My" /n "Beijing Cybervision Co., Ltd" /t "http://timestamp.verisign.com/scripts/timstamp.dll" "files\ClientSetup.exe"rem ################################rem 对sys文件进行签名 一定要先签名,再生产cat文件,顺序不能变remsigntool.exe sign /ac "MSCV-VS 阅读全文
posted @ 2011-03-17 10:28 ahuo 阅读(1023) 评论(0) 推荐(0)
摘要:void _splitpath( const char *path, char *drive, char *dir, char *fname, char *ext );void _wsplitpath( const wchar_t *path, wchar_t *drive, wchar_t *dir, wchar_t *fname, wchar_t *ext ); 阅读全文
posted @ 2011-03-11 16:47 ahuo 阅读(340) 评论(0) 推荐(0)
摘要:list与vector分别通过链表和数组实现,所以list进行删除、插入操作时效率要比vector高出许多,而vector进行随机访问时要比list高,可是当进行顺序添加和顺序遍历时的效率两者的效率又是谁高呢?首先分析一下,对于顺序追加的操作,当vector预先分配的内存不够时,需要重新分配内存并复制对象,会对效率产生负面的影响;而list在每添加一个对象时都必须动态分配,每次动态分配内存都需要消耗系统CPU时间,这也是严重影响list效率的问题,所以list的运行效率反而可能比vector的还要低。而从另外一角度,list每个对象都必须有指向下一个对象的指针,所以每个对象都要比vector多 阅读全文
posted @ 2011-03-08 14:25 ahuo 阅读(679) 评论(0) 推荐(0)
摘要:typedef BOOL (CALLBACK * PWTSQueryUserToken)(ULONG SessionId, PHANDLE phToken);BOOL DSCreateProcess(DWORD flags, DWORD session, LPCTSTR lpApplicationName, LPTSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreation 阅读全文
posted @ 2011-03-04 13:03 ahuo 阅读(790) 评论(0) 推荐(0)
摘要:OSVERSIONINFOEX osif = {0}; osif.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); ::GetVersionEx((OSVERSIONINFO*)&osif); if (osif.dwMajorVersion == 6) //vista or 2008 { HANDLE hProcess = GetCurrentProcess(); HANDLE hToken = 0; if (OpenProcessToken(hProcess,TOKEN_ALL_ACCESS , &hToken)) { DWORD 阅读全文
posted @ 2011-03-04 11:33 ahuo 阅读(280) 评论(0) 推荐(0)
摘要:RaiseException  该函数是用来抛出一个调用线程时发生的异常. 语法  void WINAPI RaiseException(   __in DWORD dwExceptionCode,   __in DWORD dwExceptionFlags,   __in DWORD nNumberOfArguments,   __in const ULONG_PTR *lpArguments );   dwExceptionCode   一个在抛出异常时应用程序定义的异常代码。 该筛选表达式和异常处理程序的异常处理程序块可以使用GetExceptionCode函数获得它的值。   请注意, 阅读全文
posted @ 2011-02-22 11:23 ahuo 阅读(553) 评论(1) 推荐(0)
摘要:创建服务sc create runsysbinpath= "cmd /k start" type= own type= interact启动服务net start runsys 阅读全文
posted @ 2010-07-14 15:37 ahuo 阅读(677) 评论(1) 推荐(0)

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