私は最近 python を学ぼうとしていますが、それがどのように機能するかを正確に理解するのに苦労しているものに出くわしました。主にリストのデザインです。
問題のリストは、単純なファジングツールについて説明している次のセキュリティ記事からのものです。2 秒で.aspx
問題の実際のリストは次のとおりです。
#Negotiate Protocol Request
packet = [chr(int(a, 16)) for a in """
00 00 00 90
ff 53 4d 42 72 00 00 00 00 18 53 c8 00 00 00 00
00 00 00 00 00 00 00 00 ff ff ff fe 00 00 00 00
00 6d 00 02 50 43 20 4e 45 54 57 4f 52 4b 20 50
52 4f 47 52 41 4d 20 31 2e 30 00 02 4c 41 4e 4d
41 4e 31 2e 30 00 02 57 69 6e 64 6f 77 73 20 66
6f 72 20 57 6f 72 6b 67 72 6f 75 70 73 20 33 2e
31 61 00 02 4c 4d 31 2e 32 58 30 30 32 00 02 4c
41 4e 4d 41 4e 32 2e 31 00 02 4e 54 20 4c 4d 20
30 2e 31 32 00 02 53 4d 42 20 32 2e 30 30 32 00
""".split()]
彼は、次の行を使用して、そこから 1 バイト (だと思いますか?) を取り出します。
what = packet[:]
where = choice(range(len(packet)))
which = chr(choice(range(256)))
what[where] = which
私はこのように設計されたリストを見たことがありません。私を最も混乱させているのはpacket = [chr(int(a, 16)) for a in """
、コメントブロックのように見えるものにすべてのものを収容している.split()
. 0_o
これが漠然とした質問であることは承知していますが、誰かが私にこれを説明してくれるか、リスト作成のスタイルを説明するドキュメントの方向性を教えてくれたら、私は非常にうれしいです. これは、大量のバイトを格納/引き出すための非常に効率的な方法のようです。