加载映像EXE/DLL到远程进程执行(注入)

LdrSup允许您从文件/内存中加载映像到本地或者远程进程执行(注入), 比如把 寄生虫.exe 注入到 宿主.exe 中运行. 代码演示如何把自己(EXE)注入到QQ.exe中运行. http://rlib.googlecode.com/svn/Examples/Loader/ 标签: RLib 代码片段(1) [代码] [C/C++]代码 ...
2013-01-29 23:44 | 阅读 4800 次 | 评论 1 条

svn merge vs svn diff

You are *not* merging two unrelated sources. https://svn/A/trunk@1000 and https://svn/A/trunk@2000 are related to each other yes?This matters because: 1) 'svn diff' ignores ancestry by default 2) 'svn merge' considers ancestry by defaultCheck out this section of the Subversion book, http://svn...
2012-08-17 22:38 | 阅读 5248 次 | 评论 2 条

用C语言编写一个Linux下的简单shell程序

#include <stdio.h>#include <string.h>#include <unistd.h>#include <stdlib.h>#include <sys/types.h>#include <errno.h>#include <sys/stat.h>char parsecmd(char *);/************关于本文档*********************************************filename:用C语言编写一个Linux下的简单shell程序*purpose:展示了C语言如何进行系统调用执行logout cd ls pwd p...
2010-11-27 00:49 | 阅读 3186 次 | 评论 3 条

控制台调整分辨率达到全屏显示

#include <stdarg.h> //包含va_list#include <stdio.h> //包含vsprintf()#include <string.h>#include <windows.h>#define OUTSCREEN printf typedef BOOL (WINAPI *PROCSETCONSOLEDISPLAYMODE)(HANDLE,DWORD,LPDWORD);PROCSETCONSOLEDISPLAYMODE SetConsoleDisplayMode;int main(){ DWORD dwNewMode=1; DWORD dwOldMo...
2010-09-28 01:48 | 阅读 2317 次 | 评论 0 条

stub 与 mock 的区别

stub 与 mock 的区别 关键字: stub, mock, test, tdd 有些东西就是这样,有些东西你心理面很明白,可是当你要给别人讲的时候却发现有一点点困难。 关于Stub &amp; Mock的确别,我的理解是: 1.先说不同点: Stub方法里面需要实现逻辑,因为对Stub的调用者需要依赖,stub模块或函数的返回值,正因为此,搭建stub跟mock比起来,是比较耗费精力的。也正因为此,stub一般用于粗粒度测试。 而mock的关键则是他要足够啥,只要能够...
2010-09-22 01:30 | 阅读 6062 次 | 评论 2 条

C++实用技巧--单元测试实现

复杂的东西写多了,如今写点简单的好了。由于功能上的需要,Vczh Library++3.0被我 搞得很离谱。为了开发维护的遍历、减少粗心犯下的错误以及增强单元测试、回归测试和测试工具,因此记录下一些开发上的小技巧,以便抛砖引玉,造福他人。欢 迎高手来喷,菜鸟膜拜。 之前的文章讲了指针和内存的一些问题,今天说一下单元测试的问题。如果在团队里面没有对单元测试的框架有要求的 话,其实我们可以使用一个最简单的方法来搭建在IDE里面运行的单元测试框架,整个框架只需十几行代码。我们先来考虑一下功能最少的单元测试框架需要完成 什么样的内容。首先我们要运行一个一个的测试用例,其次在一个测试...
2010-08-17 01:48 | 阅读 2050 次 | 评论 1 条

多核情况下添加新中断的方法

原创】多核机器下添加新中断的方法【文章标题】: 多核情况下添加新中断的方法【文章作者】: chimney--------------------------------------------------------------------------------【详细过程】 中断向量表的修改应该都很熟悉了,combojiang大侠在他的rootkit hook系列文章里将的很详细了。但是combojiang文章 中有关IDT的代码都是在单核机器中实现的,如果你有个双核的机子,你正好又学习了combojiang大大的文章,你就会发现出 问题了。因为每个CPU 都有自己的...
2010-08-14 22:34 | 阅读 2348 次 | 评论 0 条

C语言中可变参数函数相关的一些偏方

C语言中有一种长度不确定的参数,形如:"…",它主要用在参数个数不确定的函数中,我们最容易想到的例子是printf函数。 原型: int printf( const char *format [, argument]… ); 使用例: printf("Enjoy yourself everyday!\n"); printf("The value is %d!\n", value); 这种可变参数可以说是C语言一个比较难理解的部分,这里会由几...
2010-08-07 15:24 | 阅读 1767 次 | 评论 1 条

&lt;&lt;导入表的获取与动态填充&gt;&gt;初步学习笔记

<<导入表的获取与动态填充>>初步学习笔记[1]导入表结构的获取<1.>获取PE基址 (IMAGE_DOS_HEADER)<2>.获取PE头部(IMAGE_NT_HEADERS32)<3>. 获取导入表的存储结构(IMAGE_NT_HEADERS32.OptionalHeader.DataDirectory[1])导出 表:IMAGE_NT_HEADERS32.OptionalHeader.DataDirectory[0]导入 表:IMAGE_NT_HEADERS32.OptionalHeader.DataDirectory[1]结构其实就是一个 IMAGE_DATA_DIRE...
2010-08-05 00:00 | 阅读 1546 次 | 评论 0 条

