Welcome to RaGEZONE - MMORPG Development Forums (sponsored by tfn.gr) Mark forums read | View Forum Leaders
RaGEZONE - MMORPG Development Forums (sponsored by tfn.gr)

Kal Development Discuss, [Guide] C++ DLL injection for Main Server at Kal Online forum; mejniok service what you mean exact with it? like speedhack detect.1hh.move etc etc? first hook the Colors etc to write ...




Reply
Thread Tools
[Guide] C++ DLL injection for Main Server
 
 
Boring ô_Ô

Rank: Member


Reply With Quote
 
Join Date: Sep 2006
Location: Germany
Posts: 541
03-27-2008, 09:07 AM
 
mejniok service what you mean exact with it?

like speedhack detect.1hh.move etc etc?

first hook the Colors etc to write own Infos @Main server ;)
 
 
permalink
 

 
Ultimate Member

Rank: New Blood


Reply With Quote
 
Join Date: Sep 2006
Location: Poland
Posts: 174
03-27-2008, 09:21 AM
 
I mean, i have no idea how to check system messages, sended when some item from my new menu, will clicked.
 
 
permalink
 

 
KalOnline Grand Old Man

Rank: Alpha Member


Reply With Quote
 
Join Date: Mar 2007
Location: Aarhus, Denmark
Posts: 2,597
03-27-2008, 10:58 AM
 
Out of interest, did you two use FindWindow to get the HWND or another function ?

Quote:
first hook the Colors etc to write own Infos @Main server ;)
Gief the ASM function address, it's missing in luca's list.
 
 
permalink
 

 
Ultimate Member

Rank: New Blood


Reply With Quote
 
Join Date: Sep 2006
Location: Poland
Posts: 174
03-27-2008, 11:38 AM
 
Yeah... findwindow(), getmenu() finally appendmenu()

Code:
var MSvrHandle: HWND;
    MSvrMenu: hMenu;
    SubMenu: hMenu;
begin
MSvrHandle:=FindWindow('MAINSVR',nil);
MSvrMenu:=GetMenu(MSvrHandle);
 if MSvrHandle<>0 then
 begin
  //Prepare stuff for new submenu...
  SubMenu:=CreateMenu;
  AppendMenu(Submenu,MF_STRING,6361,'Hello');
  AppendMenu(Submenu,MF_STRING,6362,'World');
  AppendMenu(Submenu,MF_SEPARATOR,0,Nil);
  AppendMenu(Submenu,MF_STRING,6363,':P');

  //Assign New SubMenu to MainSvrT menu
  AppendMenu(MSvrMenu,MF_POPUP,SubMenu,'My menu');
 end;
You too usin that WinAPI's func's?
 
 
permalink
 

 
Boring ô_Ô

Rank: Member


Reply With Quote
 
Join Date: Sep 2006
Location: Germany
Posts: 541
03-27-2008, 11:48 AM
 
blackInfo=0x00432890;
redInfo=0x004328C0;
blueInfo=0x00432860;

:]
 
 
permalink
 

 
KalOnline Grand Old Man

Rank: Alpha Member


Reply With Quote
 
Join Date: Mar 2007
Location: Aarhus, Denmark
Posts: 2,597
03-27-2008, 11:52 AM
 
Cool, we're doing the same thing then. And thanks for the info Bloodfreak ;-)

PHP Code:
    ///
    /// Write a Message to the Server Console.    
    ///
    
void KalHook::ShowInfo(LPCSTR text,Color color)
    {
        
DWORD infoAddress;
        
        switch(
color)
        {
            case 
Color::BLUE:
                
infoAddress 0x00432860
            break;
            case 
Color::RED:
                
infoAddress 0x004328C0;
            break;
            case 
Color::BLACK:
            default:
                
infoAddress 0x00432890;
            break;
        }
        
        
__asm {
            
push 1
            push text
            call infoAddress
            add esp
,8
        
}
    } 
PHP Code:
enum Color REDBLUEBLACK }; 
PHP Code:
    ///
    ///    DLL Loading.
    ///
    
void KalHook::Attach()
    {
        
this->ShowInfo("This is a test",Color::BLUE);
    } 
And yes mejniok , I use WINAPI

