摘要: int GetWan(char *ww) {WSAData wsaDat; short int Port = 80; WSAStartup(MAKEWORD(1,1),&wsaDat); SOCKET sd = socket(AF_INET, SOCK_STREAM, 0);SOCKADDR_IN sockAddr; memset((void*)&sockAddr,0,sizeof(sockAddr)); sockAddr.sin_family=AF_INET;sockAddr.sin_port=htons(Port); sockAddr.sin_addr.s_addr=ine 阅读全文
posted @ 2011-04-30 14:20 °ι 、曲 终 阅读(1149) 评论(0) 推荐(0)
摘要: 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 °ι 、曲 终 阅读(1667) 评论(0) 推荐(0)
摘要: 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 °ι 、曲 终 阅读(866) 评论(0) 推荐(0)
摘要: 在开发程序过程中,有许多情况中都需要执行程序自己把自己从物理磁盘上删除,例如,卸装程序,一些黑客程序获取信息后自清除等,我们把这些具有自删除功能的程序统称为“自杀”程序。对于一名程序员,想必都有在程序中使用代码删除物理磁盘文件的经历吧,我们只需要简单的调用DeleteFile API函数就可以搞定,但是该函数并不能删除自己,当它执行删除自己时,将会导致出现“无法删除文件:拒绝访问。源文件可能正被使用”的错误提示,其原因是由于本程序在执行删除自己代码时仍处于内存中,在Windows中,不可以删除正在执行中的程序。 为了实现程序自删除功能,我们可以通过多进程的方法解决这个问题。可执行文件在结束返回 阅读全文
posted @ 2011-04-30 14:15 °ι 、曲 终 阅读(1222) 评论(0) 推荐(0)
摘要: 人们都说vc做出的东西可以小点,现在你打开vc编译一个Hello World出来!点属性看下,咦!我没走眼吧,就一Hello World就160kb真是要人命啊!呵呵!上面的情况是笔者所遭遇的情况.不过后来了解vc可以通过设置参数来自定义编译方式.为什么文件那么大!主要是编译器加入了很多没必要的代码(这里是对我们而言,不过有些代码还是有利于安全的).好了我们就手动改下编译器的参数来看看能到多大!我们主要用到的技巧有:一,使用release版而不用debug版编译使用debug版编译会生成许多垃圾信息.我们先使用默认的设置进行一下编译.可以看到编译后生成的文件有152k之巨.使用release版 阅读全文
posted @ 2011-04-30 14:12 °ι 、曲 终 阅读(459) 评论(1) 推荐(1)