Am I doing this correctly... (IDA) menu

Shout-Out

User Tag List

Results 1 to 8 of 8
  1. #1
    MyNewName's Avatar Banned I Suck At This CoreCoins Purchaser
    Reputation
    280
    Join Date
    Jan 2012
    Posts
    334
    Thanks G/R
    0/0
    Trade Feedback
    2 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Am I doing this correctly... (IDA)

    Ok I figured out how to find my own offsets. So now im trying to learn to rebase them. Most of them are simple enough. But ones with "extra" digit are giving me hell.

    What I am working with is 10992B8 Now do I go back from 10 four times. Being F, E, D, C? and it becomes C992B8? I have googled myself to death and cannot find anything telling you how to add or subtract to these adresses.
    Last edited by MyNewName; 06-19-2013 at 02:16 PM.

    Am I doing this correctly... (IDA)
  2. #2
    Frosttall's Avatar Active Member
    Reputation
    64
    Join Date
    Feb 2011
    Posts
    261
    Thanks G/R
    16/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by TwistedSelf View Post
    Ok I figured out how to find my own offsets. So now im trying to learn to rebase them. Most of them are simple enough. But ones with "extra" digit are giving me hell.

    What I am working with is 10992B8 Now do I go back from 10 four times. Being F, E, D, C? and it becomes C992B8? I have googled myself to death and cannot find anything telling you how to add or subtract to these adresses.
    Open your calculator, switch to 'programmer' view-mode, set the decimal type to HEX on the left side and paste your current value.
    Now press minus '-' to subtract and enter 400000 (that's the base-address if you haven't rebased the program in IDA).

    Means: 0x10992B8 - 0x400000 = 0xC992B8
    Now add this value to the base address of Wow.exe and you have the position you've been looking for.

    More informations about base address and ASLR here: Address Space Layout Randomization ? Wikipedia
    Last edited by Frosttall; 06-19-2013 at 03:15 PM.

  3. #3
    Robske's Avatar Contributor
    Reputation
    305
    Join Date
    May 2007
    Posts
    1,062
    Thanks G/R
    3/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." - Martin Golding
    "I cried a little earlier when I had to poop" - Sku

  4. #4
    Jadd's Avatar 🐸 Premium Seller
    Reputation
    1515
    Join Date
    May 2008
    Posts
    2,433
    Thanks G/R
    81/336
    Trade Feedback
    1 (100%)
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Use Windows calculator if you get stuck.

    For rebasing 0x00400000 all you need to remember is this:
    0x13 -> 0x0F
    0x12 -> 0x0E
    0x11 -> 0x0D
    0x10 -> 0x0C
    0x0F -> 0x0B
    0x0E -> 0x0A
    0x0D -> 0x09
    0x0C -> 0x08
    0x0B -> 0x07
    0x0A -> 0x06

    If you're constantly rebasing addresses at 0x00400000, eventually you will be able to do it in your head. It's really nothing you need to worry about.

  5. #5
    VesperCore's Avatar Contributor
    Reputation
    127
    Join Date
    Feb 2012
    Posts
    392
    Thanks G/R
    2/17
    Trade Feedback
    2 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by TwistedSelf View Post
    Ok I figured out how to find my own offsets. So now im trying to learn to rebase them. Most of them are simple enough. But ones with "extra" digit are giving me hell.

    What I am working with is 10992B8 Now do I go back from 10 four times. Being F, E, D, C? and it becomes C992B8? I have googled myself to death and cannot find anything telling you how to add or subtract to these adresses.
    You can also directly work with rebased addresses:
    "Edit" => "Segments" => "Rebase Program..."
    Value: 0x0 instead of 0x400000

    no need to change the rest

    if your PC don't support the rebase stuff, just follow the previously posted advises

  6. #6
    MyNewName's Avatar Banned I Suck At This CoreCoins Purchaser
    Reputation
    280
    Join Date
    Jan 2012
    Posts
    334
    Thanks G/R
    0/0
    Trade Feedback
    2 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I thank you all for the help.

  7. #7
    MyNewName's Avatar Banned I Suck At This CoreCoins Purchaser
    Reputation
    280
    Join Date
    Jan 2012
    Posts
    334
    Thanks G/R
    0/0
    Trade Feedback
    2 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Ok this is were I am. I am able to track down the signatures "blah" to what I am looking for. Is there a easier way to make a mask and search for it in IDA Pro FREE? example. Old client I can come up with a sig lets just say it is x55/x8B/xEC/x83/x7D/08/x00/x6A/x00/x74/x1E. How do I know the difference between the Dynamic and Static ones? I heard there is a plugin to create mask for you, but I seem to be unable to find one that actually loads. Is there a library I can use or something on Dyn vs Stat?

    Once again all help is much appreciated.

  8. #8
    Empted's Avatar Contributor
    Reputation
    83
    Join Date
    Aug 2011
    Posts
    117
    Thanks G/R
    0/5
    Trade Feedback
    2 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    You'll need some basic opcode knowledge. Operand fields are variable, so if you'll look into disassembly you will notice something like:
    PHP Code:
    68 A0453600      PUSH firefox.003645A0 
    You can see that 0x68 is instruction code, 0xa0453600 is operand value (it's also in little-endian). So you can make sign for these bytes as 0x68 ?? ?? ?? ??.
    Probably there are lots of instruments that can do that thing for you, but it's rather useful to be able to do without them.

    In your case:
    PHP Code:
    55               PUSH EBP
    8BEC             MOV EBP
    ,ESP
    837D 08 00       CMP DWORD PTR SS
    :[EBP+8],0
    6A 00            PUSH 0
    74 1E            JE SHORT Wow
    .Somewhere (JUMP instruction usually uses relative offsets
    So the sign can be like 55 8B EC 83 7D 08 ?? 6A ?? 74 ??
    First 3 bytes are very common for functions, those instructions form stack frame, so it's not very wise to include them into signature.
    Last edited by Empted; 06-23-2013 at 04:24 AM.

Similar Threads

  1. Does doing this make me a bad person...?
    By gryphons53 in forum World of Warcraft General
    Replies: 13
    Last Post: 04-16-2009, 12:51 AM
  2. How is he doing this? (hunter hack)
    By bibbibo in forum WoW EMU Exploits & Bugs
    Replies: 10
    Last Post: 04-05-2008, 08:49 PM
  3. Can I get banned/caught by doing this?
    By pro jumper in forum World of Warcraft General
    Replies: 4
    Last Post: 10-27-2007, 03:22 AM
All times are GMT -5. The time now is 02:55 PM. 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