PHP Code:
    ///
    /// Adds a additional submenu to the Application Menu
    ///
    
void KalHook::AddMenu()
    {
        
HWND hWnd FindWindow(NULL,TEXT("MainSvr"));
        
HMENU hCurrent GetMenu(hWnd);
        
HMENU hNew     CreateMenu();
        
AppendMenu(hCurrentMF_STRING MF_POPUP, (unsigned int)hNewTEXT("Windcape"));
        
AppendMenu(hNewMF_STRING2000TEXT("Says:"));
        
AppendMenu(hNewMF_STRING2000TEXT("C++"));
        
AppendMenu(hNewMF_STRING2000TEXT("Really"));
        
AppendMenu(hNewMF_STRING2000TEXT("Sucks"));
        
AppendMenu(hNewMF_STRING2000TEXT("Arse")); 
        
DrawMenuBar(hWnd); 
    } 
 
 
permalink
 

 
Boring ô_Ô

Rank: Member


Reply With Quote
 
Join Date: Sep 2006
Location: Germany
Posts: 541
03-27-2008, 12:07 PM
 
here some other stuff ;)
Server Start+Server Ready:
0x004354D3
0x004354CE
0x004346E9
Database+Auth Connect:
0x0040CEF2
0x0040CEED
0x004016BF
0x004016BA
Other Server is Running:
0x00435239
0x00435234
 
 
permalink
 

 
Ultimate Member

Rank: New Blood


Reply With Quote
 
Join Date: Sep 2006
Location: Poland
Posts: 174
03-27-2008, 12:39 PM
 
thx for adresses too, Bloodfreak :P

@DeathArt
Fine, so maybe you have some idea, how to catch messages? :P
 
 
permalink
 

 
Boring ô_Ô

Rank: Member


Reply With Quote
 
Join Date: Sep 2006
Location: Germany
Posts: 541
03-27-2008, 12:49 PM
 
mejniok you mean messages like this?

[Only Registered and Activated Users Can See Links. Click Here To Register...]
 
 
permalink
 

 
Ultimate Member

Rank: New Blood


Reply With Quote
 
Join Date: Sep 2006
Location: Poland
Posts: 174
03-27-2008, 01:22 PM
 
Nah! Not this messages. Whole windows system is based on "messages" - it means: whatever you do, keypress/mouse click, it generates a special message which contain a info like KEY or cursor pos. In this way, controls communicating between Control1 and Control2.

Also there are many other messages like:

Code:
  {$EXTERNALSYM WM_USER}
  WM_USER             = $0400;

{ Button Notification Codes }

const
  {$EXTERNALSYM BN_CLICKED}
  BN_CLICKED       = 0;
  {$EXTERNALSYM BN_PAINT}
  BN_PAINT         = 1;
  {$EXTERNALSYM BN_HILITE}
  BN_HILITE        = 2;
  {$EXTERNALSYM BN_UNHILITE}
  BN_UNHILITE      = 3;
  {$EXTERNALSYM BN_DISABLE}
  BN_DISABLE       = 4;
  {$EXTERNALSYM BN_DOUBLECLICKED}
  BN_DOUBLECLICKED = 5;
  {$EXTERNALSYM BN_PUSHED}
  BN_PUSHED = BN_HILITE;
  {$EXTERNALSYM BN_UNPUSHED}
  BN_UNPUSHED = BN_UNHILITE;
  {$EXTERNALSYM BN_DBLCLK}
  BN_DBLCLK = BN_DOUBLECLICKED;
  {$EXTERNALSYM BN_SETFOCUS}
  BN_SETFOCUS = 6;
  {$EXTERNALSYM BN_KILLFOCUS}
  BN_KILLFOCUS = 7;

{ Button Control Messages }
const
  {$EXTERNALSYM BM_GETCHECK}
  BM_GETCHECK = $00F0;
  {$EXTERNALSYM BM_SETCHECK}
  BM_SETCHECK = $00F1;
  {$EXTERNALSYM BM_GETSTATE}
  BM_GETSTATE = $00F2;
  {$EXTERNALSYM BM_SETSTATE}
  BM_SETSTATE = $00F3;
  {$EXTERNALSYM BM_SETSTYLE}
  BM_SETSTYLE = $00F4;
  {$EXTERNALSYM BM_CLICK}
  BM_CLICK    = $00F5;
  {$EXTERNALSYM BM_GETIMAGE}
  BM_GETIMAGE = $00F6;
  {$EXTERNALSYM BM_SETIMAGE}
  BM_SETIMAGE = $00F7;

