Showing posts with label unicode. Show all posts
Showing posts with label unicode. Show all posts

06 August 2015

smtplib handle non-ascii

email_body_msg = "victim’s reach"

char between m and s is non ascii character.

smtplib (python) cannot handle this. So what is the solution?


Simple solution, Just convert all the email_body_msg to base64. 

Steps:
1) Use another python lib:
     from email.mime.text import MIMEText

2) Use UTF-8
     message = MIMEText(email_body_msg, _charset="UTF-8")

3) convert MIMEText back to string
    smtplib.SMTP.sendmail(self.mfrom, receivers, message.as_string())



good read:
http://betterexplained.com/articles/unicode/

15 June 2012

unicode kepada shellcode

biasa jumpa dalam javascript
%u16eb%u41b9%f4de

Ia adalah unicode, bersaiz 16 bit(2Byte)

Oleh kerana x86 adalah little-endian, so kalau dilihat dalam virtual memory akan jadi spt berikut:
eb 16 b9 41 de f4

extra:
dlm memory, 1 location(address) boleh isi 8 bit. 
Contoh 
  • alamat 13df000 : eb
  • alamat 13df001 : 16
  • alamat 13df002 : b9
  • alamat 13df003 : 41
  • alamat 13df004 : de
  • alamat 13df005 : f4

Dulu I wonder kenapa %u16eb jadi [eb 16]? org kata little-endian, so kena terbalikkan. Tapi kenapa [eb] tu tak diterbalikkan jadi [be] plak? Maknanya instead of [eb 16], jadi [be 61]?

Rupanya little-endian ni hanya pada susunan alamat memori je. Tapi 8 bit yg dlm alamat tersebut tetap sama je.