秀纳

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

文章分类 -  c/c++/gcc/vc++

摘要:class ClassA;typedef DWORD (/**//*CALLBACK*/ ClassA::*lpGetFunctionAddr)(LPCTSTR);class ClassA{public: ClassA(){} virtual ~ClassA(){} DWORD MsgBox(LPCTSTR Text) { MessageBoxA(NULL,T... 阅读全文
posted @ 2008-07-14 20:47 秀纳

摘要:欢迎阅读此篇IOCP教程。我将先给出IOCP的定义然后给出它的实现方法,最后剖析一个Echo程序来为您拨开IOCP的谜云,除去你心中对IOCP的烦恼。OK,但我不能保证你明白IOCP的一切,但我会尽我最大的努力。以下是我会在这篇文章中提到的相关技术: I/O端口 同步/异步 堵塞/非堵塞 服务端/客户端 多线程程序设计 Winsock API 2.0 在这之前,我曾经开发过一个项目,... 阅读全文
posted @ 2008-01-04 22:57 秀纳 阅读(590) 评论(0) 推荐(0)

摘要:在cygwin中可以用gcc创建动态链接库(dll),其命令写法是: gcc -shared -o liberr.dll \ -Wl,--out-implib=liberr.dll.a \ -Wl,--export-all \ -Wl,--enable-auto-image-base \ -Wl,--output-d... 阅读全文
posted @ 2007-12-26 01:00 秀纳 阅读(604) 评论(0) 推荐(0)

摘要:Gcc有超过100个的可用选项,主要包括总体选项、告警和出错选项、优化选项和体系结构相关选项。以下对每一类中最常用的选项进行讲解。 (1)总体选项 Gcc的总结选项如表3.7所示,很多在前面的示例中已经有所涉及。 表3.7 Gcc总体选项列表 后 缀 名 所对应的语言 ... 阅读全文
posted @ 2007-12-25 05:26 秀纳 阅读(5253) 评论(0) 推荐(0)

摘要:Gcc的编译流程分为了四个步骤,分别为: · 预处理(Pre-Processing) · 编译(Compiling) · 汇编(Assembling) · 链接(Linking) 下面就具体来查看一下Gcc是如何完成四个步骤的。 首先,有以下hello.c源代码 #include int main() { printf("Hello! This is our embedde... 阅读全文
posted @ 2007-12-25 05:25 秀纳 阅读(4827) 评论(0) 推荐(1)

摘要://---------------------------------------------------------------------------#include #include #pragma argsused//---------------------------------------------------------------------------typedef vo... 阅读全文
posted @ 2007-08-10 09:48 秀纳 阅读(705) 评论(0) 推荐(0)

摘要:#include #ifndef _HOOK_API_JMP_#define _HOOK_API_JMP_class CHookApi_Jmp {public: HANDLE hProc; void Unlock(void); void Lock(void); BOOL Initialize(LPCTSTR ModuleName, LPCSTR ApiName,... 阅读全文
posted @ 2007-08-10 09:48 秀纳 阅读(1866) 评论(0) 推荐(0)

摘要:#include #include #include #pragma comment(lib,"Dbghelp.lib")#pragma comment(lib,"User32.lib")typedef int (__stdcall *OLD_MessageBox)( HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption,UINT uType );OLD_M... 阅读全文
posted @ 2007-08-09 13:35 秀纳 阅读(461) 评论(0) 推荐(0)

摘要:#include "windows.h"typedef DWORD(WINAPI *PFSuspendProcess)(HANDLE hProcess);typedef DWORD(WINAPI *PFResumeProcess)(HANDLE hProcess);#include "tlhelp32.h"BOOL GetProcessPathByID(DWORD dwPID, LPTSTR lp... 阅读全文
posted @ 2007-07-07 04:03 秀纳 阅读(799) 评论(0) 推荐(0)

摘要:在stdafx.h中添加:#define ISOLATION_AWARE_ENABLED 1//主要是为了调用IsolationAwareInit,IsolationAwareCleanup这两个函数#include ......在DLL_PROCESS_ATTACH的时候调用inline函数:IsolationAwareInit();在DLL_PROCESS_DETACH的时候调用:Isolat... 阅读全文
posted @ 2007-04-07 08:01 秀纳 阅读(374) 评论(0) 推荐(0)

摘要:传统的远程进程控制方式有利用HOOK技术注入DLL,和利用远线程在目标进程中建立新的执行线程的方式. 远线程不被win9x所支持,而hook技术会对目标进程性能造成一定的影响.并具可以通过枚举消息链的方式发现. 本文给出一种动态修改目标进程代码,注入DLL到目标进程的方法,效率高,不需要额外线程.缺点是使用难度大于上面二种办法,并且修改目标代码的方法,受到编译器的影响.使用不同的编译器时... 阅读全文
posted @ 2007-03-28 19:50 秀纳 阅读(1081) 评论(0) 推荐(0)

摘要:标 题: 庆祝编程版块开张,发个简单的loader作 者: marxixing时 间: 2005-06-06,21:48链 接: http://bbs.pediy.com/showthread.php?threadid=14300这是前两天写的一个小工具,用来替换SoftICE的Loader的功能,因为它在我的系统上总是不好用,郁闷,类似PELord的Break Enter的功能,原理是在入口点插... 阅读全文
posted @ 2007-03-28 19:39 秀纳 阅读(292) 评论(0) 推荐(0)

摘要:其实网上有很多的外挂内挂文章我也看了不少,从中得到了很多的帮助。前些时候看到shaker写出的一些传奇外挂的文章之后,再根据自己的研究对外挂知识也算是有了个初步的了解。 外挂分为2种,一种是脱机程序,也就是模拟客户端的程序称为外挂.另一种是利用游戏程序本身的函数对游戏进行一些相关动作的称之为内挂,因为是在游戏进程内部完成任务的。今天要说的是传奇2(虽然这游戏过时了但作为研究来说还是值得的... 阅读全文
posted @ 2007-03-28 19:37 秀纳 阅读(729) 评论(1) 推荐(0)

摘要:标 题: 动态修改别的进程运行流程【原创】作 者: 盖重阳时 间: 2006-05-25,16:03链 接: http://bbs.pediy.com/showthread.php?threadid=26258动态修改别的进程运行流程(原创)【研究作者】 盖重阳【使用工具】 OllyDbg1.10,VS2003【研究平台】 Win2k3【软件名称】 自己写的T.exe【研究日期】 2006-5-2... 阅读全文
posted @ 2007-03-28 19:35 秀纳 阅读(519) 评论(0) 推荐(0)

摘要:大家都知道用静态类型的C语言写的代码,在编译连接成可执行程序后,它的运行时处理逻辑就是固定的了。除非你停掉它,修改源码本身,重新编译连接,然后重新启动。哦,但是,朋友,不知道你遇到过这样的情况没有:你的程序现在运行不是很正常,你现在特别想看看程序里一些变量的值或是其它东西。糟糕的是,你的日志没有输出你需要的东西,你又不能停掉你的应用程序,因为这样你就破坏了运行时环境。况且,你的用户可能会和你说:“... 阅读全文
posted @ 2007-03-28 19:23 秀纳 阅读(313) 评论(0) 推荐(0)

摘要:1、引言 在Windows程序中,各个进程之间常常需要交换数据,进行数据通讯。WIN32 API提供了许多函数使我们能够方便高效的进行进程间的通讯,通过这些函数我们可以控制不同进程间的数据交换,就如同在WIN16中对本地进程进行读写操作一样。 典型的WIN16两进程可以通过共享内存来进行数据交换:(1)进程A将GlobalAlloc(GMEM_SHARE...)API分配一定长度的内存;(2)进程... 阅读全文
posted @ 2007-03-11 23:18 秀纳 阅读(353) 评论(0) 推荐(0)

摘要:我们先定义一些常见类型变量借以说明 int i = 100; long l = 2001; float f=300.2; double d=12345.119; char username[]="女侠程佩君"; char temp[200]; char *buf; CStrin... 阅读全文
posted @ 2007-03-09 23:12 秀纳 阅读(184) 评论(0) 推荐(0)