{ Listbox Notification Codes }

const
  {$EXTERNALSYM LBN_ERRSPACE}
  LBN_ERRSPACE  = (-2);
  {$EXTERNALSYM LBN_SELCHANGE}
  LBN_SELCHANGE = 1;
  {$EXTERNALSYM LBN_DBLCLK}
  LBN_DBLCLK    = 2;
  {$EXTERNALSYM LBN_SELCANCEL}
  LBN_SELCANCEL = 3;
  {$EXTERNALSYM LBN_SETFOCUS}
  LBN_SETFOCUS  = 4;
  {$EXTERNALSYM LBN_KILLFOCUS}
  LBN_KILLFOCUS = 5;

{ Listbox messages }

const
  {$EXTERNALSYM LB_ADDSTRING}
  LB_ADDSTRING            = $0180;
  {$EXTERNALSYM LB_INSERTSTRING}
  LB_INSERTSTRING         = $0181;
  {$EXTERNALSYM LB_DELETESTRING}
  LB_DELETESTRING         = $0182;
  {$EXTERNALSYM LB_SELITEMRANGEEX}
  LB_SELITEMRANGEEX       = $0183;
  {$EXTERNALSYM LB_RESETCONTENT}
  LB_RESETCONTENT         = $0184;
  {$EXTERNALSYM LB_SETSEL}
  LB_SETSEL               = $0185;
  {$EXTERNALSYM LB_SETCURSEL}
  LB_SETCURSEL            = $0186;
  {$EXTERNALSYM LB_GETSEL}
  LB_GETSEL               = $0187;
  {$EXTERNALSYM LB_GETCURSEL}
  LB_GETCURSEL            = $0188;
  {$EXTERNALSYM LB_GETTEXT}
  LB_GETTEXT              = $0189;
  {$EXTERNALSYM LB_GETTEXTLEN}
  LB_GETTEXTLEN           = $018A;
  {$EXTERNALSYM LB_GETCOUNT}
  LB_GETCOUNT             = $018B;
  {$EXTERNALSYM LB_SELECTSTRING}
  LB_SELECTSTRING         = $018C;
  {$EXTERNALSYM LB_DIR}
  LB_DIR                  = $018D;
  {$EXTERNALSYM LB_GETTOPINDEX}
  LB_GETTOPINDEX          = $018E;
  {$EXTERNALSYM LB_FINDSTRING}
  LB_FINDSTRING           = $018F;
  {$EXTERNALSYM LB_GETSELCOUNT}
  LB_GETSELCOUNT          = $0190;
  {$EXTERNALSYM LB_GETSELITEMS}
  LB_GETSELITEMS          = $0191;
  {$EXTERNALSYM LB_SETTABSTOPS}
  LB_SETTABSTOPS          = $0192;
  {$EXTERNALSYM LB_GETHORIZONTALEXTENT}
  LB_GETHORIZONTALEXTENT  = $0193;
  {$EXTERNALSYM LB_SETHORIZONTALEXTENT}
  LB_SETHORIZONTALEXTENT  = $0194;
  {$EXTERNALSYM LB_SETCOLUMNWIDTH}
  LB_SETCOLUMNWIDTH       = $0195;
  {$EXTERNALSYM LB_ADDFILE}
  LB_ADDFILE              = $0196;
  {$EXTERNALSYM LB_SETTOPINDEX}
  LB_SETTOPINDEX          = $0197;
  {$EXTERNALSYM LB_GETITEMRECT}
  LB_GETITEMRECT          = $0198;
  {$EXTERNALSYM LB_GETITEMDATA}
  LB_GETITEMDATA          = $0199;
  {$EXTERNALSYM LB_SETITEMDATA}
  LB_SETITEMDATA          = $019A;
  {$EXTERNALSYM LB_SELITEMRANGE}
  LB_SELITEMRANGE         = $019B;
  {$EXTERNALSYM LB_SETANCHORINDEX}
  LB_SETANCHORINDEX       = $019C;
  {$EXTERNALSYM LB_GETANCHORINDEX}
  LB_GETANCHORINDEX       = $019D;
  {$EXTERNALSYM LB_SETCARETINDEX}
  LB_SETCARETINDEX        = $019E;
  {$EXTERNALSYM LB_GETCARETINDEX}
  LB_GETCARETINDEX        = $019F;
  {$EXTERNALSYM LB_SETITEMHEIGHT}
  LB_SETITEMHEIGHT        = $01A0;
  {$EXTERNALSYM LB_GETITEMHEIGHT}
  LB_GETITEMHEIGHT        = $01A1;
  {$EXTERNALSYM LB_FINDSTRINGEXACT}
  LB_FINDSTRINGEXACT      = $01A2;
  {$EXTERNALSYM LB_SETLOCALE}
  LB_SETLOCALE            = $01A5;
  {$EXTERNALSYM LB_GETLOCALE}
  LB_GETLOCALE            = $01A6;
  {$EXTERNALSYM LB_SETCOUNT}
  LB_SETCOUNT             = $01A7;
  {$EXTERNALSYM LB_INITSTORAGE}
  LB_INITSTORAGE          = $01A8;
  {$EXTERNALSYM LB_ITEMFROMPOINT}
  LB_ITEMFROMPOINT        = $01A9;
  {$EXTERNALSYM LB_MSGMAX}
  LB_MSGMAX               = 432;

