[help]Proof of Concept: dwFindPattern TLS menu

User Tag List

Results 1 to 2 of 2
  1. #1
    babodx's Avatar Member
    Reputation
    2
    Join Date
    Apr 2008
    Posts
    9
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    [help]Proof of Concept: dwFindPattern TLS

    thanks all!
    i am chinese player
    wow in chinese version is 3.05

    i can't run shynd's code

    cant' find EB 02 33 00 64 8B 15 2C 00 00 00 8B 0D 00 00 00 00 8B 0C 8A

    shynd said

    This searches for what I've determined to be the easiest portion of WoW game code from which to glean the largest amount of information. In 2.4.2, it looks a bit like this:

    Code:
    00778D1B  |. 6A 00              PUSH 0                                   ; /Arg1 = 00000000
    00778D1D  |. 8BC8               MOV ECX,EAX                              ; |
    00778D1F  |. E8 ECE8FFFF        CALL <Wow.CGCurMgr_C>                    ; Wow.00777610
    00778D24  |. EB 02              JMP SHORT Wow.00778D28
    00778D26     33C0               XOR EAX,EAX
    00778D28     64:8B15 2C000000   MOV EDX,DWORD PTR FS:[2C]
    00778D2F  |. 8B0D 84AAE800      MOV ECX,DWORD PTR DS:[E8AA84]
    00778D35  |. 8B0C8A             MOV ECX,DWORD PTR DS:[EDX+ECX*4]
    00778D38  |. 8B15 B095D400      MOV EDX,DWORD PTR DS:[D495B0]
    00778D3E  |. 8981 10000000      MOV DWORD PTR DS:[ECX+10],EAX
    00778D44  |. 8982 18220000      MOV DWORD PTR DS:[EDX+2218],EAX
    00778D4A  |. A1 B095D400        MOV EAX,DWORD PTR DS:[D495B0]
    but in chinese version 3.05 how to find these code?

    use CE? IDA? OllyDBG?

    now i use IDA find
    Code:
    .text  00401000 0092B400 R . X . L para 0001 public CODE 32 0000 0000 0003 FFFFFFFF FFFFFFFF 
    .idata 0092C000 0092C708 R . . . L para 0002 public DATA 32 0000 0000 0003 FFFFFFFF FFFFFFFF 
    .rdata 0092C708 009BBA00 R . . . L para 0002 public DATA 32 0000 0000 0003 FFFFFFFF FFFFFFFF 
    .data  009BC000 01383800 R W . . L para 0003 public DATA 32 0000 0000 0003 FFFFFFFF FFFFFFFF 
    .zdata 01384000 01385000 R W X . L para 0004 public CODE 32 0000 0000 0003 FFFFFFFF FFFFFFFF 
    .tls   01385000 01385200 R W . . L para 0005 public DATA 32 0000 0000 0003 FFFFFFFF FFFFFFFF
    Code:
    .tls:01385000 TlsStart        db    0                 ; DATA XREF: .rdata:TlsDirectoryo
    Code:
    .rdata:009B5D8C TlsDirectory    dd offset TlsStart
    .rdata:009B5D90 TlsEnd_ptr      dd offset TlsEnd
    .rdata:009B5D94 TlsIndex_ptr    dd offset TlsIndex
    .rdata:009B5D98 TlsCallbacks_ptr dd offset TlsCallbacks
    Code:
    .text:0046B920                 push    ebp
    .text:0046B921                 mov     ebp, esp
    .text:0046B923                 cmp     dword_10160E4, 0
    .text:0046B92A                 jnz     short loc_46B954
    .text:0046B92C                 mov     ecx, large fs:2Ch
    .text:0046B933                 mov     eax, TlsIndex
    .text:0046B938                 mov     eax, [ecx+eax*4]
    .text:0046B93B                 mov     ecx, [eax+8]
    .text:0046B941                 mov     edx, [ebp+arg_0]
    .text:0046B944                 cmp     edx, ecx
    .text:0046B946                 jz      short loc_46B954
    .text:0046B948                 mov     dword_10160E4, ecx
    .text:0046B94E                 mov     [eax+8], edx
    how to find CALL <Wow.CGCurMgr_C> get "EB 02 33 00 64 8B 15 2C 00 00 00 8B 0D 00 00 00 00 8B 0C 8A " string

    [help]Proof of Concept: dwFindPattern TLS
  2. #2
    schlumpf's Avatar Retired Noggit Developer

    Reputation
    755
    Join Date
    Nov 2006
    Posts
    2,759
    Thanks G/R
    0/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I thought there was no difference between the binaries. Oo

    On the thing: You will need a plugin to get you the pattern. Or increase the "opcode bytes shown" in the settings to 5. That should show most opcodes. If not, increase it more.

    The pattern is those opcodes without the information being variable. This is dword_10160E4, TlsIndex and dword_10160E4 in your code posted.

    Those bytes should be set to ignore in the mask for the pattern.

    You will get something like the string you posted and a pattern with some wildcards.

    You then have to add * bytes to get to the TlsIndex part. Then you will have to get the content of that address. Like:
    Code:
    int loc = findpattern(pattern, mask);
    loc += 20; // this is the value you will have to add (* bytes)
    int pointer = *reinterpret_cast<int*>(loc);
    You then have the address of TlsIndex in "pointer".

Similar Threads

  1. Behind target check (proof of concept)
    By Ultraviolence in forum WoW UI, Macros and Talent Specs
    Replies: 10
    Last Post: 02-07-2013, 03:34 AM
  2. Proof of Concept: dwFindPattern TLS [C#]
    By Shynd in forum WoW Memory Editing
    Replies: 14
    Last Post: 05-28-2010, 09:46 AM
  3. I need some Lua help please. Great concept.
    By TripZone in forum WoW EMU Questions & Requests
    Replies: 4
    Last Post: 08-01-2009, 02:01 PM
  4. [Proof of Concept] Anti Ban
    By ashleyww in forum World of Warcraft Bots and Programs
    Replies: 24
    Last Post: 05-18-2009, 07:21 PM
  5. [Showoff][Proof-of-Concept]WMO-Editing+Maininterface
    By Tigurius in forum World of Warcraft Model Editing
    Replies: 26
    Last Post: 01-16-2009, 01:47 AM
All times are GMT -5. The time now is 05:37 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Google Authenticator verification provided by Two-Factor Authentication (Free) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search