SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
Life is Tech!勉強会@20160915
Building your Own Debugger
with Python
@__ukun
Life is Tech!勉強会@20160915
これ使って勉強してます.
リバースエンジニアリング
Pythonによるバイナリ解析技法
2010年発刊。結構古め。
アセンブリやメモリ空間などの勉強を始めて,
低レイヤー強くなりたい,

理解を深めたいと思った。
ずいぶん前に購⼊していたものの,最初は全
く意味がわからなかったが,今なら少しは⽴
ち向えるんじゃないかと思った.
Life is Tech!勉強会@20160915
正直…
まだデバッガがどういう処理をしてプロセスや
メモリの情報を取得しているのか確実に理解で
きていない
とりあえず勉強したことをまとめて,⾃分の
理解を深めたい.
Life is Tech!勉強会@20160915
Debugger…..
Life is Tech!勉強会@20160915
デバッガのすること*(僕の)イメージ図
何かしらのプログラムを
実⾏する
プロセスが⽣成される
プロセス:
クラスがインスタンスを⽣成するみたいに
プログラムが実⾏する時に
メモリ上に実体化させるもの…??
プロセスが実⾏される
Stop!
僕はコードに
ブレークポイントを埋め込んで
処理をストップさせて,どんな
値がメモリ上(変数とか)に⼊っ
てるのか調べるよ!
debugger
Life is Tech!勉強会@20160915
今回取りあげた本では
Pythonを使って既存のPyDBGというデバッガを
実際に⾃分で1から作ってみようというテーマ
Life is Tech!勉強会@20160915
今はこんな感じで写経してる
Life is Tech!勉強会@20160915
今はこんな感じで写経してる
Life is Tech!勉強会@20160915
今はこんな感じで写経してる
Life is Tech!勉強会@20160915
しかし
Life is Tech!勉強会@20160915
my problem…
MSDN -Microsoft Developer Network-を参照する項⽬が多い.

-> ⼀つ⼀つ参照してるとひえー 😨ってなる
pythonのctypesっていうライブラリ使ってる.
windowsではctypes.windllがインポートされる.

その中にあるkernel32がwindowsのデバッグAPIなのか?
Windowsのwin32APIに相当するものはOSXでは提供されていないのか?
Life is Tech!勉強会@20160915
幾つかさっき調べてわかったこと
PyDBGのMac OSX版とか,pydbg64てのが探
せばあった.
この本読みながらソースコード少しずつ⾒てい
きたい.
Life is Tech!勉強会@20160915
幾つかさっき調べてわかったこと
Life is Tech!勉強会@20160915
⽬標
夏休み中にこの本制覇する
MacOSX⽤のPyDBGを作成する.
その過程で学んだことをはてぶに投稿
GDBとかも使いこなせるようになりたい.
Life is Tech!勉強会@20160915
最後に
まだまだ勉強してる途中なので,良さげな参考書,サイト,
課題などあれば教えて欲しいです.
質問,勉強会,誘って欲しいです.

Mais conteúdo relacionado

Mais procurados

インターネットを利用した日本語学習の方法
インターネットを利用した日本語学習の方法インターネットを利用した日本語学習の方法
インターネットを利用した日本語学習の方法Yoshifumi Murakami
 
RaspberryPiで日本の子供たちにプログラミングのパッションを伝えよう!
RaspberryPiで日本の子供たちにプログラミングのパッションを伝えよう!RaspberryPiで日本の子供たちにプログラミングのパッションを伝えよう!
RaspberryPiで日本の子供たちにプログラミングのパッションを伝えよう!Antoine Choppin
 
プログラミング学習とScratch raspi python
プログラミング学習とScratch raspi pythonプログラミング学習とScratch raspi python
プログラミング学習とScratch raspi pythonYoshitaka Shiono
 
PythonでPodcastを聴く
PythonでPodcastを聴くPythonでPodcastを聴く
PythonでPodcastを聴くMasato Fujitake
 
Pythonで自動化した話1
Pythonで自動化した話1Pythonで自動化した話1
Pythonで自動化した話1Masato Fujitake
 
[Phpカンファレンス関西2014 lt]動けばいいじゃない
[Phpカンファレンス関西2014 lt]動けばいいじゃない[Phpカンファレンス関西2014 lt]動けばいいじゃない
[Phpカンファレンス関西2014 lt]動けばいいじゃないKoichi Tanaka
 
S16 t1 python学習奮闘記#6
S16 t1 python学習奮闘記#6S16 t1 python学習奮闘記#6
S16 t1 python学習奮闘記#6Takeshi Akutsu
 
運用で爆発四散しないためのメタプログラミングとの付き合い方
運用で爆発四散しないためのメタプログラミングとの付き合い方運用で爆発四散しないためのメタプログラミングとの付き合い方
運用で爆発四散しないためのメタプログラミングとの付き合い方Yuki Ishikawa
 