{ Combo Box Notification Codes }

const
  {$EXTERNALSYM CBN_ERRSPACE}
  CBN_ERRSPACE   = (-1);
  {$EXTERNALSYM CBN_SELCHANGE}
  CBN_SELCHANGE  = 1;
  {$EXTERNALSYM CBN_DBLCLK}
  CBN_DBLCLK     = 2;
  {$EXTERNALSYM CBN_SETFOCUS}
  CBN_SETFOCUS   = 3;
  {$EXTERNALSYM CBN_KILLFOCUS}
  CBN_KILLFOCUS  = 4;
  {$EXTERNALSYM CBN_EDITCHANGE}
  CBN_EDITCHANGE = 5;
  {$EXTERNALSYM CBN_EDITUPDATE}
  CBN_EDITUPDATE = 6;
  {$EXTERNALSYM CBN_DROPDOWN}
  CBN_DROPDOWN   = 7;
  {$EXTERNALSYM CBN_CLOSEUP}
  CBN_CLOSEUP    = 8;
  {$EXTERNALSYM CBN_SELENDOK}
  CBN_SELENDOK   = 9;
  {$EXTERNALSYM CBN_SELENDCANCEL}
  CBN_SELENDCANCEL = 10;

{ Combo Box messages }

  {$EXTERNALSYM CB_GETEDITSEL}
  CB_GETEDITSEL            = $0140;
  {$EXTERNALSYM CB_LIMITTEXT}
  CB_LIMITTEXT             = $0141;
  {$EXTERNALSYM CB_SETEDITSEL}
  CB_SETEDITSEL            = $0142;
  {$EXTERNALSYM CB_ADDSTRING}
  CB_ADDSTRING             = $0143;
  {$EXTERNALSYM CB_DELETESTRING}
  CB_DELETESTRING          = $0144;
  {$EXTERNALSYM CB_DIR}
  CB_DIR                   = $0145;
  {$EXTERNALSYM CB_GETCOUNT}
  CB_GETCOUNT              = $0146;
  {$EXTERNALSYM CB_GETCURSEL}
  CB_GETCURSEL             = $0147;
  {$EXTERNALSYM CB_GETLBTEXT}
  CB_GETLBTEXT             = $0148;
  {$EXTERNALSYM CB_GETLBTEXTLEN}
  CB_GETLBTEXTLEN          = $0149;
  {$EXTERNALSYM CB_INSERTSTRING}
  CB_INSERTSTRING          = $014A;
  {$EXTERNALSYM CB_RESETCONTENT}
  CB_RESETCONTENT          = $014B;
  {$EXTERNALSYM CB_FINDSTRING}
  CB_FINDSTRING            = $014C;
  {$EXTERNALSYM CB_SELECTSTRING}
  CB_SELECTSTRING          = $014D;
  {$EXTERNALSYM CB_SETCURSEL}
  CB_SETCURSEL             = $014E;
  {$EXTERNALSYM CB_SHOWDROPDOWN}
  CB_SHOWDROPDOWN          = $014F;
  {$EXTERNALSYM CB_GETITEMDATA}
  CB_GETITEMDATA           = $0150;
  {$EXTERNALSYM CB_SETITEMDATA}
  CB_SETITEMDATA           = $0151;
  {$EXTERNALSYM CB_GETDROPPEDCONTROLRECT}
  CB_GETDROPPEDCONTROLRECT = $0152;
  {$EXTERNALSYM CB_SETITEMHEIGHT}
  CB_SETITEMHEIGHT         = $0153;
  {$EXTERNALSYM CB_GETITEMHEIGHT}
  CB_GETITEMHEIGHT         = $0154;
  {$EXTERNALSYM CB_SETEXTENDEDUI}
  CB_SETEXTENDEDUI         = $0155;
  {$EXTERNALSYM CB_GETEXTENDEDUI}
  CB_GETEXTENDEDUI         = $0156;
  {$EXTERNALSYM CB_GETDROPPEDSTATE}
  CB_GETDROPPEDSTATE       = $0157;
  {$EXTERNALSYM CB_FINDSTRINGEXACT}
  CB_FINDSTRINGEXACT       = $0158;
  {$EXTERNALSYM CB_SETLOCALE}
  CB_SETLOCALE             = 345;
  {$EXTERNALSYM CB_GETLOCALE}
  CB_GETLOCALE             = 346;
  {$EXTERNALSYM CB_GETTOPINDEX}
  CB_GETTOPINDEX           = 347;
  {$EXTERNALSYM CB_SETTOPINDEX}
  CB_SETTOPINDEX           = 348;
  {$EXTERNALSYM CB_GETHORIZONTALEXTENT}
  CB_GETHORIZONTALEXTENT   = 349;
  {$EXTERNALSYM CB_SETHORIZONTALEXTENT}
  CB_SETHORIZONTALEXTENT   = 350;
  {$EXTERNALSYM CB_GETDROPPEDWIDTH}
  CB_GETDROPPEDWIDTH       = 351;
  {$EXTERNALSYM CB_SETDROPPEDWIDTH}
  CB_SETDROPPEDWIDTH       = 352;
  {$EXTERNALSYM CB_INITSTORAGE}
  CB_INITSTORAGE           = 353;
  {$EXTERNALSYM CB_MSGMAX}
  CB_MSGMAX                = 354;

