Learning Reverse Engineer menu

User Tag List

Page 1 of 2 12 LastLast
Results 1 to 15 of 26
  1. #1
    =sinister='s Avatar Contributor
    Reputation
    154
    Join Date
    Jun 2006
    Posts
    277
    Thanks G/R
    1/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Learning Reverse Engineer

    So i've decided to become a reverse engineer. I only know a little about software engineering right now, but I will do whatever it takes. I'm currently reading the book "Reversing: Secrets of Reverse Engineering" by Eldad Eilam. I've read bout 40 pages of it so far thoroughly, it has been a good read. So far I understand that when a compiler compiles a source code, some of it may be missing (Such as variable names, etc..), and there are different layers of coding. One of the lowest level languages would be assembly (ASM), which shows most of what each line of code does (Which is why there is a whole lot of asm code when you disassemble a program). Then I read about User Defined Functions, variables, arrays, lists, etc.. and I stopped at the part where it begins to talk about the reversing process.

    So please tell me, am I on the right track here? Should I continue? I don't know very much about how windows works or pointers, structures, etc... but so far I am able to understand most of the book. Also, if you think I am capable of continuing, what programs do you use for reverse engineering? I know Olly Debug is a popular one, but are there any other ones I should know about?

    Thanks to anyone who replies.

    Learning Reverse Engineer
  2. #2
    luciferc's Avatar Contributor
    Reputation
    90
    Join Date
    Jul 2008
    Posts
    373
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I've read that book its good :P.

    Make sure u get to know a language first thu.

    Aka Learn C# or C++ etc...

    Its the neccisary that you...

    #1 Know how to Program

    #2 Know a Language that you are profcient in so all you need to learn is how to do Reverse Engineering with that language and not learn it totaly.

    #3 Get a good debugger IDA pro (Your Soul) or Olly Dbg (Free)

    #4 Understand memory Structures of/c and what t3h book learns u

  3. #3
    =sinister='s Avatar Contributor
    Reputation
    154
    Join Date
    Jun 2006
    Posts
    277
    Thanks G/R
    1/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thanks for the reply!
    Well the one thing I want to "reverse engineer" in is WoW. So my next question would be, what language is WoW written in? Hold on let me do a test!

    After putting WoW.exe in PEiD, it says it is written in:
    Microsoft Visual C++ 6.0 [Overlay]
    This is correct, right?

  4. #4
    Phygar's Avatar ( ͡° ͜ʖ ͡°)
    Reputation
    443
    Join Date
    Nov 2007
    Posts
    1,591
    Thanks G/R
    7/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by =sinister= View Post
    Thanks for the reply!
    Well the one thing I want to "reverse engineer" in is WoW. So my next question would be, what language is WoW written in? Hold on let me do a test!

    After putting WoW.exe in PEiD, it says it is written in:
    Microsoft Visual C++ 6.0 [Overlay]
    This is correct, right?
    Yes, it's written in C++, but you'll probably be doing your work in Assembly, so it hardly matters as long as something's actually compiled, rather than something like in AutoIt, where a script is packed along with an interpreter.

  5. #5
    luciferc's Avatar Contributor
    Reputation
    90
    Join Date
    Jul 2008
    Posts
    373
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I meant find a good langauge u like..

    Aka Wow is in C++

    But i do C# b/c it doesn't matter as long as i can still do what i need to do with a diff language.

  6. #6
    Cypher's Avatar Kynox's Sister's Pimp
    Reputation
    1356
    Join Date
    Apr 2006
    Posts
    5,368
    Thanks G/R
    0/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by =sinister= View Post
    So i've decided to become a reverse engineer. I only know a little about software engineering right now, but I will do whatever it takes. I'm currently reading the book "Reversing: Secrets of Reverse Engineering" by Eldad Eilam. I've read bout 40 pages of it so far thoroughly, it has been a good read. So far I understand that when a compiler compiles a source code, some of it may be missing (Such as variable names, etc..), and there are different layers of coding. One of the lowest level languages would be assembly (ASM), which shows most of what each line of code does (Which is why there is a whole lot of asm code when you disassemble a program). Then I read about User Defined Functions, variables, arrays, lists, etc.. and I stopped at the part where it begins to talk about the reversing process.

    So please tell me, am I on the right track here? Should I continue? I don't know very much about how windows works or pointers, structures, etc... but so far I am able to understand most of the book. Also, if you think I am capable of continuing, what programs do you use for reverse engineering? I know Olly Debug is a popular one, but are there any other ones I should know about?

    Thanks to anyone who replies.
    A solid programming background is generally a prerequisite for reversing at at a decent level. If you're working with native code (like WoW) it really helps if you know C/C++ so you can practice by taking ASM and coverting it to C and vice versa.

    Also it allows you to write your own apps, compile them, then reverse them. It seems like a strange concept but its actually a great way to learn.

    As for software, IDA is the best disassembler/debugger, period, but is quite expensive. But OllyDbg can't be beaten if you're looking for something free. OllyDbg used to be the best debugger even over IDA, but with the new IDA v5.4 that seems to have changed with all the new debugger improvements and support.


    Originally Posted by Phygar View Post
    Yes, it's written in C++, but you'll probably be doing your work in Assembly, so it hardly matters as long as something's actually compiled, rather than something like in AutoIt, where a script is packed along with an interpreter.
    Err. What?

    If you're referring to reversing in general, the language the software you're reversing is written in makes quite a large difference actually, because of the way certain constructs are implemented by the compiler (and also the constructs a language has compared to others -- ie virtual funcntion tables are not something you look for in C code) and also the standard library of that language.

    If you're referring to programming for the software you're reversing, when coding something like an injected DLL for WoW for example, 99.99% of your code will in C++. You will be at the assembly level when reversing WoW, but when you actually turn that research into code you will be working with C++.

    Also, by your logic that would count C# out, which is an acceptable language to work in (and you can even implement pretty much all of your code in it if you have a decent managed->native interop). C# is compiled into an intermediate form (which is not native code) then compiled to native code 'on the fly' when the program is executed. The process is actually a lot more compilcated than this but I'm omitting the details because they're irrelevant for this discussion. What really matters is that the code is not "compiled" in the sense that you're implying.

    You don't necessarily need to work in a low level native language (even though it does make a lot of stuff a hell of a lot easier to implement), you just need to pick a language that has the appropriate features.



  7. #7
    SKU's Avatar Contributor
    Reputation
    306
    Join Date
    May 2007
    Posts
    565
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    If you're going with Olly, this is one awesome series of beginner tutorials, perfectly for us. Although it's 'all about cracking and unpacking', you'll still get a good understanding of Olly and how 'software works'.

    Tuts 4 You: Downloads / Lenas Reversing for Newbies

  8. #8
    Sillyboy72's Avatar Member
    Reputation
    13
    Join Date
    Jan 2009
    Posts
    66
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Not to be a doo-dee head, but ... give up 6):

    I don't care what these freaks tell you, reverse engineering is hard. From your mail, it just doesn't sound like you have a solid background in software development. I have been programming as long as I can remember... (literally a decade professionally, but probably another 10 as a hobby) and I stillspend most of my time begging for help in the forums.

    If you are serious about really jumping in, i think Cypher has a great idea of translating between C and ASM. Go write some C code, launch IDA on the executable, and learn by comparing the two. Use structs, classes, virtual functions, globals, locals, __cdecl, __stdcall, etc... etc.

    If you goal is simply to hack on wow a bit w/o being a huge leach... I suggest just being a huge leach, its what I do ;-) Seriously, people have great here. As long as it's clear that you searched the forums, tried your best, and then asked very clear/specific questions... you can generally keep plodding forward.

    Good luck.
    -Silly

  9. #9
    Cypher's Avatar Kynox's Sister's Pimp
    Reputation
    1356
    Join Date
    Apr 2006
    Posts
    5,368
    Thanks G/R
    0/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Sillyboy72 View Post
    Not to be a doo-dee head, but ... give up 6):

    I don't care what these freaks tell you, reverse engineering is hard. From your mail, it just doesn't sound like you have a solid background in software development. I have been programming as long as I can remember... (literally a decade professionally, but probably another 10 as a hobby) and I stillspend most of my time begging for help in the forums.

    If you are serious about really jumping in, i think Cypher has a great idea of translating between C and ASM. Go write some C code, launch IDA on the executable, and learn by comparing the two. Use structs, classes, virtual functions, globals, locals, __cdecl, __stdcall, etc... etc.

    If you goal is simply to hack on wow a bit w/o being a huge leach... I suggest just being a huge leach, its what I do ;-) Seriously, people have great here. As long as it's clear that you searched the forums, tried your best, and then asked very clear/specific questions... you can generally keep plodding forward.

    Good luck.
    -Silly
    I'm an 18 years old and still a student, so is Kynox. It doesn't take decades of experience so I think you've over-hyping it a bit. You just need to be focused, disciplined, have some spare time, and most of all, have that yearn to learn more that has been driving 'hackers' since the beginning.

    P.S. Lol @ "freaks". Win.

  10. #10
    Phygar's Avatar ( ͡° ͜ʖ ͡°)
    Reputation
    443
    Join Date
    Nov 2007
    Posts
    1,591
    Thanks G/R
    7/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    No, I was only trying to say that using a standard debugger like IDA or Ollydbg would be useful with a standard assembly, where if you had something different, like C# with .net, it would take a different method to do it.

  11. #11
    Cypher's Avatar Kynox's Sister's Pimp
    Reputation
    1356
    Join Date
    Apr 2006
    Posts
    5,368
    Thanks G/R
    0/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Phygar View Post
    No, I was only trying to say that using a standard debugger like IDA or Ollydbg would be useful with a standard assembly, where if you had something different, like C# with .net, it would take a different method to do it.
    ....

    Then why did you even post? That's like me saying "if you want to eat, you should probably do it through your mouth, if you want to crap, you should probably do it through your ass".

    If the tool you're using doesn't support the format of the file you're reversing you're obviously gonna have a problem.

  12. #12
    Sillyboy72's Avatar Member
    Reputation
    13
    Join Date
    Jan 2009
    Posts
    66
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Cypher View Post
    I'm an 18 years old and still a student, so is Kynox. It doesn't take decades of experience so I think you've over-hyping it a bit. You just need to be focused, disciplined, have some spare time, and most of all, have that yearn to learn more that has been driving 'hackers' since the beginning.

    P.S. Lol @ "freaks". Win.
    Well, clearly you are right in that I am over-hyping it... a bit But I think its a good idea to do some expectation settings too. The OP said
    I only know a little about software engineering right now
    which i took to generally mean "I haven't written much code". Possibly an over extrapolation, but if true... the man has a long road ahead, that is probably best started by working on that problem, before the more complex problems of reverse engineering.

    I didn't mean to imply it would take decades (though, I am a slow learner ) -- just that even with that much experience, its a tough learning curve. Without any experience, I would be crying for my mommy. Freak.


    -Silly

  13. #13
    Cypher's Avatar Kynox's Sister's Pimp
    Reputation
    1356
    Join Date
    Apr 2006
    Posts
    5,368
    Thanks G/R
    0/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Yeah, I follow ya.

    The thing is though, learning reversing is over-hyped. Yes, some of the more advanced stuff is hard, VERY hard, some of the shit that the experts do confuses the **** out of me until i read it several times and spend a few hours to absorb it all. But, if you're learning it as hobby though you can take it at your own pace, learn what you need as you go, and its a very fun and rewarding experience. Its never too late or early to start, and you'll never stop learning more.

    Don't be discouraged because you don't understand it all right away. Starting off and learning all the low level prerequisite info is the hardest part because its a lot of new, difficult content. Once you hit a point though it will just "click" and things will make sense. When I first started I was confused by a bunch of stuff, but I remember just reading a chapter in a book that filled in the missing link and everything just fell into place.

    I guess what I'm trying to say is, go for it, go at your own pace, do what you want to do, and most of all, have fun.

  14. #14
    Mike75's Avatar Site Donator
    Reputation
    4
    Join Date
    Feb 2009
    Posts
    7
    Thanks G/R
    2/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hi Together.

    i thought a lot of time "how does the bots work". And a few days ago i found this forum.
    It's really nice, a few days ago i thought "Okay, sending keystrokes isn't realy hard, but how do they get informations on targets, life, mana, spells and so on.

    Reading the forums gives me a little bit of information /at my actual skill on this!). The Reversing book was ordered on amazon. The first 4 Tutorials of Lena has been done.

    So i hope the next 36 Tutorials and the rest of the Book are as well as the things i read till now.

    I'm software developer for around 10 years now, and i must say: This is almost different to everything i donw/tried before. As Cypher wrote: there are difficult things, but what would be a world without difficult things. if everything is easy going, it would be . . Everyone has begin with an Hello World. No one hast directly started with memory editing in Wow (i hope so^^).

    Just want to say hello to the forum. And "Have fun" alltogether

    Mike,
    away to bed with the reversign book

    (sorry if there are too heavy mistakes)

  15. #15
    Sychotix's Avatar Moderator Authenticator enabled
    Reputation
    1415
    Join Date
    Apr 2006
    Posts
    3,942
    Thanks G/R
    285/571
    Trade Feedback
    1 (100%)
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Mike75 View Post
    No one hast directly started with memory editing in Wow (i hope so^^).
    Actually, way back in the day WoW was extremely hackable so all you needed to do was search for a few values =P

    And Cypher is right. Learn the basics of programming and how it works, and reverse engineering will make a TON more sense. I was extremely noob when i started hacking "Gunz", and I got a bunch of help from friends... then I just kept moving onto new games and got better as I went =D

    Try starting with (older) offline games which have no protection to see where you can go.

Page 1 of 2 12 LastLast

Similar Threads

  1. Reverse Engineering (i think)
    By ToughCat in forum WoW Scams Help
    Replies: 6
    Last Post: 09-18-2009, 06:24 PM
  2. [Guide] Reverse engineer proof your Phisher App!
    By dj_hype in forum WoW Scam Prevention
    Replies: 8
    Last Post: 02-27-2009, 08:41 PM
  3. Reverse Engineering
    By typedef in forum WoW EMU Questions & Requests
    Replies: 6
    Last Post: 12-26-2008, 06:50 AM
  4. Reverse Engineering/Disassembly
    By Clain in forum Programming
    Replies: 2
    Last Post: 10-22-2008, 04:24 PM
  5. [DLL] Reverse engineered Scan.dll
    By Seifer in forum World of Warcraft Bots and Programs
    Replies: 35
    Last Post: 04-15-2008, 08:06 PM
All times are GMT -5. The time now is 03:11 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search