なんかいろいろこんぴゅーたかんけいのなぐりがき

なんか勉強しているこんぴゅーた関係のことのメモやそれ以外のことを書こうかなあ...

logs

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

環境変数のアドレスを取得のつづき

今日は前回の記事の続きを行ったのでその結果を記述する。

前回ランダムかされた環境変数のアドレスは結局3桁しかランダム化されないことが分かったのだが、
その乱数の変化のしかたに特徴はないか解析というほどのことではないが1万回環境変数の取得し、それをリスト化して、そこから、変化する3桁のみとりだし、それを10進数に(16進数3桁なので0~4095)変形してみた。

するとどうやら16進数で0x7ef~0xfffの範囲でしか値が変化していないことが分かり(私の使っている環境での話)つまりランダム化したところでアドレスがとり得るのは2000通り程度しかないことが分かった。

以下、解析するときに何も考えずに書いた、使い捨てコード。

#trim.py 16進数表記のアドレスのリストから変化する3桁の値のみのリストに変換する
r = open("result.txt","r")
w = open("trimed.txt","w")

for buf in r:
w.write(buf[4:7]+"\n")

r.close()
w.close()

#2ten.py 3桁の16進数リストを10進数にする
r = open("trimed.txt","r")
w = open("ten.txt","w")
def get10(num):
if 48 <= ord(num) <= 57:return ord(num) - 48
else: return ord(num) - 87
for buf in r:
num = get10(buf[0])*256+get10(buf[1])*16+get10(buf[2])
w.write(str(num)+"\n")
r.close()
w.close()


あとはsortとかでリストを並びかえればOK。
結局あまり10進数にする意味はなかった。
スポンサーサイト

トラックバックURL

http://ilovevim.blog42.fc2.com/tb.php/90-fd5d5bf1

この記事へのトラックバック

この記事へのコメント

コメント投稿フォーム

Paging Navigation

Navigations, etc.

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。