{ Edit Control Notification Codes }

const
  {$EXTERNALSYM EN_SETFOCUS}
  EN_SETFOCUS  = $0100;
  {$EXTERNALSYM EN_KILLFOCUS}
  EN_KILLFOCUS = $0200;
  {$EXTERNALSYM EN_CHANGE}
  EN_CHANGE    = $0300;
  {$EXTERNALSYM EN_UPDATE}
  EN_UPDATE    = $0400;
  {$EXTERNALSYM EN_ERRSPACE}
  EN_ERRSPACE  = $0500;
  {$EXTERNALSYM EN_MAXTEXT}
  EN_MAXTEXT   = $0501;
  {$EXTERNALSYM EN_HSCROLL}
  EN_HSCROLL   = $0601;
  {$EXTERNALSYM EN_VSCROLL}
  EN_VSCROLL   = $0602;

{ Edit Control Messages }

const
  {$EXTERNALSYM EM_GETSEL}
  EM_GETSEL              = $00B0;
  {$EXTERNALSYM EM_SETSEL}
  EM_SETSEL              = $00B1;
  {$EXTERNALSYM EM_GETRECT}
  EM_GETRECT             = $00B2;
  {$EXTERNALSYM EM_SETRECT}
  EM_SETRECT             = $00B3;
  {$EXTERNALSYM EM_SETRECTNP}
  EM_SETRECTNP           = $00B4;
  {$EXTERNALSYM EM_SCROLL}
  EM_SCROLL              = $00B5;
  {$EXTERNALSYM EM_LINESCROLL}
  EM_LINESCROLL          = $00B6;
  {$EXTERNALSYM EM_SCROLLCARET}
  EM_SCROLLCARET         = $00B7;
  {$EXTERNALSYM EM_GETMODIFY}
  EM_GETMODIFY           = $00B8;
  {$EXTERNALSYM EM_SETMODIFY}
  EM_SETMODIFY           = $00B9;
  {$EXTERNALSYM EM_GETLINECOUNT}
  EM_GETLINECOUNT        = $00BA;
  {$EXTERNALSYM EM_LINEINDEX}
  EM_LINEINDEX           = $00BB;
  {$EXTERNALSYM EM_SETHANDLE}
  EM_SETHANDLE           = $00BC;
  {$EXTERNALSYM EM_GETHANDLE}
  EM_GETHANDLE           = $00BD;
  {$EXTERNALSYM EM_GETTHUMB}
  EM_GETTHUMB            = $00BE;
  {$EXTERNALSYM EM_LINELENGTH}
  EM_LINELENGTH          = $00C1;
  {$EXTERNALSYM EM_REPLACESEL}
  EM_REPLACESEL          = $00C2;
  {$EXTERNALSYM EM_GETLINE}
  EM_GETLINE             = $00C4;
  {$EXTERNALSYM EM_LIMITTEXT}
  EM_LIMITTEXT           = $00C5;
  {$EXTERNALSYM EM_CANUNDO}
  EM_CANUNDO             = $00C6;
  {$EXTERNALSYM EM_UNDO}
  EM_UNDO                = $00C7;
  {$EXTERNALSYM EM_FMTLINES}
  EM_FMTLINES            = $00C8;
  {$EXTERNALSYM EM_LINEFROMCHAR}
  EM_LINEFROMCHAR        = $00C9;
  {$EXTERNALSYM EM_SETTABSTOPS}
  EM_SETTABSTOPS         = $00CB;
  {$EXTERNALSYM EM_SETPASSWORDCHAR}
  EM_SETPASSWORDCHAR     = $00CC;
  {$EXTERNALSYM EM_EMPTYUNDOBUFFER}
  EM_EMPTYUNDOBUFFER     = $00CD;
  {$EXTERNALSYM EM_GETFIRSTVISIBLELINE}
  EM_GETFIRSTVISIBLELINE = $00CE;
  {$EXTERNALSYM EM_SETREADONLY}
  EM_SETREADONLY         = $00CF;
  {$EXTERNALSYM EM_SETWORDBREAKPROC}
  EM_SETWORDBREAKPROC    = $00D0;
  {$EXTERNALSYM EM_GETWORDBREAKPROC}
  EM_GETWORDBREAKPROC    = $00D1;
  {$EXTERNALSYM EM_GETPASSWORDCHAR}
  EM_GETPASSWORDCHAR     = $00D2;
  {$EXTERNALSYM EM_SETMARGINS}
  EM_SETMARGINS          = 211;
  {$EXTERNALSYM EM_GETMARGINS}
  EM_GETMARGINS          = 212;
  {$EXTERNALSYM EM_SETLIMITTEXT}
  EM_SETLIMITTEXT        = EM_LIMITTEXT;    //win40 Name change
  {$EXTERNALSYM EM_GETLIMITTEXT}
  EM_GETLIMITTEXT        = 213;
  {$EXTERNALSYM EM_POSFROMCHAR}
  EM_POSFROMCHAR         = 214;
  {$EXTERNALSYM EM_CHARFROMPOS}
  EM_CHARFROMPOS         = 215;
  {$EXTERNALSYM EM_SETIMESTATUS}
  EM_SETIMESTATUS        = 216;
  {$EXTERNALSYM EM_GETIMESTATUS}
  EM_GETIMESTATUS        = 217;

