Deprecated: The behavior of unparenthesized expressions containing both '.' and '+'/'-' will change in PHP 8: '+'/'-' will take a higher precedence in /home/iano/public_html/tpforums-vb5/forum/includes/class_core.php on line 5842

PHP Warning: Use of undefined constant MYSQL_NUM - assumed 'MYSQL_NUM' (this will throw an Error in a future version of PHP) in ..../includes/init.php on line 165

PHP Warning: Use of undefined constant MYSQL_ASSOC - assumed 'MYSQL_ASSOC' (this will throw an Error in a future version of PHP) in ..../includes/init.php on line 165

PHP Warning: Use of undefined constant MYSQL_BOTH - assumed 'MYSQL_BOTH' (this will throw an Error in a future version of PHP) in ..../includes/init.php on line 165

PHP Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in ..../includes/functions_navigation.php on line 588

PHP Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in ..../includes/functions_navigation.php on line 612

PHP Warning: Use of undefined constant misc - assumed 'misc' (this will throw an Error in a future version of PHP) in ..../global.php(29) : eval()'d code(6) : eval()'d code on line 1

PHP Warning: Use of undefined constant index - assumed 'index' (this will throw an Error in a future version of PHP) in ..../global.php(29) : eval()'d code(6) : eval()'d code on line 1

PHP Warning: Use of undefined constant misc - assumed 'misc' (this will throw an Error in a future version of PHP) in ..../includes/class_bootstrap.php(1422) : eval()'d code(4) : eval()'d code on line 1

PHP Warning: Use of undefined constant index - assumed 'index' (this will throw an Error in a future version of PHP) in ..../includes/class_bootstrap.php(1422) : eval()'d code(4) : eval()'d code on line 1

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6
Reading the Character List in 9.71 - Page 2
Page 2 of 2 FirstFirst 12
Results 11 to 13 of 13

Thread: Reading the Character List in 9.71

  1. #11
    Junior Member
    Join Date
    Dec 2011
    Posts
    25

    RE: Reading the Character List in 9.71

    Thanks! It's much smaller now and working. I suppose the function getText is really needed here? Or do you believe the code below can get even simpler?
    [code=c++]
    #define DESIRED_ACCESS (PROCESS_VM_OPERATION | PROCESS_VM_WRITE | PROCESS_VM_READ)
    #define LOGININFO_ADDR 0x546CB0
    #define CLIENTBASE_ADDR 0x400000
    #define PID 12192

    DWORD clientPid = PID;
    HANDLE clientHandle = OpenProcess(DESIRED_ACCESS , FALSE, clientPid );;
    HWND clientHwnd = 0;
    DWORD clientBase = CLIENTBASE_ADDR;

    void getText(char* dst, textField field);

    void main()
    {

    char text[256];
    loginInfo* li = (loginInfo*) malloc( sizeof(loginInfo));
    if(ReadProcessMemory(clientHandle,(LPCVOID)(client Base + LOGININFO_ADDR),(LPVOID)li,sizeof(loginInfo),NULL) )
    {
    puts("======Account Info======");
    getText(text,li->accountName);
    printf("Account Name: %s\n",text);
    getText(text,li->password);
    printf("Password: %s\n",text);
    system("pause");
    }else{
    puts("Error reading process memory...exiting...");
    system("pause");
    exit(0);
    }

    }


    void getText(char* dst, textField field)
    {
    if(field.fieldType > 0xF)
    {
    ReadProcessMemory(clientHandle,(LPCVOID) field.text.ptr,(LPVOID)dst,field.textLength,NULL);
    }else{
    memcpy((void*) dst, (void*)field.text.cstring, field.textLength);
    }
    dst[field.textLength]=0;
    }
    [/code]

  2. #12
    Senior Member
    Join Date
    Jul 2011
    Posts
    120
    Still works?

  3. #13
    Junior Member
    Join Date
    Dec 2011
    Posts
    25
    So it's me again, after a long break, lol. Since the acc and pass could no longer be found in a static address after the update 9.71, we had to get them based on the address of the Character List (Pointer), as you know. I got the C++ code and successfully translated it to VB6. It worked like a charm, but eventually I abandoned Tibia. But here I am, 2 years later, asking: did something change since then?

    adrCharListPtr=&H9CAE28

    I always used the adrCharListPtr address from BlackD, and the one above, also from him, is for the latest 10.61 client. However the acc and pass are returning blank. Either the address is wrong (which I doubt) or the code below is no longer able to pinpoint to the the acc and pass in the memory, possibly due to a small change in these numbers (which I don't understand):


    Code:
    Public Type textField        ' 0
        cstring(0 To 15) As Byte  ' 16
        textLength       As Byte  ' 17
        unknown1(0 To 2) As Byte  ' 20
        fieldType        As Byte  ' 21
        unknown2(0 To 2) As Byte  ' 24
        unknown3         As Long  ' 28
    End Type
    
    Public Type loginInfo
        charListBegin    As Long
        charListEnd      As Long
        unknown(0 To 11) As Byte
        accountName      As textField
        password         As textField
    End Type
    Help please?!?

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •