I am trying to understand assembly and buffer overflows on a 64bit Intel i7 machine. I am having a lot of questions. I asked on SO but I don't have any satisfactory answers. I also don't get why there are MOV
instructions to EEDI, ESI and EDI instead of PUSH
instructions. Perhaps I should understand assembly on modern architectures first. Can anyone answer my qustions and point me to right learning resources for modern architectures? (I am asking here because people doing REing do have knowledge about assembly and are more targeted audience as compared to the broader audience on SO)
-
They answers seemed good to me on SO. I think you just failed to understand them.– Simeon PilgrimJun 29, 2014 at 1:39
-
3I'm down voting at it's not really a RE question and you got answers on SO and you could have asked for clarification over there.– Simeon PilgrimJun 29, 2014 at 1:41
-
Ok. Thanks. I'll try to understand it. But I asked a lot of questions and I was told only about what's CFI and CFA. :-/– Pervy SageJun 29, 2014 at 4:29
-
3The general point is to ask a question at a time not seventeen. This way people can answer and know the question is done.– Simeon PilgrimJun 29, 2014 at 5:20
-
1in x64 the first four arguments are passed via registers so the argument 1,2,3 are moved to the registers do a function that is function (a,b,c,d,e,f,g) and you might see e being pushed into stack or moved into stack– blabbJun 29, 2014 at 8:24
2 Answers
- Assembly Language for x86 Processors by Kip Irvine
- Optimization manuals by Agner
- Under the Hood article by Matt Pietrek
- Skull Security Assembly Summary
- Assembly Language Step By Step for Linux by Jeff Duntemann
- Introduction to x64 Assembly
- Intel Manuals
- Tutorials Point
I think PC Assembly Language from Paul Carter is a good starting point: http://www.drpaulcarter.com/pcasm/
Kind regards
-
1I gave a colleague win32assembly.programminghorizon.com/tutorials.html and that worked for him. + a lot of easy crackmes.– StolasJun 30, 2014 at 13:32