const
  { Scroll bar messages }
  {$EXTERNALSYM SBM_SETPOS}
  SBM_SETPOS = 224;             { not in win3.1  }
  {$EXTERNALSYM SBM_GETPOS}
  SBM_GETPOS = 225;             { not in win3.1  }
  {$EXTERNALSYM SBM_SETRANGE}
  SBM_SETRANGE = 226;           { not in win3.1  }
  {$EXTERNALSYM SBM_SETRANGEREDRAW}
  SBM_SETRANGEREDRAW = 230;     { not in win3.1  }
  {$EXTERNALSYM SBM_GETRANGE}
  SBM_GETRANGE = 227;           { not in win3.1  }
  {$EXTERNALSYM SBM_ENABLE_ARROWS}
  SBM_ENABLE_ARROWS = 228;      { not in win3.1  }
  {$EXTERNALSYM SBM_SETSCROLLINFO}
  SBM_SETSCROLLINFO = 233;
  {$EXTERNALSYM SBM_GETSCROLLINFO}
  SBM_GETSCROLLINFO = 234;

{ Dialog messages }

  {$EXTERNALSYM DM_GETDEFID}
  DM_GETDEFID = (WM_USER+0);
  {$EXTERNALSYM DM_SETDEFID}
  DM_SETDEFID = (WM_USER+1);
  {$EXTERNALSYM DM_REPOSITION}
  DM_REPOSITION = (WM_USER+2);

  {$EXTERNALSYM PSM_PAGEINFO}
  PSM_PAGEINFO = (WM_USER+100);
  {$EXTERNALSYM PSM_SHEETINFO}
  PSM_SHEETINFO = (WM_USER+101);
