欢迎来到Heck's Blog,专业承接拿站、企业建站、仿站、网上商城架构、门户网站搭建、空间域名注册、软件定制等项目。关注网络安全,因为专注,所以专业,懂得放弃,才能收获。有事请发邮件至i@heckjj.com,请记住本站网址:http://www.heckjj.com,多谢。
10月27
系统函数重定位的例子,从<<计算机世界日报>>上Copy出来的.
//源程序 relocate.c
#include <WINDOWS.H>
#include <dos.h>
BOOL WINAPI MyExtTextOut(HDC hDC, int x, int y, UINT nIn
t1, const RECTFAR*p Rect,LPCSTR lpStr, UINT nInt2, int FAR*
lpInt);
WORD FAR PASCAL AllocCStoDSAlias(WORD code_sel);
typedef struct tagFUNC
{
FARPROC lpFarProcReplace; //替代函数地址
FARPROC lpFarProcWindows; //Windows函数地址
BYTE bOld; //保存原函数第一字节
LONG lOld; //保存原函数接后的四字节长值
}FUNC;
FUNC Func={MyExtTextOut,ExtTextOut};
//Windows主函数
int PASCAL WinMain(HINSTANCE hInstance,HINSTANCE hPrevIn
stance,LPSTR lpCmdi ne,int nCmdShow){
HANDLE hMemCode; //代码段句柄
WORD hMemData; //相同基址的可写数据段别名
WORD wOffset; //函数偏移
//源程序 relocate.c
#include <WINDOWS.H>
#include <dos.h>
BOOL WINAPI MyExtTextOut(HDC hDC, int x, int y, UINT nIn
t1, const RECTFAR*p Rect,LPCSTR lpStr, UINT nInt2, int FAR*
lpInt);
WORD FAR PASCAL AllocCStoDSAlias(WORD code_sel);
typedef struct tagFUNC
{
FARPROC lpFarProcReplace; //替代函数地址
FARPROC lpFarProcWindows; //Windows函数地址
BYTE bOld; //保存原函数第一字节
LONG lOld; //保存原函数接后的四字节长值
}FUNC;
FUNC Func={MyExtTextOut,ExtTextOut};
//Windows主函数
int PASCAL WinMain(HINSTANCE hInstance,HINSTANCE hPrevIn
stance,LPSTR lpCmdi ne,int nCmdShow){
HANDLE hMemCode; //代码段句柄
WORD hMemData; //相同基址的可写数据段别名
WORD wOffset; //函数偏移





