import binascii x=11 print x #>> 11 print int(x) #>> 11 print hex(x) #>> 0xb print str(x) #>> 11 x="11" print x #>> 11 print int(x) #>> 11 print hex(x) #>> ERROR print str(x) #>> 11 x=0x11 print x #>> 17 print int(x) #>> 17 print hex(x) #>> 0x11 print str(x) #>> 17 x = "0x17" print x #>> 0x17 print int(x) #>> ERROR print hex(x) #>> ERROR hex(int) print str(x) #>> "0x17" x="11" print int(x) #>> 11 print int(x,2) #>> 3 print int(x,8) #>> 9 print int(x,10) #>> 11 print int(x,16) #>> 17 x=11 print int(x) #>> 11 print int(x,2) #>> ERROR print int(x,8) #>> ERROR print int(x,10) #>> ERROR print int(x,16) #>> ERROR x="48454c4C61" print binascii.unhexlify(x) #>> HELLa x='a' print ord(x) #>> 97 print hex(ord(x)) #>> 0x61
19 January 2012
Python hex -> int -> str
18 January 2012
file offset vs RVA dalam kepala Pi'e (PE Header)
perbincangan mengenai PE(protable executable) Header.
CFF explorer boleh listkan export function utk sebarang dll, nama dan alamat(RVA). Bagaimana nak convert rva ke file offset.
1) pastikan lokasi rva tersebut dalam section mana
a) 'Section Headers'(dlm CFF) menyenaraikan senarai section yg ada. Gunakan kolum 'Virtual Address'(sebenarnya rva address) dan Virtual size. Contoh RVA=0x6380.
Berdasarkan rajah di atas, 0X6380 berada dalam section '.text'(bermula pada 0x1000 bersaiz 0x2A19B).
2) file offset = RVA - (section rva start) + (section raw address)
= 0x6380 - 0x1000 + 0x400
= 0x5780
ps: boleh semak guna 'Address Converter' dlm CFF
CFF explorer boleh listkan export function utk sebarang dll, nama dan alamat(RVA). Bagaimana nak convert rva ke file offset.
1) pastikan lokasi rva tersebut dalam section mana
a) 'Section Headers'(dlm CFF) menyenaraikan senarai section yg ada. Gunakan kolum 'Virtual Address'(sebenarnya rva address) dan Virtual size. Contoh RVA=0x6380.
Berdasarkan rajah di atas, 0X6380 berada dalam section '.text'(bermula pada 0x1000 bersaiz 0x2A19B).
2) file offset = RVA - (section rva start) + (section raw address)
= 0x6380 - 0x1000 + 0x400
= 0x5780
ps: boleh semak guna 'Address Converter' dlm CFF
11 January 2012
signed integer
untuk signed integer, nilai (dalam) bits tidak berkadar langsung dengan nilai integer.
Integer 8 bit, 0 hingga 01111111(2) adalah 0 hingga 127(10). Seterusnya 10000000(2) hingga 11111111(2) adalah -128(10) hingga -1(10).
Integer 32 bit pula, 0x00000000 hingga 0x0ffffffff adalah 0 hingga +2,147,483,647. Seterusnya 0x80000000 hingga 0xffffffff adalah -2,147,483,648 hingga -1.
Integer 8 bit, 0 hingga 01111111(2) adalah 0 hingga 127(10). Seterusnya 10000000(2) hingga 11111111(2) adalah -128(10) hingga -1(10).
Integer 32 bit pula, 0x00000000 hingga 0x0ffffffff adalah 0 hingga +2,147,483,647. Seterusnya 0x80000000 hingga 0xffffffff adalah -2,147,483,648 hingga -1.
Subscribe to:
Posts (Atom)