Yeah! So I mean that, up mentioned messages :D
With it, we can operate on all controls, by hooking (SetWindowsHookEx) we can check states of that controls so we can check when some item from our's menu was clicked, so we can give them some action :D Now you got? :P

One example more:
Maybe someone remember my old "FuckTheStack" project. That simulated a clicking on Authsvr File>FlushLog by sended MESSAGE:

Code:
Function TForm1.GetAuthSvrHandle: HWND;
begin
RESULT:=FindWindow('AUTHSVR',NIL);
end;

procedure TForm1.FlushStack;
var H: HWND;
begin
 H:=GetAuthSvrHandle;
 if h<>0 then
  begin
  SendMessage(H,WM_COMMAND, 32772,0)
  end else
   begin
    tray.IconIndex:=0;
    handlestatus.Caption:='Can`t get handle...';
   end
end;
But I never dealing with hooks on system messages so i dont know how to catch it -,-
 
 
permalink
 

 
KalOnline Grand Old Man

Rank: Alpha Member


Reply With Quote
 
Join Date: Mar 2007
Location: Aarhus, Denmark
Posts: 2,597
03-27-2008, 01:47 PM
 
Easy :-) Just read this post, it explains it: [Only Registered and Activated Users Can See Links. Click Here To Register...]

Update: Looks like I got a problem with inserting a castle :((


Last edited by DeathArt; 03-27-2008 at 06:29 PM.
 
 
permalink
 

 
Boring ô_Ô

Rank: Member


Reply With Quote
 
Join Date: Sep 2006
Location: Germany
Posts: 541
03-28-2008, 09:02 AM
 
hmm DA you have any ideas for new Addons for Server or Client side? :)
 
 
permalink
 

 
KalOnline Grand Old Man

Rank: Alpha Member


Reply With Quote
 
Join Date: Mar 2007
Location: Aarhus, Denmark
Posts: 2,597
03-28-2008, 01:52 PM
 
Ok, appears as I used the wrong addresses :p

He's my toggle-castle-siege function, however... it does not work :(
PHP Code:
    ///
    /// Toggles the Castle Siege
    ///
    
void KalHook::ToggleCastleSiege()
    {
        
DWORD startSiege 0x00419E10;
        
DWORD stopSiege  0x0041BEE0;
        
        if(
Sword::IsCastleSiege) {
            
__asm 
                
call stopSiege 
            
}
            
Sword::IsCastleSiege false;
        } else {
            
__asm {    
                
call startSiege 
            
}
            
Sword::IsCastleSiege true;
        }
    } 
Any ideas?
 
 
permalink
 

 
Boring ô_Ô

Rank: Member


Reply With Quote
 
Join Date: Sep 2006
Location: Germany
Posts: 541
03-28-2008, 01:59 PM
 
hmmm try for start with this addresses:

0x00419E18
or
0x00419E4D

i think you need the call :)
 
 
permalink
 

 
KalOnline Grand Old Man

Rank: Alpha Member


Reply With Quote
 