API Hook的几种实现

API Hook的几种实现 所谓的API Hook,就是利用某种技术将API的调用转为我们自己定义的函数的调用。这种技术在实际项目里面的应用也是很广泛的。最近,我在做关于我们项目的自动化 测试的时候,就遇到了这种情况。在写测试代码之前,我们对测试代码有一些要求。1. 不能因为测试代码而修改原代码。2. 原有的模块是以dll格式输出的,在做测试的时候,要测的类和函数也只能使用dll的导出类或者函数,而不能将源文件重新编译。由于这些限制,导致测试用 例往往不能在普通的机器上运行。比如这样一个函数: <!--Code highlighting ...
2010-08-02 23:13 | 阅读 2103 次 | 评论 1 条

互斥锁,条件变量的多生产者,单消费者简单…

//2010-01-19 yaojianming 摘自unix网络编程2// 编译:g++ luts.cpp -o luts -lpthread#include <stdio.h>#include <unistd.h>#include <pthread.h>#define MAXNITEMS 100000#define MAXNTHREADS 10int nitems = MAXNITEMS;int buff[MAXNITEMS];struct val { pthread_mutex_t mutex; int nput; int nval;} put = { PT...
2010-07-30 19:48 | 阅读 2342 次 | 评论 0 条

函数打桩原型

//--- 借用宏定义实现#include <stdio.h>int Function_2(){ return 2; }int Function_1(){ return 1; }int main( int ac, char **av ){ printf("stub test:%d\n", Function_1());#define Function_1 Function_2 printf("stub test:%d\n", Function_1());#undef Function_1 printf("stub test:%d\n...
2010-07-24 22:12 | 阅读 2154 次 | 评论 0 条

vc下调试activex控件

vc下调试activex控件 在vc下调试activex控件.出现了First-chance exception in xxx.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception.异常. 实际上在vc下一般利用TSTCON32.EXE调试控件.目前我的程序底层封装成dll.留接口给ocx调用.这里在你按F5调式ocx的时候,一般会选择调试方式.选择TSTCON32.EXE去调试控件. 出现问题最终解决了,是我没有把动态库和ocx放在同一个目录下.导致ocx不...
2010-07-19 00:18 | 阅读 8214 次 | 评论 1 条

puts 与 write 的关系

#include <stdio.h>#include <io.h>int main( int ac, char **av ){ char str[] = "hello world.\n"; //write( (int)stdout, str, strlen(str)); write( 1, str, strlen(str)); return 0;}puts(buffer)与write( 1, buffer, strlen(buffer)) 具有等效的功能。
2010-07-16 23:53 | 阅读 1636 次 | 评论 0 条

Linux下线程的挂起和恢复

Linux下线程的挂起和恢复 POSIX的Linux操作系统没有提供线程挂起和恢复的例程,在网上找了找,看到一个老外写的程序,感觉想法不错,放在这里大家分享一下。理 论上应该可以实现,不过我没有试,给大家提供一个参考。 (在读取缓存里的数据时,当缓存中没有数据最好把 线程挂起)void CPrcThread <Worker>::suspend() { ifdef WIN32 //do windows specific things here... #endif #ifdef __linux__ p...
2010-07-10 00:04 | 阅读 1804 次 | 评论 0 条

对Windows和Linux的Socket进一步封装

呵呵,昨天对Windows下的Socket API进行了简单的封装,今天趁热打铁把Linux下的Socket也一起封装了到了一个类中,相比昨天的那个类,只是做了少些修改,增加了一些宏,废话 不多说了,看下面代码,(顺便带上一个简单的聊天代码Linux和Windows对聊的)。如果用C++的异常对出错进行处理就更好了,呵呵,有时间在添 加上^_^////////////////////////////////////////////////////////////////////////////////////////////////////////////////////...
2010-07-04 03:15 | 阅读 3183 次 | 评论 0 条

template 模板使用

#include <string>template <typename T>inline T const&amp; max(T a,T b){ return a<b?b:a;}int main(){ std::string s; const char *a1="apple",*a2="peach"; const char aa1[]="apple",aa2[]="peacha"; ::max(a1,a2); ::max(aa1,aa2); ::max("apple","peach"); ::max("apple","peacha"); ...
2010-07-02 19:56 | 阅读 2023 次 | 评论 0 条

BSD Sockets 对比 Winsock

BSD Sockets Compatibility by Warren Young So you say you’re a long-time Unix hacker who’s new to Windows programming? And you’ve heard of this great API called Winsock that’s compatibile with your beloved BSD sockets, but try as you might, you just can’t find the readv() call? Well bunk...
2010-07-02 19:34 | 阅读 2033 次 | 评论 1 条

测试文件读取模式(用于程序优化)

/**************************************************\* Functions developed by zhong yunde. ** filename : test_readfile.cpp ** creat time : 2008/05/08 ** 功能:测试文件读取模式(用于程序优化) *\************************************************...
2010-07-02 01:07 | 阅读 1776 次 | 评论 0 条

实现了一个文件树遍历小程序

// 其实算是抄书上的,ft// printdir.c#include <unistd.h>#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <dirent.h>void printdir(char *dir, int depth);int main(int argc, char *argv[]){ if (argc!=2) { printf("usage: printdir [path]"); retur...
2010-06-28 06:05 | 阅读 1864 次 | 评论 0 条
浏览1966838次