2017-08-17 9 views
5

セキュリティ上の課題を学習しています。この課題の1つは、ガベージコレクタが起動するまで、破壊されてメモリに保持されているデータを取得するように要求します。ガベージコレクタの内容を確認するには

私は多くのことを試しました。私はそれがプロセスメモリをPythonコンソールからダンプすることが可能かどうかを知りたい。

また、チャレンジは私たちにPythonコンソールを提供しますが、 ">>>"の代わりにストップウォッチがあります。どのように彼らはそれのようなことをすることができますか? 私はちょうどPythonコンソールを起動するsshアクセス権を持っています。

ありがとうございました

+1

'import gc; gc.get_objects() ' –

+0

sys.ps1/sys.ps2は標準Python REPLのプロンプトを制御します:https://docs.python.org/3/library/sys.html?highlight=sys#sys.ps1 – MatsLindh

+0

ありがとう。私はこれまでに試みたが、インポートは禁止されている。 – Bob5421

答えて

0

ごみの中のwhatsを見るには、次のコードを使用できます。

import gc 

def dump_garbage(): 
    """ 
    show us what's the garbage about 
    """ 
    # force collection 
    print("\nGARBAGE:") 
    gc.collect() 

    print("\nGARBAGE OBJECTS:") 
    for x in gc.garbage: 
     s = str(x) 
     if len(s) > 80: s = s[:80] 
     print(type(x),"\n ", s) 

if __name__=="__main__": 
    import gc 
    gc.enable() 
    gc.set_debug(gc.DEBUG_LEAK) 

    # make a leak 
    l = [] 
    l.append(l) 
    del l 

    # show the dirt ;-) 
    dump_garbage() 
+0

を使用してインポートの禁止を迂回することができます。コンテンツには、gcには何もないでしょうか? – Bob5421

関連する問題