最近思った機械学習(PyTorch)のベストプラクティス
最近思った機械学習(PyTorch)のベストプラクティス最近思った機械学習(PyTorch)のベストプラクティス
最近思った機械学習(PyTorch)のベストプラクティスMasato Fujitake
 
プッシュ通知の仕組みと利点
プッシュ通知の仕組みと利点プッシュ通知の仕組みと利点
プッシュ通知の仕組みと利点Tsubasa Yoshino
 
infomation geometry by R
infomation geometry by Rinfomation geometry by R
infomation geometry by RShotaro Akaho
 
僕と Python と 時々 NetBeans
僕と Python と 時々 NetBeans僕と Python と 時々 NetBeans
僕と Python と 時々 NetBeansYoshiori Shoji
 

Mais procurados (20)

15パソコンを使おう
15パソコンを使おう15パソコンを使おう
15パソコンを使おう
 
インターネットを利用した日本語学習の方法
インターネットを利用した日本語学習の方法インターネットを利用した日本語学習の方法
インターネットを利用した日本語学習の方法
 
RaspberryPiで日本の子供たちにプログラミングのパッションを伝えよう!
RaspberryPiで日本の子供たちにプログラミングのパッションを伝えよう!RaspberryPiで日本の子供たちにプログラミングのパッションを伝えよう!
RaspberryPiで日本の子供たちにプログラミングのパッションを伝えよう!
 
プログラミング学習とScratch raspi python
プログラミング学習とScratch raspi pythonプログラミング学習とScratch raspi python
プログラミング学習とScratch raspi python
 
S03 t0 get_started
S03 t0 get_startedS03 t0 get_started
S03 t0 get_started
 
PythonでPodcastを聴く
PythonでPodcastを聴くPythonでPodcastを聴く
PythonでPodcastを聴く
 
Pythonで自動化した話1
Pythonで自動化した話1Pythonで自動化した話1
Pythonで自動化した話1
 
[Phpカンファレンス関西2014 lt]動けばいいじゃない
[Phpカンファレンス関西2014 lt]動けばいいじゃない[Phpカンファレンス関西2014 lt]動けばいいじゃない
[Phpカンファレンス関西2014 lt]動けばいいじゃない
 
S16 t1 python学習奮闘記#6
S16 t1 python学習奮闘記#6S16 t1 python学習奮闘記#6
S16 t1 python学習奮闘記#6
 
運用で爆発四散しないためのメタプログラミングとの付き合い方
運用で爆発四散しないためのメタプログラミングとの付き合い方運用で爆発四散しないためのメタプログラミングとの付き合い方
運用で爆発四散しないためのメタプログラミングとの付き合い方
 
最近思った機械学習(PyTorch)のベストプラクティス
最近思った機械学習(PyTorch)のベストプラクティス最近思った機械学習(PyTorch)のベストプラクティス
最近思った機械学習(PyTorch)のベストプラクティス
 
Jawsug bgnr14
Jawsug bgnr14Jawsug bgnr14
Jawsug bgnr14
 
S15 t0 introduction
S15 t0 introductionS15 t0 introduction
S15 t0 introduction
 
プッシュ通知の仕組みと利点
プッシュ通知の仕組みと利点プッシュ通知の仕組みと利点
プッシュ通知の仕組みと利点
 
Manufacturing
ManufacturingManufacturing
Manufacturing
 
S13 t0 introduction
S13 t0 introductionS13 t0 introduction
S13 t0 introduction
 
infomation geometry by R
infomation geometry by Rinfomation geometry by R
infomation geometry by R
 
S05_T0_orientation
S05_T0_orientationS05_T0_orientation
S05_T0_orientation
 
僕と Python と 時々 NetBeans
僕と Python と 時々 NetBeans僕と Python と 時々 NetBeans
僕と Python と 時々 NetBeans
 
Pythonのすすめ
PythonのすすめPythonのすすめ
Pythonのすすめ
 

Semelhante a Pythonで作る自作デバッガLT資料

こわくないPython
こわくないPythonこわくないPython
こわくないPythonKatsuya Arai
 
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programingKei IWASAKI
 
こわくないPython 補足資料
こわくないPython 補足資料こわくないPython 補足資料
こわくないPython 補足資料Katsuya Arai
 
S03 t1 python_learningdiary#3
S03 t1 python_learningdiary#3S03 t1 python_learningdiary#3
S03 t1 python_learningdiary#3Takeshi Akutsu
 
20120915 Pythonは本当にBlenderの役に立っているか?
20120915 Pythonは本当にBlenderの役に立っているか?20120915 Pythonは本当にBlenderの役に立っているか?
20120915 Pythonは本当にBlenderの役に立っているか?Tetsuo Mitsuda
 
Python エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjpPython エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjpTakeshi Komiya
 
Bottle使ってPython学習一緒にはじめませんか?
Bottle使ってPython学習一緒にはじめませんか?Bottle使ってPython学習一緒にはじめませんか?
Bottle使ってPython学習一緒にはじめませんか?Tatsuya Shinozuka
 
