I'm somehow newbe in reverse engineering and currently I'm reading RE4B book.

enter image description here

In the image above:

  1. I can't figure out the role of s in the functions f1 and f2. As far as I know, based on the last line in the image (i.e. s db 'world', 0xa, 0), the variable s is a pointer to the beginning of world string. So, why this value is over-writed with -1C in the functions? (s = dword ptr -1Ch)
  2. As you know, we can use stack to pass function arguments. The question is why the compiler used mov [esp+1Ch+s], offset s ; "world\n" instead of mov [esp], offset s ; "world\n"?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.