ÊÖ°ÑÊÖ½ÌÄã×ö´«ÆæÍâ¹Ò
ÄÇôÎÒÃǾÍд³öÕâ¸öº¯Êý
typedef struct
{
int len;
char text[100];
}DT;
void SText(DWORD eax1)
{
DT dstring;
strcpy(dstring.text,(char*)string);
dstring.len=strlen(string);
txtaddress=(DWORD)&dstring.text[0];
_asm
{
mov eax, eax1
call setshowmode1
call setshowmode2
push TRANSPARENT
push eax
call setshowmode3
push txtcolor
push bkcol
push txtaddress
mov ecx, y
mov edx, x
mov eax, eax1
call ShowTxtcall
}
}
È»ºó¶¨ÒåһЩȫ¾Ö±äÁ¿ºÍÒ»¸ö¿ÉÒÔ¶¯Ì¬ÐÞ¸ÄÊä³öµÄ×Ö·û´®ºÍÑÕÉ«ÓëλÖõĺ¯Êý£º
const DWORD conaddress=0x47A6CC;
const DWORD ShowTxtcall=0x4a09a0;
const DWORD setshowmode1=0x44D8B4,setshowmode2=0x41834C,setshowmode3=0x406434;
DWORD x=0x0, y=0x0,txtcolor=0x0,bkcol=0x1e00ff;
DWORD txtaddress=0x0;
char* string="´«ÆæÐ¡Íâ¹Ò--By LiquidX Diy 2005.6.15";
void settxt(char* strings,
DWORD X,DWORD Y,
DWORD TXTCOLOR,DWORD BKCOL)
{
string=strings;
x=X;
y=Y;
txtcolor=TXTCOLOR;
bkcol=BKCOL;
}
ÏÖÔÚÎÒÃÇµÄÆÁÄ»Êä³öº¯ÊýÒѾģÄâ³öÀ´ÁË,ÏÂÃæÒª×öµÄ¾ÍÊǸĵôÓÎÏ·ÏÔʾÆÁÄ»×ø±êº¯Êý(¹ØÓÚÕâ¸öº¯ÊýµØÖ·Äã¿ÉÒÔÓýðɽÓÎÏÀµÈ¹¤¾ß²éÕҺܷ½±ãµÄ)ÄÚ²¿Ö´ÐеÄÁ÷³Ì£¬Ê¹Õâ¸öº¯ÊýÌø×ªµ½ÎÒÃǵĺ¯ÊýÖÐÀ´ÕâÑù¾Í¿ÉÒÔÔÚÆÁÄ»ÉÏÎÞÉÁ¶¯µÄÊä³öÏëÊä³öµÄ×Ö·û´®ÁË..
¶¨ÒåÒ»¸önakedº¯Êý ¹ØÓÚnaked¿ÉÒÔÈ¥ÍøÉϲé²é..
__declspec(naked) initST()
{
_asm
{
push eax
push edx
push ecx
push ebp//±£´æ²ÎÊý
mov eax,dword ptr[ebp-0x8] //»ñµÃÎÒÃǵ±Ê±eaxÖеÄÖµ
push eax //´«Èëeax²ÎÊý
call disfunc //µ÷ÓÃÎÒÃǵĺ¯Êý
pop ebp //»Ö¸´¶ÑÕ»
pop ecx
pop edx
pop eax
mov ecx,9
jmp conaddress //·µ»ØÓÎÏ·º¯Êý¼ÌÐøÖ´ÐÐ
}
}
void __stdcall disfunc(DWORD eax1)
{
SText(eax1);//µ÷ÓÃÎÒÃǵĺ¯Êý
}
ºÃÁË£¬ÏÖÔÚ»ù±¾É϶¼Íê³ÉµÃ²î²»¶àÁË£¬ÏÖÔÚÖ»ÐèÒªÐ޸ĻúÆ÷ÂëÁË
ÉÏÃæ´úÂëÖÐÎÒÃÇ¿´µ½º¯ÊýÖÐÒ»Ö±¶¼ÐèÒª»ñµÃµ±Ê±µÄeaxÖеÄÖµ£¬¾¹ý¸ú×Ù·ÖÎöÎÒÑ¡Ôñ0x47a6cc(·µ»Ø)(ÏÔʾµØÍ¼×ø±êº¯ÊýµÄÈë¿ÚÆ«ÒÆ¼¸¸ö×Ö½ÚÔÚÕâÀï¿ÉÒÔÔÚ±¾º¯ÊýµÚһʱ¼äÄÚÄõ½eax¶ø´¦Àí»úÆ÷ÂëÁ¿½ÏÉÙ)´¦µØÖ·...
´úÂëÈçÏ£º
LRESULT CALLBACK hookproc(int ncode ,WPARAM wparam,LPARAM lparam)
{
if(KEYUP(lparam)&&ncode==HC_ACTION&&wparam==VK_HOME)
{
settxt("ShowText Testing....ÖÕÓڳɹ¦À²!!!",0x120,0x80,0x0,0x00ffff);
}
if(KEYUP(lparam)&&ncode==HC_ACTION&&wparam==VK_F12)
{
char buf[MAX_PATH];
::GetClassName(GetActiveWindow(),buf,MAX_PATH);
if (lstrcmpi(buf,"TFrmMain")==0)
{
_asm //¸Äд µØÖ· Ìø×ªµ½ÎÒÃǵĺ¯Êý
{
lea eax,initST
mov ebx,0x47a6cc //дÈëÕâ¸öµØÖ·
sub eax,ebx
mov esi,0x47a6c7
mov dword ptr[esi],0xe9 //JMP
mov dword ptr[esi+0x1],eax //ºÏ³ÉÌø×ªÖ¸Áî
}
}
}
return ::CallNextHookEx(hook,ncode,wparam,lparam);
}
ÏÖÔÚÎÒÃǵÄÒ»¸öÆÁÄ»Êä³öµÄ¼òµ¥ÄÚ¹Ò¾ÍÍê³ÉÁË,¸ù¾ÝÍøÉÏÌṩµÄһЩÄÚ´æµØÖ·Äã¿ÉÒÔ¸øËü¼ÓÉϸü¶àµÄ¹¦ÄÜ¡£
×îºóÒ»¼þÊÂÇé¾ÍÊÇÍâ¹ÒÍ˳öʱ»Ö¸´»úÆ÷Âë,ÒÔÃâÓÎÏ·Ìø×ªµ½Ò»¸ö²»¿ÉÓõĵØÖ·Ôì³É±ÀÀ£..
´úÂëÈçÏÂ:
void revert()
{
_asm
{
mov esi,0x47A6C7
mov eax,0xb9
mov dword ptr[esi],eax
mov eax,0x09
mov dword ptr[esi+0x1],eax
}
}
È«ÎÄÍê! ±¾ÈËÄÜÁ¦ÓÐÏÞ,ÓÐÈκδíÎóÖ®´¦Ï£Íû¸æÖ®.ÒÔÃâÔì³ÉÎóµ¼...
±¾ÎÄÅäÌ×´úÂëÏÂÔØ:
mir20057122103.rar