第45回PHP勉強会(里洋平)
第45回PHP勉強会(里洋平)第45回PHP勉強会(里洋平)
第45回PHP勉強会(里洋平)Yohei Sato
 
Windowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようWindowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようKenji NAKAGAKI
 
Google Bert + Transfer Learning + In-context Learning + Chat GPT.pdf
Google Bert + Transfer Learning + In-context Learning + Chat GPT.pdfGoogle Bert + Transfer Learning + In-context Learning + Chat GPT.pdf
Google Bert + Transfer Learning + In-context Learning + Chat GPT.pdfMoriyuki Arakawa
 
PredictionIOのPython対応計画
PredictionIOのPython対応計画PredictionIOのPython対応計画
PredictionIOのPython対応計画Shinsuke Sugaya
 
蛇を埋葬する(PythonをEmbedする)
蛇を埋葬する(PythonをEmbedする)蛇を埋葬する(PythonをEmbedする)
蛇を埋葬する(PythonをEmbedする)Shintarou Okada
 
第0回プログラミング講座
第0回プログラミング講座第0回プログラミング講座
第0回プログラミング講座happo31
 
LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45civic Sasaki
 
ChatGPTで面白い物語は作れるのか?
ChatGPTで面白い物語は作れるのか?ChatGPTで面白い物語は作れるのか?
ChatGPTで面白い物語は作れるのか?Takanari Tokuwa
 
ぼくとしりとりの約3.0*10^3日間戦争
ぼくとしりとりの約3.0*10^3日間戦争ぼくとしりとりの約3.0*10^3日間戦争
ぼくとしりとりの約3.0*10^3日間戦争Eric Sartre
 
211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解するTakuya Nishimoto
 
「Python 機械学習プログラミング」 の挫折しない読み方
「Python 機械学習プログラミング」の挫折しない読み方「Python 機械学習プログラミング」の挫折しない読み方
「Python 機械学習プログラミング」 の挫折しない読み方Hiroki Yamamoto
 

Semelhante a Pythonで作る自作デバッガLT資料 (20)

こわくないPython
こわくないPythonこわくないPython
こわくないPython
 
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
 
こわくないPython 補足資料
こわくないPython 補足資料こわくないPython 補足資料
こわくないPython 補足資料
 
stapy#23 LT
stapy#23 LTstapy#23 LT
stapy#23 LT
 
S03 t1 python_learningdiary#3
S03 t1 python_learningdiary#3S03 t1 python_learningdiary#3
S03 t1 python_learningdiary#3
 
20120915 Pythonは本当にBlenderの役に立っているか?
20120915 Pythonは本当にBlenderの役に立っているか?20120915 Pythonは本当にBlenderの役に立っているか?
20120915 Pythonは本当にBlenderの役に立っているか?
 
Python エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjpPython エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjp
 
Bottle使ってPython学習一緒にはじめませんか?
Bottle使ってPython学習一緒にはじめませんか?Bottle使ってPython学習一緒にはじめませんか?
Bottle使ってPython学習一緒にはじめませんか?
 
第45回PHP勉強会(里洋平)
第45回PHP勉強会(里洋平)第45回PHP勉強会(里洋平)
第45回PHP勉強会(里洋平)
 
Windowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようWindowsにpythonをインストールしてみよう
Windowsにpythonをインストールしてみよう
 
Google Bert + Transfer Learning + In-context Learning + Chat GPT.pdf
Google Bert + Transfer Learning + In-context Learning + Chat GPT.pdfGoogle Bert + Transfer Learning + In-context Learning + Chat GPT.pdf
Google Bert + Transfer Learning + In-context Learning + Chat GPT.pdf
 
PredictionIOのPython対応計画
PredictionIOのPython対応計画PredictionIOのPython対応計画
PredictionIOのPython対応計画
 
蛇を埋葬する(PythonをEmbedする)
蛇を埋葬する(PythonをEmbedする)蛇を埋葬する(PythonをEmbedする)
蛇を埋葬する(PythonをEmbedする)
 
第0回プログラミング講座
第0回プログラミング講座第0回プログラミング講座
第0回プログラミング講座
 
LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45
 
ChatGPTで面白い物語は作れるのか?
ChatGPTで面白い物語は作れるのか?ChatGPTで面白い物語は作れるのか?
ChatGPTで面白い物語は作れるのか?
 
ぼくとしりとりの約3.0*10^3日間戦争
ぼくとしりとりの約3.0*10^3日間戦争ぼくとしりとりの約3.0*10^3日間戦争
ぼくとしりとりの約3.0*10^3日間戦争
 
211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する
 
Pythonでpdfをいじってみる
PythonでpdfをいじってみるPythonでpdfをいじってみる
Pythonでpdfをいじってみる
 
「Python 機械学習プログラミング」 の挫折しない読み方
「Python 機械学習プログラミング」の挫折しない読み方「Python 機械学習プログラミング」の挫折しない読み方
「Python 機械学習プログラミング」 の挫折しない読み方
 

Pythonで作る自作デバッガLT資料