Jump to content
Tuts 4 You

get 3'th byte of eax?


FastLife

Recommended Posts

hello tuts4you, i tried to solve a keygenme and faced a problem.


 


the return value of a function is in example: eax == 00001234.


now i want the 3'th byte of it, which is 12.


 


so does anybody know a way to do this?


 


have a nice day!


Link to comment

C



void Main()
{
int IntToParse = 4660; 0x00001234 = EAX = 32 bit integer // adjust this according to which bits you want. remember byte ordering
int ParsePlace = 1; // bit shift, multiply, and
int Parsed = ((IntToParse >> (8*ParsePlace)) & 0xFF); printf("Parsed = %i\n");
}
----- Output - Parsed = 18 (12h)

x86 asm



IntToParse = 0x1234 ; mov eax, IntToParse ; int IntToParse = 0x1234 sar eax, 8 ; IntToParse >> 8 and eax, FF ; Result & FF. sometimes this step isnt necessary eax == 12
  • Like 1
Link to comment
x86 asm
IntToParse = 0x1234 ;mov eax, IntToParse ;  int IntToParse = 0x1234sar eax, 8 ; IntToParse >> 8and eax, FF ; Result & FF. sometimes this step isnt necessaryeax == 12 

Hi

 

easiest method for this problem (if we can call it problem !) is :

MOVZX EAX,AH

 

 

Best Regards,

h4sh3m

  • Like 1
Link to comment

i understand u (even though in this case a simple "sar eax, 8" works exactly same as "mov eax, ah") but way i showed is standard way to do this in high level language.

  • Like 1
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...