Thread: Address Logger?

Page 1 of 3 123 LastLast
Results 1 to 15 of 34
  1. #1
    Zhhot's Avatar
    Join Date
    Aug 2009
    Gender
    male
    Location
    Vancouver
    Posts
    314
    Reputation
    10
    Thanks
    52
    My Mood
    Inspired

    Address Logger?

    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


    Code:
    bool bCompare(const BYTE* pData, const BYTE* bMask, const char* szMask)
    {
    	for(;*szMask;++szMask,++pData,++bMask)
    		if(*szMask=='x' && *pData!=*bMask ) 
    			return false;
    	return (*szMask) == NULL;
    }
    
    DWORD FindPattern(DWORD dwAddress,DWORD dwLen,BYTE *bMask,char * szMask)
    {
    	for(DWORD i=0; i < dwLen; i++)
    		if( bCompare( (BYTE*)( dwAddress+i ),bMask,szMask) )
    			return (DWORD)(dwAddress+i);
    
    	return 0;
    }
    Now here is how to use this code


    Code:
    DWORD Your Address = FindPattern( 0x400000, 0x5000, ( PBYTE )
    "\xA1\x00\x00\x00\x00\x83\xEC\x00\x80\x78\x00\x00", "x????xx?xx??" );
    now i will explain a bit.


    Code:
    FindPattern( start address, + so many to the start address, ( PBYTE )
    "bytes to scan for", "signature mask" );
    signature mask is a "x" for the bytes that dont change,and a "?" for the bytes that do change.

    Here is some ******* scan codes for you to use that i made myself.


    Code:
       m_dwAKick     = FindPattern(0x400000, 0x01400000,(unsigned char*)"\x8B\x85\xFC\xE2\x04\x00\x39\x44\x24\x10\x75\x76\x8D\x8D\x70","xx??xxxxxxxxxx?");
       m_dwUAmmo1    = FindPattern(0x400000, 0x01400000,(unsigned char*)"\x89\x7E\x24\x7E\x15\x6A\x40\x6A\x01\xE8\x6C\x0A\x17\x00\x83","xxxxxxxxxx???xx");
       m_dwUAmmo2    = FindPattern(0x400000, 0x01400000,(unsigned char*)"\x89\x46\x20\x0F\xAF\xC7\x89\x46\x24\x5F\xB8\x01\x00\x00\x00","xxxxxxxxxxxxxxx");////
       m_dwUAmmo3    = FindPattern(0x400000, 0x01400000,(unsigned char*)"\x89\x46\x24\x5F\xB8\x01\x00\x00\x00\x5E\xC2\x04\x00\xCC\xCC","xxxxxxxxxxxxxxx");
       m_dwProne     = FindPattern(0x400000, 0x01400000,(unsigned char*)"\x84\xC0\x74\x0C\x8B\x8E\x78\x02\x00\x00\x8B\x01\x56\xFF\x50\x2C\x5E\xC3\x83","xxx?xx??xxxxxxxxxxx");
       m_dwNameEsp   = FindPattern(0x400000, 0x01400000,(unsigned char*)"\x75\x23\x8B\xCB\x69\xC9\x28\x1A\x00\x00\x8B\x81\xD8\x66\xBD","x?x?xx?xxxxx???");
       m_dwInvis     = FindPattern(0x400000, 0x01400000,(unsigned char*)"\x2C\x8B\x56\x10\x89\x57\x34\x66\x89\x2F\x8A\x86\x18\x02\x00","xx?xx?xxx?x??xx"); ///
       m_dwHeal      = FindPattern(0x400000, 0x01400000,(unsigned char*)"\x0F\x85\xA6\x00\x00\x00\x85\xC9\xC7\x05\x30\x1D\xB1\x00\x00\x00\x00\x40","xx????xxxx????xxxx");

    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    I FOUND THIS INFORMATION ON A SITE, ABOUT HOW TO CREATE AN ADDRESS LOGGER, I DONT GET IT BUT MAYBE SOMEONE ELSE CAN?
    Last edited by Zhhot; 09-03-2009 at 12:44 AM.

  2. #2
    zeco's Avatar
    Join Date
    Jul 2009
    Gender
    male
    Location
    Canada
    Posts
    683
    Reputation
    12
    Thanks
    78
    My Mood
    Cynical
    Been to the site that you got that from, can't remember the name ATM. IPawn, and Killer were working on this for a while, i wonder what they are up to. Either way i'm too lazy to think about this. Also because i've never gotten a bypass to work for me thus it's pretty useless >_<.

    edit: oh right its naeron's address logger;

    edit edit: you know you've been coding for too long when you end your sentences with semicolons;
    Last edited by zeco; 09-02-2009 at 11:18 PM.

  3. #3
    Synns's Avatar
    Join Date
    May 2007
    Gender
    male
    Posts
    5,174
    Reputation
    170
    Thanks
    2,556
    My Mood
    Bitchy
    Use Neo I.I.I's NSearch.

  4. #4
    zeco's Avatar
    Join Date
    Jul 2009
    Gender
    male
    Location
    Canada
    Posts
    683
    Reputation
    12
    Thanks
    78
    My Mood
    Cynical
    Quote Originally Posted by Longevity View Post
    Use Neo I.I.I's NSearch.
    And where exactly would i find this, and what exactly is it?

  5. #5
    rwkeith's Avatar
    Join Date
    Jul 2008
    Gender
    male
    Posts
    457
    Reputation
    11
    Thanks
    79
    My Mood
    Angelic
    Quote Originally Posted by Longevity View Post
    Use Neo I.I.I's NSearch.
    Whoa, it's Longevity....*bows down*. Yea and use Neo's I actually use it too...
    Goals In Life:
    [X] Become an Advanced Member
    [X]Release a tut on mpgh
    [0]Post 300 posts
    [X]Make a working hack
    [X] Learn c++

  6. #6
    why06's Avatar
    Join Date
    Jul 2009
    Gender
    male
    Location
    IBM
    Posts
    4,304
    Reputation
    170
    Thanks
    2,203
    My Mood
    Flirty
    Well the first two lines confuse me. The guy who coded this must be a fkin genius or either have a lot of experienced:
    Quote Originally Posted by Zhhot View Post
    Code:
    bool bCompare(const BYTE* pData, const BYTE* bMask, const char* szMask)
    {
    	for(;*szMask;++szMask,++pData,++bMask)
    Look at that he used a for loop and incremented 3 pointers at the same time. D: ffs! I didn't even know you could do that :{. And if that's not enough he puts the increment things on the left. I forget what side does what. I'm going to have to look that back up in my book. Plus accessing addresses confuse me a little.

    All I really know about addresses is this is a hex literal "0x....." and this is an oct literal "0..". I'm not sure what kind of literal just an "x..." is ??? I don't like jumping to far ahead, once I learn about classes and namespaces, and ASM. Then I'll try something like this. Goodluck though to whoever is attempting this.

    BTW: Anyway I'm with zeco. Where is this tutorial at?
    Last edited by why06; 09-03-2009 at 09:14 AM.

    "Every gun that is made, every warship launched, every rocket fired signifies, in the final sense, a theft from those who hunger and are not fed, those who are cold and are not clothed. This world in arms is not spending money alone. It is spending the sweat of its laborers, the genius of its scientists, the hopes of its children. The cost of one modern heavy bomber is this: a modern brick school in more than 30 cities. It is two electric power plants, each serving a town of 60,000 population. It is two fine, fully equipped hospitals. It is some fifty miles of concrete pavement. We pay for a single fighter plane with a half million bushels of wheat. We pay for a single destroyer with new homes that could have housed more than 8,000 people. This is, I repeat, the best way of life to be found on the road the world has been taking. This is not a way of life at all, in any true sense. Under the cloud of threatening war, it is humanity hanging from a cross of iron."
    - Dwight D. Eisenhower

  7. #7
    B1ackAnge1's Avatar
    Join Date
    Aug 2009
    Gender
    male
    Posts
    455
    Reputation
    74
    Thanks
    344
    My Mood
    Cynical
    ++x = pre-increment
    x++ = post increment;
    (same of course goes for decrement with '--');

    say: x = 1;
    y = ++x;
    Now Y == 2 and X == 2;

    if you say:
    x = 1; y = x++;
    then you'll have
    Y==1 and X == 2;

  8. The Following User Says Thank You to B1ackAnge1 For This Useful Post:

    why06 (09-03-2009)

  9. #8
    zeco's Avatar
    Join Date
    Jul 2009
    Gender
    male
    Location
    Canada
    Posts
    683
    Reputation
    12
    Thanks
    78
    My Mood
    Cynical
    I understand everything except one part
    Code:
    bool bCompare(const BYTE* pData, const BYTE* bMask, const char* szMask)
    {
    	for(;*szMask;++szMask,++pData,++bMask)
    		if(*szMask=='x' && *pData!=*bMask ) 
    			return false;
    	return (*szMask) == NULL;
    }

    Well starting with :
    if(*szMask=='x' && *pData!=*bMask )
    return false;

    Does it mean, If blah blah is true, just return false, ignoring the rest of the function.


    and for return (*szMask) == NULL;, does that mean, return the value if it is null? Or something to that effect.

    And if my guess is true, then what if the value isn't null, and doesn't comply with the previous if statement? Then the function that is supposed to return a bool won't be able to return anything. However this is assuming my guess was correct which it likely wasn't

    And upon thinking about that last part, am i right in thinking that a function ends whenever a value is returned, except for void functions where it just ends at a break(?), or when there is no more code?
    Last edited by zeco; 09-03-2009 at 01:13 PM.

  10. #9
    Threadstarter
    Dual-Keyboard Member
    Zhhot's Avatar
    Join Date
    Aug 2009
    Gender
    male
    Location
    Vancouver
    Posts
    314
    Reputation
    10
    Thanks
    52
    My Mood
    Inspired
    man, i totally forgot the site name, and i delete history and cookies every day, so probably not gunna be there, u can try googling it o.0?!

  11. #10
    zeco's Avatar
    Join Date
    Jul 2009
    Gender
    male
    Location
    Canada
    Posts
    683
    Reputation
    12
    Thanks
    78
    My Mood
    Cynical
    Quote Originally Posted by Zhhot View Post
    man, i totally forgot the site name, and i delete history and cookies every day, so probably not gunna be there, u can try googling it o.0?!

    It is naeron, apparently I've had a tab with it open, rather i forgot about this poor lonesome tab. So googling Naeron's address logger tutorial, should bring you to it.

  12. #11
    Threadstarter
    Dual-Keyboard Member
    Zhhot's Avatar
    Join Date
    Aug 2009
    Gender
    male
    Location
    Vancouver
    Posts
    314
    Reputation
    10
    Thanks
    52
    My Mood
    Inspired
    Quote Originally Posted by zeco View Post
    It is naeron, apparently I've had a tab with it open, rather i forgot about this poor lonesome tab. So googling Naeron's address logger tutorial, should bring you to it.
    "lonesome tab" rofl

  13. #12
    zeco's Avatar
    Join Date
    Jul 2009
    Gender
    male
    Location
    Canada
    Posts
    683
    Reputation
    12
    Thanks
    78
    My Mood
    Cynical
    Quote Originally Posted by Zhhot View Post
    "lonesome tab" rofl
    Dude, i have 2 separate(chrome, and Firefox) browsers with 30 tabs each. I get forgetful sometimes.

  14. #13
    why06's Avatar
    Join Date
    Jul 2009
    Gender
    male
    Location
    IBM
    Posts
    4,304
    Reputation
    170
    Thanks
    2,203
    My Mood
    Flirty
    Quote Originally Posted by zeco View Post
    I understand everything except one part
    Code:
    bool bCompare(const BYTE* pData, const BYTE* bMask, const char* szMask)
    {
    	for(;*szMask;++szMask,++pData,++bMask)
    		if(*szMask=='x' && *pData!=*bMask ) 
    			return false;
    	return (*szMask) == NULL;
    }
    Ok. which parts specifcally...

    Quote Originally Posted by zeco
    Well starting with :
    if(*szMask=='x' && *pData!=*bMask )
    return false;

    Does it mean, If blah blah is true, just return false, ignoring the rest of the function.
    Well to understand this we need to understand the part above it too. So all of this:
    Code:
    bool bCompare(const BYTE* pData, const BYTE* bMask, const char* szMask)
    {
    	for(;*szMask;++szMask,++pData,++bMask)
    		if(*szMask=='x' && *pData!=*bMask ) 
    			return false;
    This confused me a little too. This guy (whoever wrote the code) put the "*"(pointer sign) next to the type instead of the variable. See here:
    Code:
    bool bCompare(const BYTE* pData, const BYTE* bMask, const char* szMask)
    See I would have done it like this:

    Code:
    bool bCompare(const BYTE *pData, const BYTE *bMask, const char *szMask)
    Ok so now we know that these are pointers we need to know what this statement does:

    Code:
    for(;*szMask;++szMask,++pData,++bMask)
    		if(*szMask=='x' && *pData!=*bMask ) 
    			return false;
    Ok lets break it down. We will start with the for loop:
    Code:
    for(;*szMask;++szMask,++pData,++bMask)
    It seems like as long as the value("*" that's what that little thing means) of pointer szMask is not "0" the loop will keep executing.

    Remember Everytime it executes szMask, pData, and bMask all get incremented.

    Code:
    if(*szMask=='x' && *pData!=*bMask ) 
    			return false;
    All this means is that if the value of szMask is x (*szMask=='x') and (&&) the value of pData does not equal the value of bMask(*pData!=*bMask)....
    then this boolean funtion will return false



    Next question?
    Quote Originally Posted by zeco
    and for return (*szMask) == NULL;, does that mean, return the value if it is null? Or something to that effect.
    Well lets break it down again:
    Code:
    return (*szMask) == NULL;
    return can only return a boolean type because the function specifies that it returns a boolean. If it returned anything else there would be an erroe and this would not compile

    Code:
    return (*szMask) == NULL;
    The == operator will evaluate the values on both sides of it to see if they are equal in value and then return a true or false (boolean) value.

    Code:
    return (*szMask) == NULL;
    (*szMask) since szMask is a pointer to a byte, *szMask will return the value of that byte (byte values are usually char).

    NULL is the character that marks the end of a string. I'm unsure if its zero but basically...

    This whole express will evaluate to true or false depending if (*szMask) == NULL

    sorry I couldn't explain further got to get to class. xD
    Last edited by why06; 09-03-2009 at 04:15 PM.

    "Every gun that is made, every warship launched, every rocket fired signifies, in the final sense, a theft from those who hunger and are not fed, those who are cold and are not clothed. This world in arms is not spending money alone. It is spending the sweat of its laborers, the genius of its scientists, the hopes of its children. The cost of one modern heavy bomber is this: a modern brick school in more than 30 cities. It is two electric power plants, each serving a town of 60,000 population. It is two fine, fully equipped hospitals. It is some fifty miles of concrete pavement. We pay for a single fighter plane with a half million bushels of wheat. We pay for a single destroyer with new homes that could have housed more than 8,000 people. This is, I repeat, the best way of life to be found on the road the world has been taking. This is not a way of life at all, in any true sense. Under the cloud of threatening war, it is humanity hanging from a cross of iron."
    - Dwight D. Eisenhower

  15. The Following User Says Thank You to why06 For This Useful Post:

    B1ackAnge1 (09-03-2009)

  16. #14
    zeco's Avatar
    Join Date
    Jul 2009
    Gender
    male
    Location
    Canada
    Posts
    683
    Reputation
    12
    Thanks
    78
    My Mood
    Cynical
    xD i just Meant the tiny parts that Bolded. I understood everything else. But eitherway, what i really didn't understand is having the two returns. But based on the way you worded it i think i know my answer. Thanks for the part about return (*szMask) == NULL;. This alone made me fully understand.

    I would have caught on faster though, if he had
    return ((*szMask) == NULL);

    P.S. I put my pointer thingy beside the type too >_>. It just makes more sense in my head. Well while initializing anyway. If i'm getting the pointed to value, i put it beside the variable.

    So yeah i forgot that i knew how to code(kinda), and just did some tests of my own. Now everything makes sense
    Last edited by zeco; 09-03-2009 at 03:28 PM.

  17. #15
    why06's Avatar
    Join Date
    Jul 2009
    Gender
    male
    Location
    IBM
    Posts
    4,304
    Reputation
    170
    Thanks
    2,203
    My Mood
    Flirty
    Quote Originally Posted by zeco View Post
    xD i just Meant the tiny parts that Bolded. I understood everything else. But eitherway, what i really didn't understand is having the two returns.
    Well I didn't know so I figured I'd just got over everything .... actually that took a long time.

    Anyway the return sort of acts like a break statement. Since a function can only return once the first return that executes ends the code.


    And yeh I lot of people put the * on the type, but its a little misleading because C++ doesn't recognize the type as pointers only specific variables. Say if you wanted to declare multiple pointer variables at once:

    Code:
    int* a, b, c;  // This would not work.
    Code:
    int *a, *b, *c;   // This would.
    Some people who do this are just trying to make a point that Microsoft should change C++ to make an entirely new pointer type. :L

    "Every gun that is made, every warship launched, every rocket fired signifies, in the final sense, a theft from those who hunger and are not fed, those who are cold and are not clothed. This world in arms is not spending money alone. It is spending the sweat of its laborers, the genius of its scientists, the hopes of its children. The cost of one modern heavy bomber is this: a modern brick school in more than 30 cities. It is two electric power plants, each serving a town of 60,000 population. It is two fine, fully equipped hospitals. It is some fifty miles of concrete pavement. We pay for a single fighter plane with a half million bushels of wheat. We pay for a single destroyer with new homes that could have housed more than 8,000 people. This is, I repeat, the best way of life to be found on the road the world has been taking. This is not a way of life at all, in any true sense. Under the cloud of threatening war, it is humanity hanging from a cross of iron."
    - Dwight D. Eisenhower

Page 1 of 3 123 LastLast

Similar Threads

  1. Address Logger
    By iRobot™ in forum WarRock Hack Source Code
    Replies: 30
    Last Post: 07-22-2010, 11:56 PM
  2. Address logger for crossfire`?
    By GER-Domi. in forum CrossFire Help
    Replies: 1
    Last Post: 07-04-2010, 09:22 AM
  3. [Request] Warrock Address Logger
    By BMW M5 in forum WarRock Discussions
    Replies: 5
    Last Post: 11-15-2009, 02:57 AM
  4. [Help] Sorry for this but - Address Logger ?
    By D e a t h h a u n t S in forum WarRock - International Hacks
    Replies: 7
    Last Post: 09-28-2009, 01:40 PM
  5. anyone got a address logger?
    By bldymarien in forum Combat Arms Hacks & Cheats
    Replies: 3
    Last Post: 08-30-2008, 08:44 PM

Tags for this Thread