Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
Z

zh w

@zh w
About
Posts
9
Topics
3
Shares
0
Groups
0
Followers
0
Following
0

Posts

Recent Best Controversial

  • Intercept "TextOut" API
    Z zh w

    Hi all! Look. typedef (WINAPI *TextOutAType)(HDC,int,int,LPCSTR,int); TextOutAType oldTextOutAaddr=0; //here is ourself function BOOL WINAPI MyTextOutA(HDC hdc, int nXStart, int nYStart, LPCSTR string, int cbString) { MessageBox(0,string,"aha",0); return oldTextOutAaddr(hdc,nXStart,nYStart,string,cbString); } BOOL HookApiTextOutA(const HMODULE hModule) { IMAGE_DOS_HEADER *pdos; IMAGE_NT_HEADERS *pnt; IMAGE_DATA_DIRECTORY *pSymbolTable; IMAGE_IMPORT_DESCRIPTOR *pimport; pdos=(IMAGE_DOS_HEADER*)hModule; pnt=(IMAGE_NT_HEADERS*)((DWORD)pdos + pdos->e_lfanew); pSymbolTable=&pnt->OptionalHeader.DataDirectory[1]; pimport=(IMAGE_IMPORT_DESCRIPTOR*)((DWORD)pdos + pSymbolTable->VirtualAddress); while(pimport->FirstThunk){ IMAGE_THUNK_DATA *pold,*pnew; pold = (IMAGE_THUNK_DATA*)((DWORD)pdos + pimport->OriginalFirstThunk); pnew = (IMAGE_THUNK_DATA*)((DWORD)pdos + pimport->FirstThunk); while(pold->u1.Function){ if(IMAGE_ORDINAL_FLAG != (pold->u1.Ordinal & IMAGE_ORDINAL_FLAG)) { IMAGE_IMPORT_BY_NAME *pname; pname = (IMAGE_IMPORT_BY_NAME*)((DWORD)pdos + *((DWORD*)pold)); PROC *ppfn=(PROC*)(pnew->u1.Function); if(strcmp("TextOutA",(char*)pname->Name)==0) { oldTextOutAaddr=(TextOutAType)(ppfn); //here is system API "TextOutA" address DWORD addr=(DWORD)MyTextOutA; DWORD written=0; DWORD oldProtect=NULL; VirtualProtect(&pnew->u1.Function,sizeof(DWORD),PAGE_WRITECOPY,&oldProtect); WriteProcessMemory(GetCurrentProcess(),&pnew->u1.Function, &addr,sizeof(DWORD), &written); } } pold++; pnew++; } pimport++; } return TRUE; } Now,when we use TextOutA,it's using "MyTextOutA" first in fact. TO: Mark Salsbery,this isn't a joke.:) IcyGaze, hope make friend with you~

    C / C++ / MFC json

  • How I can learn my english
    Z zh w

    嘿嘿~ 首先感谢各位的 Reply.有你们的帮助下,我想我的英语会进步很快! Last, nice to meet you~

    The Lounge help

  • How I can learn my english
    Z zh w

    what do you mean?!:confused: -- modified at 3:44 Wednesday 11th October, 2006

    The Lounge help

  • how can get words form screen
    Z zh w

    thanks all the same. intercept API can help us do more useful things. get words from windows screen just only a little section...

    C / C++ / MFC tutorial

  • how can get words form screen
    Z zh w

    first intercept "TextOut", second replacing it,use our function "MyTextOut" : MyTextOut(int nXStart, int nYStart, LPCSTR lpszString,int cbString) { //do anything //here is "TextOut" to do } !when we use the "TextOut",it run "MyTextOut" first in fact. -- modified at 3:41 Wednesday 11th October, 2006

    C / C++ / MFC tutorial

  • how can get words form screen
    Z zh w

    HookApi,example "TextOutA",but how do it.

    C / C++ / MFC tutorial

  • How I can learn my english
    Z zh w

    thanks! I need moer information for Visual C++,so I get here. Sorry,the syntax may be is error.

    The Lounge help

  • How I can learn my english
    Z zh w

    My engliah is very poor,so I hope someone can help me. ......

    The Lounge help

  • Pay me to learn
    Z zh w

    :) hello everyone~

    The Lounge career question learning
  • Login

  • Don't have an account? Register

  • Login or register to search.
  • First post
    Last post
0
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups