Да запросто: (перевод гугля)
All code using VC + +6.0 created, and XP2 on the test. Perfect for 273 version of the International
Used to have a DLL file into the game!
Related base address:
//============ Automatic landing-related ===================
# define W2I_PLAYING 0x98ADAC // character is entered the game state, for an entry, 0 did not enter. Some people think this is a break detection flags, in fact, when you still pick the time when the interface and so on, this value is also 0,
# define W2I_BASE_ADDR 0x98ADDC // global base address
# define W2I_SEVER_NAME 0x98B784 // Server Name Address
# define W2I_LOGIN_PLANNET 0x98EB08 // input interface, a sign into the account (including server option), for a table entry, entered the game after character selection interface, and its 2
# define W2I_LOGIN_WRITTING 0x95817C // into account input box symbol table entry for the 0x101
# define W2I_LOGIN_SEVER_BUTTON_CALL 0x00711BE0 // Account button input interface and server choice CALL button interface CALL, non-election suits CALL
# define W2I_LOGIN_SEVER_BUTTON_ESI_PARAM (* (DWORD *)(*( DWORD *)(*( DWORD *)(*( DWORD *)(*( DWORD *) W2I_BASE_ADDR +0 x1c) +0 x4) +0 x8) +0 x18)) // Account button to select input interface and server interface, the ESI parameters in the CALL
# define W2I_LOGIN_SEVER_CALL 0x0072ae50 // select a service CALL
# define W2I_LOGIN_SEVER_CALL_ESI_PARAM (* (DWORD *)(*( DWORD *)(*( DWORD *)(*( DWORD *)(*( DWORD *) (* (DWORD *) W2I_BASE_ADDR +0 x1c) +0 x4) +0 x8) + 0x18) +0 x168)) // a service of the parameters of the selected CALL
Related Source:
//=========== Automatically select a service CALL ===============
CallAutoChoiceSever (int iSeverNo)
(// AfxMessageBox ( "Auto-select a service CALL");
DWORD dwEsiParam = W2I_LOGIN_SEVER_CALL_ESI_PARAM;
_asm (pushad
push 1
push iSeverNo
mov esi, dwEsiParam
mov ecx, esi
mov ebx, iSeverNo
mov [esi +0 xb0], ebx // can not be the original code mov dword ptr [esi +0 xb0], ebx,, otherwise a dead duck
mov ebx, W2I_LOGIN_SEVER_CALL
call ebx
popad
)
)
//
//=============== Button from the login interface for automatic landing CALL ================
CallAutoLoginButton (const char * charButtonName, DWORD dwEsiParam)
(// AfxMessageBox ( "from the login interface, auto-login button CALL"); CString test; test.Format ( "% lx", dwEsiParam); AfxMessageBox (test);
_asm (pushad
mov ebx, charButtonName
push ebx
mov ecx, dwEsiParam
mov ebx, W2I_LOGIN_SEVER_BUTTON_CALL
call ebx
popad
)
)
//
//====================== Automatic landing procedures ======================= ==
bool AutoLogin (CString strAccount, CString strScret, CString strArea, CString strSever)
(AfxMessageBox ( "Send TAB ");// confirmation input box flag, or send the TAB key
while (* (DWORD *) W2I_LOGIN_WRITTING! = 0x101)
(:: PostMessage (FindWindow (NULL, "Element Client"), WM_KEYDOWN, 0x09, NULL);
:: PostMessage (FindWindow (NULL, "Element Client"), WM_KEYUP, 0x09, NULL);
:: Sleep (500)

AfxMessageBox ( "Enter account number"); // enter the account number, password
for (int i = 0; i <strAccount.GetLength (); i + +)
(:: PostMessage (FindWindow (NULL, "Element Client"), WM_KEYUP,:: VkKeyScan (strAccount.GetAt (i)), NULL);
:: Sleep (300);
)
:: Sleep (1000);
:: PostMessage (FindWindow (NULL, "Element Client"), WM_KEYDOWN, 0x09, NULL);
:: PostMessage (FindWindow (NULL, "Element Client"), WM_KEYUP, 0x09, NULL);
:: Sleep (500);
AfxMessageBox ( "Enter password");
for (int a = 0; a <strScret.GetLength (); a + +)
(:: PostMessage (FindWindow (NULL, "Element Client"), WM_KEYUP,:: VkKeyScan (strScret.GetAt (a)), NULL);
:: Sleep (300);
)
:: Sleep (1000);
// Select Server
AfxMessageBox ( "whether the server right");
CString strCurrentSever; strCurrentSever = (char *) W2I_SEVER_NAME;
if (strSever == strCurrentSever) // the case of the current server is correct, then enter the game
(CString strButtonName = "confirm"; AfxMessageBox ( "Send OK button");
CallAutoLoginButton ((LPCTSTR) strButtonName, W2I_LOGIN_SEVER_BUTTON_ESI_PARAM);
:: Sleep (20000);
:: PostMessage (FindWindow (NULL, "Element Client"), WM_KEYDOWN, 0x0d, NULL);
:: PostMessage (FindWindow (NULL, "Element Client"), WM_KEYUP, 0x0d, NULL);
:: Sleep (45000); AfxMessageBox ( "test character game state");
if (1 ==* (DWORD *) W2I_PLAYING) return true;
return false;
)
AfxMessageBox ( "enter the server selection interface");
CString strButtonName = "changeserver"; // enter the server selection interface
CallAutoLoginButton ((LPCTSTR) strButtonName, W2I_LOGIN_SEVER_BUTTON_ESI_PARAM);
:: Sleep (2000);
AfxMessageBox ( "select server");
strButtonName = "group3"; // Select the Telecom 1 // here to be selected in order to make the District a list of servers shown by open service order, so the first one constituency, then enter the options;, of course, does not apply here, a telecommunications Automatic lines, need to change the program
CallAutoLoginButton ((LPCTSTR) strButtonName, W2I_LOGIN_SEVER_BUTTON_ESI_PARAM);:: Sleep (2000);
AfxMessageBox ( "select service");
CallAutoChoiceSever (0);:: Sleep (2000);
AfxMessageBox ( "Select the service to complete");
strButtonName = "confirm";
CallAutoLoginButton ((LPCTSTR) strButtonName, W2I_LOGIN_SEVER_BUTTON_ESI_PARAM);:: Sleep (2000);
strButtonName = "changeserver"; // enter the server selection interface
CallAutoLoginButton ((LPCTSTR) strButtonName, W2I_LOGIN_SEVER_BUTTON_ESI_PARAM);:: Sleep (2000);
if (strArea == "Electric Six") strButtonName = "group8";
CallAutoLoginButton ((LPCTSTR) strButtonName, W2I_LOGIN_SEVER_BUTTON_ESI_PARAM);:: Sleep (2000);
if (strSever == "Soul Calibur") CallAutoChoiceSever (1);
if (strSever == "silver moon") CallAutoChoiceSever (6);
if (strSever == "Xiao empty") CallAutoChoiceSever (7);
:: Sleep (2000);
strButtonName = "confirm";
CallAutoLoginButton ((LPCTSTR) strButtonName, W2I_LOGIN_SEVER_BUTTON_ESI_PARAM);:: Sleep (2000);
(StrButtonName = "confirm";
CallAutoLoginButton ((LPCTSTR) strButtonName, W2I_LOGIN_SEVER_BUTTON_ESI_PARAM);
:: Sleep (20000);
:: PostMessage (FindWindow (NULL, "Element Client"), WM_KEYDOWN, 0x0d, NULL);
:: PostMessage (FindWindow (NULL, "Element Client"), WM_KEYUP, 0x0d, NULL);
:: Sleep (45000);
if (1 ==* (DWORD *) W2I_PLAYING) return true;
return false;
)
)
//
Call the general procedure example:
CString account = "xxxx0000";
CString secret = "0000xxxx";
CString area = "Electric Six";
CString sever = "Soul Calibur";
AutoLogin (account, secret, area, sever);
Related Games originally CALL Description:
Enter in your account interface and server selection interface, MOUSE select "change server" and the telecommunications area, select and "confirmation", "Cancel", "All service history, inquiries," and together with service history, the query a few buttons 0071205C call by call 00711BE0 to complete,
In which the parameters for the button pressed into English, ECX parameters of each interface is different, the account selection input interface with the server interface parameters can be looking for.
Source:
00712059 |. 55 push ebp // Note that here in the actual situation can not be pressed into ebp, or else you die I die you die
0071205A |. 8BCE mov ecx, esi
0071205C |. E8 7FFBFFFF call 00711BE0
Such as: EBP 0A7A786C ASCII "changeserver"
ESI 04A828B8
Ebp in which the parameters are:
Enter the game confirm
Introduced idcancel (not measured)
Replacement servers changeserver
Electric one group3
Electric two group1
Electric 3 group5
Electric 4 group6
Electric 5 group7
Electric 6 group8
Net 1 group2
Net 2 group4
Select confirm
Cancel IDCANCEL
All service history query
Server Selection interface, select a service from 72634d to call 0072ae50 completed, parameters are as follows:
push 1
push ebx // ebx interface displayed by the choice of service to determine the first one to 0, thereby pushing, pay attention to is to show the choice of clothes, not to open service order, so here opening a service order to the order of the district should first do not Select one to determine and then to the area to choose to choose
mov ecx, esi // parameter, we can ask
Source:
00724D62 (old address)> \ 6A 01 push 1
00724D64 (old address). 53 push ebx
00724D65 (old address). 8BCE mov ecx, esi // parameter, we can ask
00724D67 (old address). 899E B0000000 mov dword ptr [esi + B0], ebx
00724D6D (old address). E8 0E4B0000 call 0072ae50
Related unreasonable Description:
1: Be sure to start at the account input interface
2: Suppose log-in process has gone smoothly, not to the relevant account does not require mandatory on-line, on-line check processing when the server disconnects, etc.
3: do not select the first few characters sent directly ENTER key, of course, is the first figure
4: Just made a simple test, the real situation may change