文章分类 - 今天你写代码了吗?
记录每天的练习代码,坚持。
摘要:事件等待实例(来自windows 核心编程)中文注释一遍,加深印象#include "HandShare.h"//// 当客户端从服务端请求时HANDLE g_hRequestSubmintted;//// 当服务端发送结果给客户端时HANDLE g_hResultReturned;//// 缓冲区用于交换数据TCHAR g_szShareRequestAndResultBuffer[1024];//// 向客户端发送特殊的值,让服务端线程结束TCHAR g_szServerShoutdown[] = TEXT("Server Shutdown");//
阅读全文
摘要:[什么是关键段] 关键段(Critical section)是一小段代码,它在执行之前需要独占一些共享资源的访问权。这种方式可以上多行代码以"原子方式"来对资源进行操控。这里的原子方式,是指代码知道除了当前线程以外,没有其他任何线程会同时访问该资源。[什么时候使用]当我们有一个资源要让多个线程访问时;当不能用Interlocked函数解决同步问题时;[怎么使用关键段]#include <Windows.h>DWORD WINAPI FirstThread(PVOID pvParam);DWORD WINAPI SecondThread(PVOID pvParam
阅读全文
摘要:在使用注册表AppInit_DLLs进程注入时,设置后,当新进程创建时,自动注入到新进程当中去。需要注意的时。后面的路径当中不能有空格。MrSys搁置这么久,一直卡在这个问题上。今天终于解决了。2012-09-18
阅读全文
摘要:不管是面试还是日常使用,这个都是经常需要用到的。所以写一个以后自己用。#include <stdio.h>char *MyStrcpy_n(char *dst[], char *src[], unsigned int CopyNum);int main(int argc, char *argv[]){ char mystring[6] = ""; char srcstring[] = "This is test string!"; MyStrcpy_n(mystring, srcstring, sizeof(mystring)); print
阅读全文
摘要:今天碰到一个有意思的东西。对于那些懒得打扫电脑桌面,又嫌桌面不够摆放图标的人可以试试。/*改变桌面图标排列方式来自Trojan2012-09-07*/#include <Windows.h>#include <stdio.h>int main(int argc, const char **argv, const char **envp){ HWND hWndDesktop; // eax@1 HWND hWndProgman; // eax@1 HWND hWndSHELLDLL_DefView; // eax@1 HWND hWndSysListView32; //
阅读全文
摘要:常用代码/*映身文件到内存2012-09-06 */#include <windows.h>#include <stdio.h>int main(int argc, char *argv[]){ char *cFilePath[MAX_PATH] = {""}; HANDLE hFileHandle, hFileMap; PIMAGE_DOS_HEADER pDosHead; LPVOID pMemBase; char tmp[64]; if(argv[1] == NULL) { printf("Error\n")...
阅读全文
摘要:进程清零,网上很多,这些是分析Trojan时,Trojan用来结束杀毒软件用的。呵呵。。。/*内存清0法结束进程来自Trojan2010-09-05ZwProtectVirtualMemory 未导出,需要编写专门的程序获取typedef NTSTATUS (*PZwProtectVirtualMemory)(INHANDLEProcessHandle, IN OUT PVOID *BaseAddress, IN OUT PULONG ProtectSize, IN ULONG NewProtect, OUT PULONG OldProtect); ZwP...
阅读全文
摘要:最近想起开发一个工具,用于日常分析样本用。主要是写一个api监视器。在网上搜了一下,没有一个好用的。要么是工具太强大,以致我不会用。这样的话那就动手写一个吧。 主要监视R3层的api调用及参数。显示看它干了些什么。使用R3 inline hook方法将需要监控的api钩住。截取参数。 首先弄一个inline hook 的模板(来自网络)。至于原理,网上一大堆。口才不大好,就不写了。// APIMondll.cpp : 定义 DLL 应用程序的入口点。//#include "stdafx.h"#include "APIMondll.h" #include
阅读全文
摘要:2012-08-29进程枚举,时常要用到。(ToolHelp大法) #include <windows.h>#include <stdio.h>#include <Tlhelp32.h>int main(int argc, char *argv[]){ PROCESSENTRY32 pe32; HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL); if(hProcessSnap == INVALID_HANDLE_VALUE) { print...
阅读全文
摘要:在写程序时有时要提升自己的权限。所以写个函数,以免重复劳动。/** if(!AdjustPrivileges())* {* [Error tips]....* }*/ BOOL AdjustPrivileges(){ HANDLE hToken; TOKEN_PRIVILEGES tkp; /*参数说明(MSDN) TOKEN_ADJUST_DEFAULT Required to change the default owner, primary group, or DACL of an ac...
阅读全文
摘要:这两天在写一个的小工具。需要用到dll与exe通信,dll中去发WM_COPYDATA消息,exe中接受并处理。这个问题在写的时候断断续续弄了两天。后来干脆写个demo记录一下。以便给方便别人查阅和自己观看。首先定义需要发送的数据,我这里用结构体表示。到时候将结构体发送过去就是了。 1 /* 2 *CopyDataDll.h 3 */ 4 5 #ifdef COPYDATADLL_EXPORTS 6 #define COPYDATADLL_API __declspec(dllexport) 7 #else 8 #define COPYDATADLL_API __declspec(dllim..
阅读全文

浙公网安备 33010602011771号