30/09/2018, 17:41

Hỏi về một số ký tự lạ trong script python

Mik có tìm hiểu 1 số chương trình ngoài và trong chương trình này thấy có ký tự sau
<< , & , và chế độ “wb”,“rb” khi open file

Đây là chương trình đó

def getflag(openfile):

  c = open(openfile,"rb").read()[54:]

  newfile = ""

  for i in range(len(c)/2):

    first  = ord(c[2*i])   & 0xf;

    second = ord(c[2*i+1]) & 0xf;

    result = (first << 4) + (second)

    newfile += chr(result)

  try:

    open("flag.bmp","wb").write(newfile)

    print 'Createfile flag ok , get flag now :D'

  except:

    print 'error create'

  return

if __name__ == "__main__":

  openfile = raw_input("nhap file bmp vao: ")

  getflag(openfile)

Ai chỉ mik giùm ý nghĩa các ký tự đó với ^^

Dương Tiến Thịnh viết 19:51 ngày 30/09/2018

Ký tự << là phép dịch bit. Ví dụ first<<2 là dịch 2 bit sang phía bên trái. Ví dụ first = 0011 1100, first<<2=1111 0000.
Ký tự & là phép and bit. Kiểu như 0 and 0 =0, 1 and 0=0, 1 and 1=1 ấy.
wb: mở file để ghi dạng binary.
rb: mở file để đọc dạng binary.

Bài liên quan
0