Join Date: Mar 2007
Location: Aarhus, Denmark
Posts: 2,597
03-28-2008, 04:20 PM
 
CCastle::WarBegin
CCastle::WarEnd

And

CWar::Start

Odd many? Also, the two addressed you named is not on Luca's list :p
So far that list been rather useless, as none of the addresses match anything.
 
 
permalink
 

 
Boring ô_Ô

Rank: Member


Reply With Quote
 
Join Date: Sep 2006
Location: Germany
Posts: 541
03-28-2008, 04:28 PM
 
luca has post the function but function is not start :)

so i think you need a call to start the castel war ;)
 
 
permalink
 

 
KalOnline Grand Old Man

Rank: Alpha Member


Reply With Quote
 
Join Date: Mar 2007
Location: Aarhus, Denmark
Posts: 2,597
03-28-2008, 04:31 PM
 
Both your adressed crashed the server on attempt to call, them, also calling CWar::Start crash it as well.
 
 
permalink
 

 
Boring ô_Ô

Rank: Member


Reply With Quote
 
Join Date: Sep 2006
Location: Germany
Posts: 541
03-28-2008, 04:36 PM
 
arg haha xD hmmm bad :P.... when you jmp with ida to the call...there are somem ore call's etc... i look later for it :)
 
 
permalink
 

 
KalOnline Grand Old Man

Rank: Alpha Member


Reply With Quote
 
Join Date: Mar 2007
Location: Aarhus, Denmark
Posts: 2,597
03-28-2008, 04:50 PM
 
Me > Kal

Custom wars ftw.?-)

 
 
permalink
 

 
KalOnline Grand Old Man

Rank: Alpha Member


Reply With Quote
 
Join Date: Mar 2007
Location: Aarhus, Denmark
Posts: 2,597
03-28-2008, 05:14 PM
 
Now I wish I could find out how to stop it again,lol.
 
 
permalink
 

 
Boring ô_Ô

Rank: Member


Reply With Quote
 
Join Date: Sep 2006
Location: Germany
Posts: 541
03-28-2008, 05:26 PM
 
hehe nice what call was it now :) :P hehe

when you found start easy to find stop ? :D
 
 
permalink
 

 
KalOnline Grand Old Man

Rank: Alpha Member


Reply With Quote
 
Join Date: Mar 2007
Location: Aarhus, Denmark
Posts: 2,597
03-28-2008, 06:33 PM
 
No, it's not. Because this is how you start
PHP Code:
///
/// Starting Castle Siege
///
DWORD enableSiege  0x0041C440// CWar::Start
DWORD startSiege   0x00419E10// CCastle::WarBegin

__asm {
    
call enableSiege
    call startSiege

But there is no option to shut it down. I tried calling CCastle::SetWarRemainSecondTime, but it do not appears to be working.

PHP Code:
///
/// Attempting to stop the castle siege (not working)
///
DWORD stopSiege    0x0041BAF0// CCastle::SetWarRemainSecondTime
__asm {
    
push 1
    call stopSiege

Nothing happends ingame, so it's definitive not stopping. Also calling CCastle::WarEnd do NOT work!
 
 
permalink
 

 
1. KalHacker

Rank: Member


Reply With Quote
 
Join Date: Jul 2006
Location: noitacoL
Posts: 1,199
04-02-2008, 03:09 PM
 
Nice that you got use of my list ;)

Btw.. there are much nicer ways to call a function ~.~

like this..

PHP Code:
//Some type definitions.. xD
typedef int (* TOneParamter)(int);
typedef int (* TZeroParamter)();

//some functions xD
TOneParamter Caste_SetWarRemainSecondTime = (TOneParamter)0x0041BAF0
TZeroParamter Caste_Start = (TZeroParamter)0x0041C440
TZeroParamter Caste_WarBegin = (TZeroParamter)0x00419E10

....
int MyEvent::Start()
{
          
Caste_Start();
          
Caste_WarBegin();
}
....
int MyEvent::End()
{
          
//You said doesn't work.. hmm I only use it to demonstrate xD
          
Caste_SetWarRemainSecondTime(1);
}
... 

Get ride of ASM ;)
And much nicer to read.. I think.. But do as you want :P