CodeReverseは、片山博文MZが開発している、Windows用の逆アセンブラ兼ダンプツールです。
最終的には「リバーシブルな」逆コンパイラを目指しています。
CodeReverse公式サイト
http://katahiromz.web.fc2.com/codereverse/
GitHubレポジトリはこちら
https://github.com/katahiromz/CodeReverse
逆コンパイラCodeReverseを作る
■ このスレッドは過去ログ倉庫に格納されています
1片山博文MZコスモ ◆T6xkBnTXz7B0
2013/09/24(火) 14:58:48.342片山博文MZコスモ ◆T6xkBnTXz7B0
2013/09/24(火) 14:59:38.45 【実行可能ファイル(PE形式)関連】
The Portable Executable File Format
http://www.csn.ul.ie/~caolan/publink/winresdump/winresdump/doc/pefile2.html
Windows EXEファイル形式
http://home.a00.itscom.net/hatada/mcc/doc/win32exe.html
インポート情報
http://hp.vector.co.jp/authors/VA050396/tech_07.html
A Tour of the Win32 Portable Executable File Format
http://msdn.microsoft.com/en-us/library/ms809762.aspx
【アセンブラ関連】
X86アセンブラ (WikiBooks)
http://ja.wikibooks.org/wiki/X86%E3%82%A2%E3%82%BB%E3%83%B3%E3%83%96%E3%83%A9/16%E3%80%8132%E3%80%8164%E3%83%93%E3%83%83%E3%83%88
x64 アセンブリ言語プログラミング
http://homepage1.nifty.com/herumi/prog/x64.html
x64 アセンブリーの概要
http://www.isus.jp/article/introduction-to-x64-assembly/
x64 の入門書
http://msdn.microsoft.com/ja-jp/magazine/ee230241.aspx
インテル日本語技術資料のダウンロード
http://www.intel.co.jp/content/www/jp/ja/developer/download.html
The Portable Executable File Format
http://www.csn.ul.ie/~caolan/publink/winresdump/winresdump/doc/pefile2.html
Windows EXEファイル形式
http://home.a00.itscom.net/hatada/mcc/doc/win32exe.html
インポート情報
http://hp.vector.co.jp/authors/VA050396/tech_07.html
A Tour of the Win32 Portable Executable File Format
http://msdn.microsoft.com/en-us/library/ms809762.aspx
【アセンブラ関連】
X86アセンブラ (WikiBooks)
http://ja.wikibooks.org/wiki/X86%E3%82%A2%E3%82%BB%E3%83%B3%E3%83%96%E3%83%A9/16%E3%80%8132%E3%80%8164%E3%83%93%E3%83%83%E3%83%88
x64 アセンブリ言語プログラミング
http://homepage1.nifty.com/herumi/prog/x64.html
x64 アセンブリーの概要
http://www.isus.jp/article/introduction-to-x64-assembly/
x64 の入門書
http://msdn.microsoft.com/ja-jp/magazine/ee230241.aspx
インテル日本語技術資料のダウンロード
http://www.intel.co.jp/content/www/jp/ja/developer/download.html
3片山博文MZコスモ ◆T6xkBnTXz7B0
2013/09/24(火) 15:00:12.24 【遅延読み込み関連】
DLLの遅延読み込み(delay loading)
http://www.glamenv-septzen.net/view/671
UNDER THE HOOD (delayload)
http://www.microsoft.com/msj/1298/hood/hood1298.aspx
DLL遅延ロード情報をPythonで
http://www.glamenv-septzen.net/view/677
【スタックフレームなど】
スタックフレーム
http://www.c-tipsref.com/words/stackframe.html
Unprototyped Functions
http://msdn.microsoft.com/en-us/library/6yy8aw4d.aspx
Varargs
http://msdn.microsoft.com/en-us/library/dd2wa36c.aspx
呼出規約
http://ja.wikipedia.org/wiki/%E5%91%BC%E5%87%BA%E8%A6%8F%E7%B4%84
Caller/Callee Saved Registers
http://msdn.microsoft.com/en-us/library/6t169e9c.aspx
Return Values (C++)
http://msdn.microsoft.com/en-us/library/7572ztz4.aspx
Prolog and Epilog
http://msdn.microsoft.com/en-us/library/tawsa7cb.aspx
Parameter Passing
http://msdn.microsoft.com/en-us/library/zthk2dkh.aspx
Overview of x64 Calling Conventions
http://msdn.microsoft.com/en-us/library/ms235286.aspx
DLLの遅延読み込み(delay loading)
http://www.glamenv-septzen.net/view/671
UNDER THE HOOD (delayload)
http://www.microsoft.com/msj/1298/hood/hood1298.aspx
DLL遅延ロード情報をPythonで
http://www.glamenv-septzen.net/view/677
【スタックフレームなど】
スタックフレーム
http://www.c-tipsref.com/words/stackframe.html
Unprototyped Functions
http://msdn.microsoft.com/en-us/library/6yy8aw4d.aspx
Varargs
http://msdn.microsoft.com/en-us/library/dd2wa36c.aspx
呼出規約
http://ja.wikipedia.org/wiki/%E5%91%BC%E5%87%BA%E8%A6%8F%E7%B4%84
Caller/Callee Saved Registers
http://msdn.microsoft.com/en-us/library/6t169e9c.aspx
Return Values (C++)
http://msdn.microsoft.com/en-us/library/7572ztz4.aspx
Prolog and Epilog
http://msdn.microsoft.com/en-us/library/tawsa7cb.aspx
Parameter Passing
http://msdn.microsoft.com/en-us/library/zthk2dkh.aspx
Overview of x64 Calling Conventions
http://msdn.microsoft.com/en-us/library/ms235286.aspx
4片山博文MZコスモ ◆T6xkBnTXz7B0
2013/09/24(火) 15:01:34.04 【逆アセンブル・逆コンパイル技術に関して】
Cの逆コンパイラはどこまで実現可能か
http://www5d.biglobe.ne.jp/~noocyte/Programming/Decompile.html
逆コンパイラ - Wikipedia
http://ja.wikipedia.org/wiki/%E9%80%86%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%A9
逆アセンブラ - Wikipedia
http://ja.wikipedia.org/wiki/%E9%80%86%E3%82%A2%E3%82%BB%E3%83%B3%E3%83%96%E3%83%A9
エイリアス解析 - Wikipedia
http://ja.wikipedia.org/wiki/%E3%82%A8%E3%82%A4%E3%83%AA%E3%82%A2%E3%82%B9%E8%A7%A3%E6%9E%90
エスケープ解析 - Wikipedia
http://ja.wikipedia.org/wiki/%E3%82%A8%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%97%E8%A7%A3%E6%9E%90
コールグラフ - Wikipedia
http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%BC%E3%83%AB%E3%82%B0%E3%83%A9%E3%83%95
シェープ解析 - Wikipedia
http://ja.wikipedia.org/wiki/%E3%82%B7%E3%82%A7%E3%83%BC%E3%83%97%E8%A7%A3%E6%9E%90
データフロー解析 - Wikipedia
http://ja.wikipedia.org/wiki/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%95%E3%83%AD%E3%83%BC%E8%A7%A3%E6%9E%90
ポインタ解析 - Wikipedia
http://ja.wikipedia.org/wiki/%E3%83%9D%E3%82%A4%E3%83%B3%E3%82%BF%E8%A7%A3%E6%9E%90
制御フローグラフ - Wikipedia
http://ja.wikipedia.org/wiki/%E5%88%B6%E5%BE%A1%E3%83%95%E3%83%AD%E3%83%BC%E3%82%B0%E3%83%A9%E3%83%95
制御構造 - Wikipedia
http://ja.wikipedia.org/wiki/%E5%88%B6%E5%BE%A1%E6%A7%8B%E9%80%A0
静的単一代入 - Wikipedia
http://ja.wikipedia.org/wiki/%E9%9D%99%E7%9A%84%E5%8D%98%E4%B8%80%E4%BB%A3%E5%85%A5
Cの逆コンパイラはどこまで実現可能か
http://www5d.biglobe.ne.jp/~noocyte/Programming/Decompile.html
逆コンパイラ - Wikipedia
http://ja.wikipedia.org/wiki/%E9%80%86%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%A9
逆アセンブラ - Wikipedia
http://ja.wikipedia.org/wiki/%E9%80%86%E3%82%A2%E3%82%BB%E3%83%B3%E3%83%96%E3%83%A9
エイリアス解析 - Wikipedia
http://ja.wikipedia.org/wiki/%E3%82%A8%E3%82%A4%E3%83%AA%E3%82%A2%E3%82%B9%E8%A7%A3%E6%9E%90
エスケープ解析 - Wikipedia
http://ja.wikipedia.org/wiki/%E3%82%A8%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%97%E8%A7%A3%E6%9E%90
コールグラフ - Wikipedia
http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%BC%E3%83%AB%E3%82%B0%E3%83%A9%E3%83%95
シェープ解析 - Wikipedia
http://ja.wikipedia.org/wiki/%E3%82%B7%E3%82%A7%E3%83%BC%E3%83%97%E8%A7%A3%E6%9E%90
データフロー解析 - Wikipedia
http://ja.wikipedia.org/wiki/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%95%E3%83%AD%E3%83%BC%E8%A7%A3%E6%9E%90
ポインタ解析 - Wikipedia
http://ja.wikipedia.org/wiki/%E3%83%9D%E3%82%A4%E3%83%B3%E3%82%BF%E8%A7%A3%E6%9E%90
制御フローグラフ - Wikipedia
http://ja.wikipedia.org/wiki/%E5%88%B6%E5%BE%A1%E3%83%95%E3%83%AD%E3%83%BC%E3%82%B0%E3%83%A9%E3%83%95
制御構造 - Wikipedia
http://ja.wikipedia.org/wiki/%E5%88%B6%E5%BE%A1%E6%A7%8B%E9%80%A0
静的単一代入 - Wikipedia
http://ja.wikipedia.org/wiki/%E9%9D%99%E7%9A%84%E5%8D%98%E4%B8%80%E4%BB%A3%E5%85%A5
5デフォルトの名無しさん
2013/09/24(火) 15:02:38.62 パッと思いつくのは
・アドレスにラベルを割り付ける
・関数を切り分ける
・スタックフレームから関数引数・ローカル変数・戻り値を切り出す
・if/for/switchを抽出して構文化する
・DLLからロードされるシンボルを置き換える
解説しているサイトとかあるかは調べてないので知らん
どうせ defineされた定数をマクロ名に戻せないとか
構造体復元が難しいとかあるから大したことはできん
・アドレスにラベルを割り付ける
・関数を切り分ける
・スタックフレームから関数引数・ローカル変数・戻り値を切り出す
・if/for/switchを抽出して構文化する
・DLLからロードされるシンボルを置き換える
解説しているサイトとかあるかは調べてないので知らん
どうせ defineされた定数をマクロ名に戻せないとか
構造体復元が難しいとかあるから大したことはできん
2013/09/24(火) 20:57:40.99
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
2013/09/24(火) 21:39:53.66
ネタスレはマ板でやれよ。
> Cの逆コンパイラはどこまで実現可能か
アフィサイト晒してんじゃねーよ。 内容もちょい微妙だし。
まず、アセンブリから C/C++ へのトランスレータは簡単だろ?
そっからどの程度 C/C++ らしい表現にするかが問題なんだろ?
何から手を付けてどういう順番でやるつもりなの。
> Cの逆コンパイラはどこまで実現可能か
アフィサイト晒してんじゃねーよ。 内容もちょい微妙だし。
まず、アセンブリから C/C++ へのトランスレータは簡単だろ?
そっからどの程度 C/C++ らしい表現にするかが問題なんだろ?
何から手を付けてどういう順番でやるつもりなの。
8片山博文MZコスモ ◆T6xkBnTXz7B0
2013/09/24(火) 22:00:04.49 まずは関数の切り分け(手元では入り口を解析する形でほぼ完了)。次は関数情報とスタックフレームの解析。
そして中間表現の定義と中間表現への変換。さらに構文解析と型情報の処理。
トランスレータって言ってもそんなに簡単じゃない。
リソースのダンプでいいのないか(オープンなの)?
そして中間表現の定義と中間表現への変換。さらに構文解析と型情報の処理。
トランスレータって言ってもそんなに簡単じゃない。
リソースのダンプでいいのないか(オープンなの)?
9片山博文MZコスモ ◆T6xkBnTXz7B0
2013/09/24(火) 22:13:52.02 関数には__cdecl、__stdcall、__pascal、__fastcall、単純ジャンプ関数の五種類あるんだけど、これをどうやって判別するかという問題がある。
遅延ロード情報の取り込みもしたい。ソース希望。
遅延ロード情報の取り込みもしたい。ソース希望。
2013/09/24(火) 22:17:55.08
OllyDbgじゃダメなんか
分かってる人には充分だろ
分かってる人には充分だろ
11片山博文MZコスモ ◆T6xkBnTXz7B0
2013/09/24(火) 23:05:03.62 ネタスレではありません。私は本気です。明日、OllyDbgのソースをDLしてみます。
CodeReverseは、NASMのコードを一部拝借しています。
多分、構文解析用のインクルードファイルが必要になると思います。
MinGWから頂くかも知れません。ライセンスはどうするか? アイコンのデザイン、洒落てるでしょ?
CodeReverseは、NASMのコードを一部拝借しています。
多分、構文解析用のインクルードファイルが必要になると思います。
MinGWから頂くかも知れません。ライセンスはどうするか? アイコンのデザイン、洒落てるでしょ?
2013/09/24(火) 23:06:25.98
できたらよんで。
2013/09/24(火) 23:17:17.38
>>11
> MinGWから頂くかも知れません。ライセンスはどうするか? アイコンのデザイン、洒落てるでしょ?
MinGWのソース使ったら、配布するときのライセンスはGPLになると思う。
一部パブリックドメインらしいけれど。
> MinGWから頂くかも知れません。ライセンスはどうするか? アイコンのデザイン、洒落てるでしょ?
MinGWのソース使ったら、配布するときのライセンスはGPLになると思う。
一部パブリックドメインらしいけれど。
2013/09/25(水) 00:34:40.81
アムロの親父みたいに俺の親父もボケてしまった。
たしかに昔はある分野で日本一の技能をもってた。俺の目標は親父だった。
今は硬い世界の殻に閉じこもってしまって、もはや日常会話しか通じない。
たしかに昔はある分野で日本一の技能をもってた。俺の目標は親父だった。
今は硬い世界の殻に閉じこもってしまって、もはや日常会話しか通じない。
2013/09/25(水) 02:11:22.19
うーむ、今のところこの世にまともなC/C++の逆コンパイラが
存在しない事を考えても片山程度の技術力で作れるとは思えんが・・・
存在しない事を考えても片山程度の技術力で作れるとは思えんが・・・
2013/09/25(水) 05:45:24.18
ま、なんかできたらまた呼んでくれ
17片山博文MZコスモ ◆T6xkBnTXz7B0
2013/09/25(水) 21:15:11.17 ヘッダファイルもプリプロセッサも要るから、単純にMinGWに寄生する形にします。
バージョンアップの度にいちいちでっかいファイルをダウンロードさせるのも不憫だから。
ライセンスはGPLになる予定です。
バージョンアップの度にいちいちでっかいファイルをダウンロードさせるのも不憫だから。
ライセンスはGPLになる予定です。
2013/09/25(水) 21:50:21.91
つーか、片山GUIはどうした?予想通り挫折したのか?
そんなんじゃ逆コンパイラなんてもっと無理だろ
そんなんじゃ逆コンパイラなんてもっと無理だろ
19片山博文MZコスモ ◆T6xkBnTXz7B0
2013/09/25(水) 22:56:47.40 自動車の命はエンジンでしょ。GUIは後で自由に作れるから。
2013/09/26(木) 00:17:10.71
自動車の命は乗り心地だと思う
2013/09/26(木) 01:24:31.25
>>19
そういう問題じゃねーだろw
お前にはモノを最後まで作り上げる能力が無いって事だ
あれだけWin32APIやMFCに代わるGUIを作るって豪語してたろ
多分お前はこの逆コンパイラも作れないし、後になってもGUIも作れんよ
そういう問題じゃねーだろw
お前にはモノを最後まで作り上げる能力が無いって事だ
あれだけWin32APIやMFCに代わるGUIを作るって豪語してたろ
多分お前はこの逆コンパイラも作れないし、後になってもGUIも作れんよ
2013/09/26(木) 01:48:56.57
まあ一人で色々作ってたら未完成になることは多い。
そういう未完星人の同類なら、GUI作りくらい協力してやってもいい。
だが残念だがそれは無理だ。なぜなら彼が作っている物は俺よりしょぼい。
もはや彼が俺に「あなたのプロジェクトに協力させて下さい」と頼まなければいけないレベルなのだ。
残念である。世の中は不条理に満ちている。
そういう未完星人の同類なら、GUI作りくらい協力してやってもいい。
だが残念だがそれは無理だ。なぜなら彼が作っている物は俺よりしょぼい。
もはや彼が俺に「あなたのプロジェクトに協力させて下さい」と頼まなければいけないレベルなのだ。
残念である。世の中は不条理に満ちている。
2013/09/26(木) 01:53:10.86
まあ誰もが出来ないと思ってるよ
グラフィックライブラリもこれを最後に音沙汰なしだしな
975 名前:片山博文MZパンク ◆0lBZNi.Q7evd [sage] 投稿日:2013/03/21(木) 03:21:59.90
MZC2順調に開発中。。。
グラフィックライブラリもこれを最後に音沙汰なしだしな
975 名前:片山博文MZパンク ◆0lBZNi.Q7evd [sage] 投稿日:2013/03/21(木) 03:21:59.90
MZC2順調に開発中。。。
2013/09/26(木) 01:55:38.06
順調に開発中クソワロタwww
どこが順調なんだよwww
どこが順調なんだよwww
25片山博文MZコスモ ◆T6xkBnTXz7B0
2013/09/26(木) 02:03:09.27 CUIの有り難みがわからない人とは話しが合わないっす。
CUIにパイプラインをつなげてGUIを作るなんてお茶の子さいさいっす。
俺はサイドビジネスで忙しいから、空いた時間で作ってるっす。
CUIの使い方も知らない人はうざいから消えてね。
CUIにパイプラインをつなげてGUIを作るなんてお茶の子さいさいっす。
俺はサイドビジネスで忙しいから、空いた時間で作ってるっす。
CUIの使い方も知らない人はうざいから消えてね。
2013/09/26(木) 02:09:39.70
出来ない人間の言い訳きたwww
2013/09/26(木) 02:13:56.61
ふーむ、CUIのありがたみがわかってる人間がなんでわざわざ
二番煎じのGUIを作ろうと思ったのか。しかもオリジナルより劣化してる。
更には、お茶の子さいさいと言いながら、いまだに何の成果物も出せないのはこれいかに。
>>23のレスからもう半年も経過しているが。
二番煎じのGUIを作ろうと思ったのか。しかもオリジナルより劣化してる。
更には、お茶の子さいさいと言いながら、いまだに何の成果物も出せないのはこれいかに。
>>23のレスからもう半年も経過しているが。
28片山博文MZコスモ ◆T6xkBnTXz7B0
2013/09/26(木) 02:17:11.27 俺は貴様らよりも自由じゃないから。夜遊びはできないし、インターネットに
つなげてもらえないし。パソコンの使用時間は制限されてるし。
この書き込みも見張りに見つからないように携帯から書き込んでいるところ。
つなげてもらえないし。パソコンの使用時間は制限されてるし。
この書き込みも見張りに見つからないように携帯から書き込んでいるところ。
2013/09/26(木) 02:17:33.78
典型的な口だけダメ人間の末路だなw
2013/09/26(木) 02:19:58.65
こりゃアカンで。ちょっと期待してたらどうやら>>1の人格・人間性に
相当の問題アリやな。
相当の問題アリやな。
31片山博文MZコスモ ◆T6xkBnTXz7B0
2013/09/26(木) 02:24:00.61 クロスワードギバーというパズル作成ソフトで結構反響あった。MZ KeyLoggerもわりと人気あるし。
2013/09/26(木) 02:31:14.21
そうそう幅広くニッチなところ狙ってけ。おまえはわけのわからんものを大量に発明して東京都知事選に変態枠で出馬するようなタイプなんだ。
2013/09/26(木) 03:00:48.33
× 大量に発明して
○ 大量に「発明するぞ」というだけ言って
○ 大量に「発明するぞ」というだけ言って
2013/09/26(木) 03:13:24.63
>>32
当選は枠があるけど出馬は出たきゃ出れるんじゃなかったっけ?
当選は枠があるけど出馬は出たきゃ出れるんじゃなかったっけ?
35片山博文MZコスモ ◆T6xkBnTXz7B0
2013/09/26(木) 03:21:52.79 エクスポート名の@の右の数字は引数全体のサイズだよね?
36片山博文MZコスモ ◆T6xkBnTXz7B0
2013/09/26(木) 03:33:33.17 で、__stdcallの引数全部のサイズが命令retの第一オペランドの値だよね?
そして、スタックフレームはebpとespの値の増減を調べないとわからないんだよね?
そして、スタックフレームはebpとespの値の増減を調べないとわからないんだよね?
2013/09/26(木) 04:25:32.36
キャバクラでかわいいホステスと夜遊びしたいな
2013/09/26(木) 04:40:58.94
>>9は間違いね。__pascalなんてないし、64ビットに言及がないし、単純ジャンプ関数って何じゃそれ
2013/09/26(木) 04:42:37.87
以下、sage進行でよろしくお願いします。
2013/09/26(木) 04:43:48.36
片山死ねよ
2013/09/26(木) 04:50:14.13
>>35-36
Win32 べったりの話? 何にも知らないんだね。
DEF ファイルを使った DLL からのエクスポート
で検索してご覧、MSDN 内のページが引っかかるから。
悪いけど、主要な(少なくともターゲットとする)コンパイラやアセンブラやリンカのマニュアルを読んでから質問してくれる?
ていうかブログでやってくんない?
Win32 べったりの話? 何にも知らないんだね。
DEF ファイルを使った DLL からのエクスポート
で検索してご覧、MSDN 内のページが引っかかるから。
悪いけど、主要な(少なくともターゲットとする)コンパイラやアセンブラやリンカのマニュアルを読んでから質問してくれる?
ていうかブログでやってくんない?
42片山博文MZコスモ ◆T6xkBnTXz7B0
2013/09/26(木) 05:19:27.11 ブッブー、defファイルではなく__stdcall,__fastcall関数のmanglingの話でした。
manglingされたシンボル名から元の名前を求めるのは大変みたいですね。
manglingされたシンボル名から元の名前を求めるのは大変みたいですね。
2013/09/26(木) 12:44:34.10
片山にすら馬鹿にされる>>41w
2013/09/26(木) 15:58:38.68
>>43
まぁだがコンパイラ毎ではあるもののマングリングは明確な規則で行われてるわけで…
それを難しいとか言ってるようではC/C++コードへの復元とか夢のまた夢だわな。
呼び出し規約と関数内のレジスタ利用方法の規約ゴッチャにしてる辺りも残念すぎる。
まぁだがコンパイラ毎ではあるもののマングリングは明確な規則で行われてるわけで…
それを難しいとか言ってるようではC/C++コードへの復元とか夢のまた夢だわな。
呼び出し規約と関数内のレジスタ利用方法の規約ゴッチャにしてる辺りも残念すぎる。
45片山博文MZコスモ ◆T6xkBnTXz7B0
2013/09/26(木) 16:36:10.77 v0.0.1にバージョンアップしました。
関数の切り分けができるようになりました。
課題1:DisAsmメソッドの中で各関数の種類(FUNCTIONTYPE)を確定させる。
また、各関数の引数全部のサイズを求める。関数内関数の対処。
関数の切り分けができるようになりました。
課題1:DisAsmメソッドの中で各関数の種類(FUNCTIONTYPE)を確定させる。
また、各関数の引数全部のサイズを求める。関数内関数の対処。
46片山博文MZコスモ ◆T6xkBnTXz7B0
2013/09/26(木) 16:47:55.24 名前修飾(Name mangling) - Wikipedia
http://ja.wikipedia.org/wiki/%E5%90%8D%E5%89%8D%E4%BF%AE%E9%A3%BE
EXEからコンパイラの種類を判定する方法ってありますか?
http://ja.wikipedia.org/wiki/%E5%90%8D%E5%89%8D%E4%BF%AE%E9%A3%BE
EXEからコンパイラの種類を判定する方法ってありますか?
2013/09/26(木) 17:01:43.67
全パターンぶんデマングルしてみてうまくデマングルできたやつを採用すればいいんじゃない
2013/09/26(木) 17:13:14.26
PEiDでも調べれば?
49片山博文MZコスモ ◆T6xkBnTXz7B0
2013/09/26(木) 17:14:44.75 g++の場合は、プログラムc++filtで解読できるようです。
gccの場合はわからない。
VCの場合はdbghelp.dllのUnDecorateSymbolName関数で。
UnDecorateSymbolName function
http://msdn.microsoft.com/en-us/library/ms681400(v=VS.85).aspx
gccの場合はわからない。
VCの場合はdbghelp.dllのUnDecorateSymbolName関数で。
UnDecorateSymbolName function
http://msdn.microsoft.com/en-us/library/ms681400(v=VS.85).aspx
2013/09/26(木) 17:44:57.55
正直ね、片山さんのその技術力で
逆コンパイラじゃなくて
C#とD言語を上手く改良したような実用できる言語作ってほしい
逆コンパイラの都合のいい言語みたいな感じでもいいから。
そしたら実装も楽になるかもよ。
これ作るついでにやってみてくれないかな?
逆コンパイラじゃなくて
C#とD言語を上手く改良したような実用できる言語作ってほしい
逆コンパイラの都合のいい言語みたいな感じでもいいから。
そしたら実装も楽になるかもよ。
これ作るついでにやってみてくれないかな?
2013/09/26(木) 17:46:26.52
ネイティブC#みたいな位置づけのさ。
D言語だと正直不安定すぎて使えなさすぎなのよ
D言語だと正直不安定すぎて使えなさすぎなのよ
2013/09/26(木) 18:02:30.28
マングル返し
2013/09/26(木) 21:07:00.30
Microsoft C は、シリアル番号をオブジェクトファイルに
埋め込んでるってうわさ話があったな...
埋め込んでるってうわさ話があったな...
2013/09/26(木) 21:51:10.45
>>53
そんな速攻で検証できそうなことをわざわざするかなぁ……?
そんな速攻で検証できそうなことをわざわざするかなぁ……?
55片山博文MZコスモ ◆T6xkBnTXz7B0
2013/09/27(金) 23:46:08.32 課題2:アドレスからスタック状態集合への写像
課題3:コンパイラの種類を判定するコード
課題4:アセンブリ命令が何を参照し、何を変更するかの情報
課題5:データ型の管理方法
これらに関して知ってることがあれば俺に教えて下さい。
課題3:コンパイラの種類を判定するコード
課題4:アセンブリ命令が何を参照し、何を変更するかの情報
課題5:データ型の管理方法
これらに関して知ってることがあれば俺に教えて下さい。
56片山博文MZコスモ ◆T6xkBnTXz7B0
2013/09/27(金) 23:57:00.28 次のリリースは、pimplで読みやすいコードになる予定。
今までの人工知能研究の全てを注ぎ込んで、頑張りますのでご声援を。
今までの人工知能研究の全てを注ぎ込んで、頑張りますのでご声援を。
2013/10/01(火) 01:51:25.40
いや、そのレベルでいったいなにをつくるきなんだ…
58片山博文MZコスモ ◆T6xkBnTXz7B0
2013/10/01(火) 03:17:28.27 コントロールパスというのがよくわからん。単純にプロファイルするとループで無限長になってしまうよな。
掛け算と割り算のキャリーとオーバーフロー条件の違いもよくわからん。
掛け算と割り算のキャリーとオーバーフロー条件の違いもよくわからん。
2013/10/01(火) 11:32:44.36
前途は多難ですね
2013/10/01(火) 20:18:53.42
思った以上にレベル低過ぎてワロタw
61片山博文MZコスモ ◆T6xkBnTXz7B0
2013/10/03(木) 03:08:46.39 ファンクタって関数ポインタより使いやすいな
62片山博文MZコスモ ◆T6xkBnTXz7B0
2013/10/07(月) 13:30:07.20 v0.0.2にバージョンアップ。
コードの整理。insn*.datファイル、mzc2mini.{h,cpp}ファイルの追加。
関数内関数の対処。
コードの整理。insn*.datファイル、mzc2mini.{h,cpp}ファイルの追加。
関数内関数の対処。
63片山博文MZコスモ ◆T6xkBnTXz7B0
2013/10/07(月) 14:16:22.09 insnはinstructionの略でアセンブリの命令のこと。
次は、コントロールパスとスタック状態の取得に挑戦します。
次は、コントロールパスとスタック状態の取得に挑戦します。
2013/10/11(金) 19:27:45.10
サイドビジネスで疲れてMPがない
妙なバグがまだ取れてない
頑張るしかないか
妙なバグがまだ取れてない
頑張るしかないか
65片山博文MZコスモ ◆T6xkBnTXz7B0
2013/10/13(日) 13:52:28.76 コントロールパスの組み合わせが無限になるバグが修正できない。
ループは排除したのに。
ループは排除したのに。
66片山博文MZコスモ ◆T6xkBnTXz7B0
2013/10/13(日) 14:05:29.47 無限大じゃなかったけど、コントロールパスが768通りって多すぎないか?
67片山博文MZコスモ ◆T6xkBnTXz7B0
2013/10/22(火) 12:20:36.64 スタックについて必死に勉強中です。
2013/10/22(火) 14:04:27.97
一進一退というか一進二退くらいになってるような
69片山博文MZコスモ ◆T6xkBnTXz7B0
2013/10/23(水) 19:37:09.10 三値論理サイコー!!!
70片山博文MZコスモ ◆T6xkBnTXz7B0
2013/10/24(木) 18:56:52.09 コントロールパスよりもCFGの方が重要だとわかった。目標が間違ってた。
71片山博文MZコスモ ◆T6xkBnTXz7B0
2013/10/26(土) 14:30:59.02 v0.0.4 CFGの取得が可能になりました。
72片山博文MZコスモ ◆T6xkBnTXz7B0
2013/10/26(土) 14:58:46.20 型情報がない状態で、レジスタとスタックの使用状況がわからないと、
関数の呼び出し規約や引数は分析できませんね。
insn16.dat/insn32.dat/insn64.datファイルに書かれているような
中間表現によって、アセンブリとC言語ソースをつなげようと
考えています。
関数の呼び出し規約や引数は分析できませんね。
insn16.dat/insn32.dat/insn64.datファイルに書かれているような
中間表現によって、アセンブリとC言語ソースをつなげようと
考えています。
73片山博文MZコスモ ◆T6xkBnTXz7B0
2013/10/26(土) 15:41:05.76 定数畳み込み
http://ja.wikipedia.org/wiki/%E5%AE%9A%E6%95%B0%E7%95%B3%E3%81%BF%E8%BE%BC%E3%81%BF
疎な条件分岐を考慮した定数伝播
http://ja.wikipedia.org/wiki/%E7%96%8E%E3%81%AA%E6%9D%A1%E4%BB%B6%E5%88%86%E5%B2%90%E3%82%92%E8%80%83%E6%85%AE%E3%81%97%E3%81%9F%E5%AE%9A%E6%95%B0%E4%BC%9D%E6%92%AD
抽象解釈
http://ja.wikipedia.org/wiki/%E6%8A%BD%E8%B1%A1%E8%A7%A3%E9%87%88
大域値番号付け
http://ja.wikipedia.org/wiki/%E5%A4%A7%E5%9F%9F%E5%80%A4%E7%95%AA%E5%8F%B7%E4%BB%98%E3%81%91
共通部分式除去
http://ja.wikipedia.org/wiki/%E5%85%B1%E9%80%9A%E9%83%A8%E5%88%86%E5%BC%8F%E9%99%A4%E5%8E%BB
Partial redundancy elimination
http://en.wikipedia.org/wiki/Partial_redundancy_elimination
演算子強度低減
http://ja.wikipedia.org/wiki/%E6%BC%94%E7%AE%97%E5%AD%90%E5%BC%B7%E5%BA%A6%E4%BD%8E%E6%B8%9B
C言語の構文解析
http://www.syuhitu.org/other/cparse/cparse.html
http://ja.wikipedia.org/wiki/%E5%AE%9A%E6%95%B0%E7%95%B3%E3%81%BF%E8%BE%BC%E3%81%BF
疎な条件分岐を考慮した定数伝播
http://ja.wikipedia.org/wiki/%E7%96%8E%E3%81%AA%E6%9D%A1%E4%BB%B6%E5%88%86%E5%B2%90%E3%82%92%E8%80%83%E6%85%AE%E3%81%97%E3%81%9F%E5%AE%9A%E6%95%B0%E4%BC%9D%E6%92%AD
抽象解釈
http://ja.wikipedia.org/wiki/%E6%8A%BD%E8%B1%A1%E8%A7%A3%E9%87%88
大域値番号付け
http://ja.wikipedia.org/wiki/%E5%A4%A7%E5%9F%9F%E5%80%A4%E7%95%AA%E5%8F%B7%E4%BB%98%E3%81%91
共通部分式除去
http://ja.wikipedia.org/wiki/%E5%85%B1%E9%80%9A%E9%83%A8%E5%88%86%E5%BC%8F%E9%99%A4%E5%8E%BB
Partial redundancy elimination
http://en.wikipedia.org/wiki/Partial_redundancy_elimination
演算子強度低減
http://ja.wikipedia.org/wiki/%E6%BC%94%E7%AE%97%E5%AD%90%E5%BC%B7%E5%BA%A6%E4%BD%8E%E6%B8%9B
C言語の構文解析
http://www.syuhitu.org/other/cparse/cparse.html
74片山博文MZコスモ ◆T6xkBnTXz7B0
2013/10/30(水) 20:24:40.83 逆コンパイラに興味ある人は少ないみたいだな
2013/10/30(水) 21:29:01.31
そりゃそうだ。リバースエンジニアリングってのはどちらかといえば破壊行為だし。
この板の連中はおまえの想像以上に生産的(破壊的の反対)なんだよ。
この板の連中はおまえの想像以上に生産的(破壊的の反対)なんだよ。
2013/10/30(水) 21:32:36.77
それ以前に「どうせ無理だろ……」と多勢が思っていることもあるだろうね
2013/10/30(水) 21:54:20.33
コンパイラが多すぎて全部はソースに変換できないって分ってからなぁ・・・
そしてコテ的に>>76
そしてコテ的に>>76
78片山博文MZコスモ ◆T6xkBnTXz7B0
2013/10/30(水) 23:14:18.48 次は中間表現の生成をやります。
2013/10/31(木) 14:41:22.66
実用レベルに足るものは不可能とわかっているから
2013/10/31(木) 16:34:19.29
彼でも1〜2年で限定用途なら可能だろうし
5〜10年も頑張れば実用レベルのが出来るんじゃないかな?ただそれだけ頑張った見返りがあるか疑問だが。
5〜10年も頑張れば実用レベルのが出来るんじゃないかな?ただそれだけ頑張った見返りがあるか疑問だが。
2013/10/31(木) 22:56:48.52
MFCの劣化ライブラリも腐っているしな
2013/11/01(金) 02:38:40.90
>>80
何一つ完成させたことが無いのに?
何一つ完成させたことが無いのに?
2013/11/03(日) 11:21:11.34
>>74
興味ありますよ頑張ってください応援してます
興味ありますよ頑張ってください応援してます
84デフォルトの名無しさん
2013/11/05(火) 00:26:28.24 え、まずはコンパイラ作ってみたら?
85片山博文MZコスモ ◆T6xkBnTXz7B0
2013/11/06(水) 05:20:59.14 しばらくスクリーンセーバーの開発に時間を割くことにします。GUIはwxを採用します。
2013/11/06(水) 09:52:43.11
MZC使えよバカ、作った人にも使われないなんてよっぽどだな(笑)
2013/11/07(木) 02:36:02.70
馬鹿がまた飽きたのかwww
こいつ本当に何一つ最後まで作れないなw
こいつ本当に何一つ最後まで作れないなw
2013/11/07(木) 02:51:13.49
最後まで作らないうえに86とかどうしようもねぇな
89片山博文MZコスモ ◆T6xkBnTXz7B0
2013/11/07(木) 03:16:18.11 仕事の合間にLinuxのスクリーンセーバーをWindowsに移植したら、海外から何件か要望が来た。
要望の多い方を優先する方針。すまない。何ならGitHubで開発に参加してくれると助かるのだが…。
要望の多い方を優先する方針。すまない。何ならGitHubで開発に参加してくれると助かるのだが…。
2013/11/07(木) 05:56:33.83
まあ簡単な方から片付けていくのが効率的人生の鉄則ではある。
2013/11/07(木) 08:18:28.62
また偽装請負か・・・
2013/11/07(木) 09:58:06.11
解散
2013/11/09(土) 13:24:53.90
クッソワロス、やっぱり最初に言った通り途中で挫折したw
ちなみに、こいつが途中で他のを優先すると言って
また開発に戻った例は無いぞw
ちなみに、こいつが途中で他のを優先すると言って
また開発に戻った例は無いぞw
2013/11/13(水) 12:33:23.15
まだだ、まだ俺のスタック領域は溢れちゃいねェ
2013/11/17(日) 20:32:31.71
保守
2013/11/25(月) 22:33:11.84
catcher
2013/11/30(土) 01:37:10.38
>>50-51
Salamander
Salamander
98片山博文MZコスモ ◆T6xkBnTXz7B0
2013/12/03(火) 11:45:36.02 スクリーンセーバーの移植が終わったので、CodeReverseの開発を再開します。
99片山博文MZコスモ ◆T6xkBnTXz7B0
2013/12/05(木) 23:14:57.22 また仕事が入った
100デフォルトの名無しさん
2013/12/13(金) 23:20:47.44 catcher
101デフォルトの名無しさん
2013/12/19(木) 04:29:33.68 Windows 系の .exe .dll を逆コンパイルするので分りやすいコードを吐いてくれるのは
今って何が高性能?
C#ぐらいの言語っぽいのだと分りやすいんだけど
今って何が高性能?
C#ぐらいの言語っぽいのだと分りやすいんだけど
102デフォルトの名無しさん
2013/12/19(木) 18:50:48.68 機械語からの逆コンパイルは大抵ろくなコードが出てこない。
マトモなコードになるのは中間言語からの逆コンパイルくらいだな。
.NETやJavaやActionScriptやHSPの中間言語は結構普通の逆コンパイル結果が得られる。
マトモなコードになるのは中間言語からの逆コンパイルくらいだな。
.NETやJavaやActionScriptやHSPの中間言語は結構普通の逆コンパイル結果が得られる。
103101
2013/12/21(土) 05:43:16.03 逆コンパイルで出てきたコードを書き換えてコンパイルしようという訳じゃないんだ。
機器のログを表示するソフトのデータ読み込みにバグがあるみたいで
自分で表示用データを出せるプログラム作ろうとしたら一部計算式が分らない
三角関数だろうけど
機器のログを表示するソフトのデータ読み込みにバグがあるみたいで
自分で表示用データを出せるプログラム作ろうとしたら一部計算式が分らない
三角関数だろうけど
104デフォルトの名無しさん
2013/12/21(土) 06:25:42.35 >>103
だから中間言語使った実行ファイルなら逆コンパイルも実用になるけど、
機械語使った実行ファイルの逆コンパイラはなかなか実用にならんよ。
たぶん逆アセンブラがなんだかんだ一番実用的だと思うぞ。
その.exeや.dllが中間言語使ってる実行ファイルかどうかは知らん。
.NETあたりだと逆コンパイルも楽だから.NETだといいね。
だから中間言語使った実行ファイルなら逆コンパイルも実用になるけど、
機械語使った実行ファイルの逆コンパイラはなかなか実用にならんよ。
たぶん逆アセンブラがなんだかんだ一番実用的だと思うぞ。
その.exeや.dllが中間言語使ってる実行ファイルかどうかは知らん。
.NETあたりだと逆コンパイルも楽だから.NETだといいね。
105デフォルトの名無しさん
2013/12/21(土) 09:06:13.91 >>103
その機器のメーカーに直してもらえよ
その機器のメーカーに直してもらえよ
106デフォルトの名無しさん
2013/12/21(土) 10:17:26.47 アセンブラは機械語と一対一に対応しているとよく言われるけど、
実際は対応していない。
同じアセンブリでも配置によって複数の機械語から特定のコードを選択
しなければならないプロセッサはよくありがち。
いろいろ面倒だよ。
実際は対応していない。
同じアセンブリでも配置によって複数の機械語から特定のコードを選択
しなければならないプロセッサはよくありがち。
いろいろ面倒だよ。
107デフォルトの名無しさん
2013/12/21(土) 13:06:51.16 >>103
ログ読み取りに不透明要素を持ちこむな 本末転倒にもほどがある
ログ読み取りに不透明要素を持ちこむな 本末転倒にもほどがある
108デフォルトの名無しさん
2013/12/31(火) 23:55:12.69 catcher
109デフォルトの名無しさん
2014/01/01(水) 03:35:02.64 >575 名前:片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/12/31(火) 22:44:07.54
>2013年の実績:
>クロスワードギバーを完成。
>XScreenSaverの200個以上のスクリーンセーバーをWindowsに移植。
>逆アセンブラを途中まで作成。
いつのまにか逆アセンブラにグレードダウン(笑)
なんというか、「〜をダウンロードした」とか「〜を勉強中」など
どうでもいいことは大声で宣伝するが、重要なことは何も言わないとか・・・
>2013年の実績:
>クロスワードギバーを完成。
>XScreenSaverの200個以上のスクリーンセーバーをWindowsに移植。
>逆アセンブラを途中まで作成。
いつのまにか逆アセンブラにグレードダウン(笑)
なんというか、「〜をダウンロードした」とか「〜を勉強中」など
どうでもいいことは大声で宣伝するが、重要なことは何も言わないとか・・・
110デフォルトの名無しさん
2014/01/02(木) 04:25:05.69 ネタギレです…しばらく保守になります。
この停滞状態が我慢できなければGitHubでPull requestしてね
この停滞状態が我慢できなければGitHubでPull requestしてね
111デフォルトの名無しさん
2014/01/02(木) 18:37:25.91 都合が悪くなると名無しで発言するんだな、発言の内容からして本人であることは明白なんだが
112デフォルトの名無しさん
2014/01/04(土) 23:27:07.00 ドラゴンプック買えばいいんですかね?
113デフォルトの名無しさん
2014/01/05(日) 02:54:40.24 無駄にはならんと思うが、つまみ食い気分で買うにはちとお高いよ
114デフォルトの名無しさん
2014/01/08(水) 19:09:04.82 アマゾンギフト券2000円を買ったぞ
中古のドラゴンブック買うぞーー!
中古のドラゴンブック買うぞーー!
115片山博文MZコスモ ◆T6xkBnTXz7B0
2014/01/13(月) 16:06:36.73 ドラゴンブック、1000円くらいの中古を買っちゃった!!!!!
さあ、ドラゴンと戦うぞ!!!
さあ、ドラゴンと戦うぞ!!!
116片山博文MZコスモ ◆T6xkBnTXz7B0
2014/01/16(木) 11:57:51.63 「コンパイラI原理・技法・ツール」が家に届いたぞー
戦闘開始!
戦闘開始!
117デフォルトの名無しさん
2014/01/16(木) 21:01:39.45 コンパイラ「ロバwwwwwwwwwwwwwwwwwwww」
118片山博文MZコスモ ◆T6xkBnTXz7B0
2014/01/17(金) 16:33:31.45 RE: Bison Windows m4 problems
bison: cannot open file `data/m4sugar/m4sugar.m4': No such file or directory
https://lists.gnu.org/archive/html/help-bison/2010-03/msg00015.html
空白を含むC:\Program Filesにインストールしちゃ駄目らしい。やり直し。
bison: cannot open file `data/m4sugar/m4sugar.m4': No such file or directory
https://lists.gnu.org/archive/html/help-bison/2010-03/msg00015.html
空白を含むC:\Program Filesにインストールしちゃ駄目らしい。やり直し。
119片山博文MZコスモ ◆T6xkBnTXz7B0
2014/01/17(金) 16:44:20.33 これも必要
set BISON_PKGDATADIR=C:\GnuWin32\share\bison
set BISON_PKGDATADIR=C:\GnuWin32\share\bison
120片山博文MZコスモ ◆T6xkBnTXz7B0
2014/01/17(金) 17:21:08.45 報告。ドラゴン本第三章まで読了。左再帰を右再帰に直す方法を学習した。
フロントエンド、フェーズなどの用語を習得した。
GNU Win32 Bison(Yacc)+Flex(Lex)のインストールに成功した。
引き続きBison+Flexの使い方を勉強する。
フロントエンド、フェーズなどの用語を習得した。
GNU Win32 Bison(Yacc)+Flex(Lex)のインストールに成功した。
引き続きBison+Flexの使い方を勉強する。
121片山博文MZコスモ ◆T6xkBnTXz7B0
2014/01/20(月) 12:27:07.18122デフォルトの名無しさん
2014/01/20(月) 12:34:03.66 あれ、逆コンパイラじゃなかったの?
フロントエンドよりバックエンドの方が重要だろう
俺が知らないうちに方針が変わったのかな
フロントエンドよりバックエンドの方が重要だろう
俺が知らないうちに方針が変わったのかな
123デフォルトの名無しさん
2014/01/20(月) 13:35:44.73 ロバ「方針が変わったのかな」
124デフォルトの名無しさん
2014/01/20(月) 14:32:20.01 どうでもいい。アホは自由だけが取り柄、好きにすればいいじゃない。
125片山博文MZ無能 ◆T6xkBnTXz7B0
2014/01/25(土) 13:20:17.50126片山博文MZ無能 ◆T6xkBnTXz7B0
2014/01/25(土) 17:51:54.00 Cで書くべきかC++で書くべきか?
127片山博文MZ無能 ◆T6xkBnTXz7B0
2014/01/25(土) 18:01:36.51 bison+flexで作ったパーサーを2つ以上取り込むことができないから、Cはダメだな、C++にしよう
128片山博文MZ無能 ◆T6xkBnTXz7B0
2014/01/27(月) 17:02:56.74 ftp://sunsite.unc.edu/pub/Linux/devel/lang/c/cdecl-2.5.tar.gz
ここにcdeclというプログラムのソースがある。これを分析する。
ここにcdeclというプログラムのソースがある。これを分析する。
129片山博文MZ無能 ◆T6xkBnTXz7B0
2014/01/30(木) 22:11:39.12 最近はPEGを使うのが流行りなのか? ちょっくら調べてみるか
130片山博文MZ無能 ◆T6xkBnTXz7B0
2014/02/10(月) 23:06:04.01 パーサジェネレータの勉強を兼ねて電卓を作ってます。
131デフォルトの名無しさん
2014/02/11(火) 19:47:51.54 bison/flexのパーサーが複数使えないって
片山はマニュアルが理解できないのか
片山はマニュアルが理解できないのか
132片山博文MZ無能 ◆T6xkBnTXz7B0
2014/02/11(火) 23:26:24.57 Windowsではまだmodern Bison++(3+)は入手できない。
それにC++に関してはまだ実験的らしい。
すぐに使えなくなりそうなコードは書きたくない。
だからANTLR3を使うことにした。
それにC++に関してはまだ実験的らしい。
すぐに使えなくなりそうなコードは書きたくない。
だからANTLR3を使うことにした。
133デフォルトの名無しさん
2014/02/12(水) 22:39:20.23 ドラゴンブックに挫折したか
134片山博文MZ無能 ◆T6xkBnTXz7B0
2014/02/16(日) 10:43:23.84135デフォルトの名無しさん
2014/02/16(日) 12:48:36.08 SS貼れよ
136デフォルトの名無しさん
2014/02/16(日) 12:57:23.05 Type [q or Q] to quit
> 871263948761872364871623946182973164+8761928734912634183412379461874234
Result is: 880025877496784999055036325644847398
> s=92183019827349179203471
s := 92183019827349179203471
Result is: 92183019827349179203471
> sin(s)%100.3
Result is: 0.7484296692622107891527456053804399259219719456829430374497200718368
9079690554390091960884209113407122218168687650754654152155867
>
> 871263948761872364871623946182973164+8761928734912634183412379461874234
Result is: 880025877496784999055036325644847398
> s=92183019827349179203471
s := 92183019827349179203471
Result is: 92183019827349179203471
> sin(s)%100.3
Result is: 0.7484296692622107891527456053804399259219719456829430374497200718368
9079690554390091960884209113407122218168687650754654152155867
>
137片山博文MZ無能 ◆T6xkBnTXz7B0
2014/02/18(火) 20:15:08.01 C11を勉強しなければ‥‥
138デフォルトの名無しさん
2014/02/20(木) 00:45:01.32 電卓で終わる予感
139片山博文MZ無能 ◆T6xkBnTXz7B0
2014/02/20(木) 12:37:10.33 Grammar Zoo
http://slps.github.io/zoo/
http://slps.github.io/zoo/
140片山博文MZ無能 ◆T6xkBnTXz7B0
2014/02/20(木) 13:23:01.18 __extension__とか__builtin*とか処理が多いなあ。
141片山博文MZ無能 ◆T6xkBnTXz7B0
2014/02/21(金) 16:51:09.37 ANTLRでFOLLOW_set_in_問題が発生した。これも使えないのか。。。
142片山博文MZ無能 ◆T6xkBnTXz7B0
2014/02/22(土) 13:41:25.80 bison-3.0.2をビルドしようとしたが失敗。
CaperとPEGを試してみる。。。
CaperとPEGを試してみる。。。
143片山博文MZ無能 ◆T6xkBnTXz7B0
2014/02/22(土) 19:42:42.68 スマポ? なにそれおいしいの?
144片山博文MZ無能 ◆T6xkBnTXz7B0
2014/02/25(火) 16:56:09.41 Caperは生成に時間がかかる(Core i5で10分)。しかもできるものが非常にでかい。
145片山博文MZ無能 ◆T6xkBnTXz7B0
2014/02/28(金) 15:42:30.17 Cパーサのプロトタイプができたよ!!!!
http://katahiromz.web.fc2.com/mathai/cparser2.zip
storage class関連の文法の見直し、並びにT_TYPEDEF_NAME,
T_TYPEDEF_NAME_FIRST, T_TAGNAMEなどの特殊なトークンが必要だった。
それにしてもCaperは時間がかかりすぎ。。。やっぱりBisonが最強かなと思い始める。。。
http://katahiromz.web.fc2.com/mathai/cparser2.zip
storage class関連の文法の見直し、並びにT_TYPEDEF_NAME,
T_TYPEDEF_NAME_FIRST, T_TAGNAMEなどの特殊なトークンが必要だった。
それにしてもCaperは時間がかかりすぎ。。。やっぱりBisonが最強かなと思い始める。。。
146デフォルトの名無しさん
2014/02/28(金) 18:36:32.65147片山博文MZ無能 ◆T6xkBnTXz7B0
2014/03/02(日) 14:00:30.68 さあ、caparの高速化に挑戦するぞ。開発環境はMinGW+MSYS。
まずは、計測。
$ time ./caper.exe -c++ cparser.cpg cparser.hpp
real 7m50.856s
user 0m0.015s
sys 0m0.000s
7分50秒もかかっていることがわかる。
g++のコマンドラインに-pgをつけてビルドすると、
関数の処理時間などをプロファイルするCaperの出来上がり。
$ ./caper -c++ cparser.cpg cparser.hpp
を実行すると、ファイルgmon.outが作成される。さらに
$ gprof caper.exe gmon.out > gmon.log
と入力すると、人間にも読めるgmon.logができる。
...(中略)...
その結果、
real 0m31.862s
user 0m0.000s
sys 0m0.031s
となり、30秒程度で処理できるようになった。めでたしめでたし。
http://katahiromz.web.fc2.com/mathai/qcaper.zip
まずは、計測。
$ time ./caper.exe -c++ cparser.cpg cparser.hpp
real 7m50.856s
user 0m0.015s
sys 0m0.000s
7分50秒もかかっていることがわかる。
g++のコマンドラインに-pgをつけてビルドすると、
関数の処理時間などをプロファイルするCaperの出来上がり。
$ ./caper -c++ cparser.cpg cparser.hpp
を実行すると、ファイルgmon.outが作成される。さらに
$ gprof caper.exe gmon.out > gmon.log
と入力すると、人間にも読めるgmon.logができる。
...(中略)...
その結果、
real 0m31.862s
user 0m0.000s
sys 0m0.031s
となり、30秒程度で処理できるようになった。めでたしめでたし。
http://katahiromz.web.fc2.com/mathai/qcaper.zip
148デフォルトの名無しさん
2014/03/02(日) 14:19:11.94 騙されてる
149片山博文MZジェバンニ ◆T6xkBnTXz7B0
2014/03/07(金) 17:53:42.51150片山博文MZジェバンニ ◆T6xkBnTXz7B0
2014/03/10(月) 22:07:35.64 型のデータ構造とASTを構築中。。。
151片山博文MZジェバンニ ◆T6xkBnTXz7B0
2014/03/11(火) 11:51:20.24 @jonigataさんのCaperが劇的に高速化されたらしいぞ!!!
github.com/jonigata/caper
github.com/jonigata/caper
152片山博文MZジェバンニ ◆T6xkBnTXz7B0
2014/03/13(木) 20:23:31.76ID:AgM9wxep 汗から関数を切り出すのはできた。汗コードから関数の引数の個数を判定する方法がわからない。
最近汗やってないな。。。
最近汗やってないな。。。
153片山博文MZジェバンニ ◆T6xkBnTXz7B0
2014/03/14(金) 22:06:20.31ID:j99O0IvR 雑用とか色々有って忙しいんだよな。
C2EXEの作者でも降臨して手伝ってくれないかなあ〜。多分連絡取れないんだろうな。
C2EXEの作者でも降臨して手伝ってくれないかなあ〜。多分連絡取れないんだろうな。
154片山博文MZジェバンニ ◆T6xkBnTXz7B0
2014/03/14(金) 22:07:44.17ID:j99O0IvR exe2cの間違いだった。。。
155片山博文MZジェバンニ ◆T6xkBnTXz7B0
2014/03/21(金) 16:00:15.28ID:15wzZBuZ AST構築中。。。
156片山博文MZジェバンニ ◆T6xkBnTXz7B0
2014/03/23(日) 18:39:59.36ID:FjLlR1KU 最適化なんてどうでもいいから、早くASTを構築しろって上司に怒鳴られた。
すなおに実装してみるか
すなおに実装してみるか
157片山博文MZジェバンニ ◆T6xkBnTXz7B0
2014/04/01(火) 12:58:53.08ID:zF3pKyMj AST構築完了。次はコンパイルだ。
http://katahiromz.web.fc2.com/mathai/cparser8.txz
http://katahiromz.web.fc2.com/mathai/cparser8.txz
158デフォルトの名無しさん
2014/04/02(水) 01:48:11.12ID:DfhRYDJb まだやってたのか
159片山博文MZジェバンニ ◆T6xkBnTXz7B0
2014/04/02(水) 23:15:39.26ID:dFeJg3uF こうして見返してみると馬鹿なコード書いてるのがわかるな。。。
書き直そう。
書き直そう。
160片山博文MZジェバンニ ◆T6xkBnTXz7B0
2014/04/07(月) 14:05:00.51ID:nfj7Xkns github.com/katahiromz/CodeReverse
更新しました。パースルーチンを追加。コードの近代化。
ライセンスをThe BSD 2-Clause Licenseに変更。
さあ、どんどん作るぞ!!!
更新しました。パースルーチンを追加。コードの近代化。
ライセンスをThe BSD 2-Clause Licenseに変更。
さあ、どんどん作るぞ!!!
161マイク ◆gZ6OoOjBU6
2014/04/20(日) 10:23:49.34ID:3IIwiFaC 技術レベルの高いことやってるね。
162片山博文MZバグロボ ◆T6xkBnTXz7B0
2014/04/20(日) 17:23:11.71ID:Z/njjQP5 x86アセンブリから関数の引数のサイズを求める方法がわからない。知ってる人、教えてよ
163デフォルトの名無しさん
2014/04/20(日) 20:30:04.45ID:mILxVbg/ calling convension調べろよ
164デフォルトの名無しさん
2014/04/21(月) 00:20:07.86ID:fKV6ATCG そういうのはプロジェクト立ち上げる前に解決しとくと子だろ
165デフォルトの名無しさん
2014/04/30(水) 18:48:27.62ID:4dW9hwGr catcher
166デフォルトの名無しさん
2014/04/30(水) 23:08:35.10ID:yRPuq9ZX 途中何も読んでないから的外れ言ってたらすまんこまんこ
引数はPUSH最後からPUSHで行って、最後にリターンアドレスをPUSHして関数をcallする
arg3
arg2
arg1
retaddr
引数が4バイトで3つの場合、呼び出し直後のスタックはこうなる
引数はPUSH最後からPUSHで行って、最後にリターンアドレスをPUSHして関数をcallする
arg3
arg2
arg1
retaddr
引数が4バイトで3つの場合、呼び出し直後のスタックはこうなる
167デフォルトの名無しさん
2014/04/30(水) 23:20:48.12ID:yRPuq9ZX 関数呼び出し規約の違いは引数の分のスタック処理を誰が責任持つかの違い
__stdcallは呼び出された関数が最後にスタックを整理して返る
__cdeclは呼び出し側がpushした分だけスタックを整理する
__fastcallはcallする前にpushじゃなくて最大2つまでレジスタに値をぶっ込んでからcallする
__thiscallはcallの直前にecxにthisポインタを入れてから呼び出すが、スタック処理は_規定では_stdcallと同じ
関数内でecxにあれこれしてローカル変数っぽいのを弄ってたらなんかしらのクラス決定
__cdeclを指定されたり可変個引数だったりするメンバ関数は、thisポインタを最後にスタックに積んだ気がする
__stdcallは呼び出された関数が最後にスタックを整理して返る
__cdeclは呼び出し側がpushした分だけスタックを整理する
__fastcallはcallする前にpushじゃなくて最大2つまでレジスタに値をぶっ込んでからcallする
__thiscallはcallの直前にecxにthisポインタを入れてから呼び出すが、スタック処理は_規定では_stdcallと同じ
関数内でecxにあれこれしてローカル変数っぽいのを弄ってたらなんかしらのクラス決定
__cdeclを指定されたり可変個引数だったりするメンバ関数は、thisポインタを最後にスタックに積んだ気がする
168デフォルトの名無しさん
2014/05/01(木) 00:42:00.30ID:VSccnwjx __fastcall調べたなら「スタック処理を誰が責任持つかの違い」じゃ無いことは自明だろがアホ
あとx64だとかなり様変わりする
あとx64だとかなり様変わりする
169デフォルトの名無しさん
2014/05/01(木) 02:11:28.08ID:PhcFzFlz ごめんニワカなんだすまんこまんこ
__fastcallは3つ以上引数取るときには3つめ以降の責任は__stdcallと同じだったはず
x64はほとんどレジスタで引数やりとりするんだっけ?全く詳しくないが
__fastcallは3つ以上引数取るときには3つめ以降の責任は__stdcallと同じだったはず
x64はほとんどレジスタで引数やりとりするんだっけ?全く詳しくないが
170デフォルトの名無しさん
2014/05/01(木) 02:48:55.05ID:VSccnwjx 「引数の渡し方からしてそもそも違う」のに「誰が責任持つかの違い」に限定しなきゃいかん理由は何なんだ。
171片山博文MZバグロボ ◆T6xkBnTXz7B0
2014/05/01(木) 12:27:44.81ID:WY/8p/R+172片山博文MZバグロボ ◆T6xkBnTXz7B0
2014/05/01(木) 14:24:04.77ID:O61PxCRM 型システムは70%くらいできた。
アセンブリから呼び出し規約と引数のサイズを推定するオートマトンを作らないといけない。
頑張るぜ。
アセンブリから呼び出し規約と引数のサイズを推定するオートマトンを作らないといけない。
頑張るぜ。
173片山博文MZバグロボ ◆T6xkBnTXz7B0
2014/05/01(木) 18:16:21.29ID:O61PxCRM Amazonでドラゴンブック二冊目買おうかな
データフローを勉強したいんで
データフローを勉強したいんで
174デフォルトの名無しさん
2014/05/01(木) 18:37:14.14ID:O61PxCRM 買う買う光線ビーム!!!
175デフォルトの名無しさん
2014/05/01(木) 19:17:47.73ID:ZMd3mcxT こわい
176片山博文MZバグロボ ◆T6xkBnTXz7B0
2014/05/02(金) 12:19:45.40ID:fCG9D4SE 買ったぞーーーー
177デフォルトの名無しさん
2014/05/02(金) 22:33:36.49ID:uljkUnkD178片山博文MZバグロボ ◆T6xkBnTXz7B0
2014/05/04(日) 13:00:24.41ID:MUZRXExp179片山博文MZバグロボ ◆T6xkBnTXz7B0
2014/05/04(日) 18:25:07.84ID:6pFdiYZZ ビットフィールド、サポート出来そう。
次はオートマトンに取り組むぞ!!!
次はオートマトンに取り組むぞ!!!
180片山博文MZバグロボ ◆T6xkBnTXz7B0
2014/05/05(月) 00:10:21.23ID:vEoyNxMN 【関数呼び出しコード分析における注意点】
☆呼び出しの際、スタックを解放せずに再利用されることがある。
☆呼び出し先のアドレスがレジスタに格納されて呼び出しに使われることがある。
☆また、条件によって場合分けされて呼び出し先の異なるアドレスがレジスタに格納されて呼び出しに使われることがある。
☆呼び出しの際、スタックを解放せずに再利用されることがある。
☆呼び出し先のアドレスがレジスタに格納されて呼び出しに使われることがある。
☆また、条件によって場合分けされて呼び出し先の異なるアドレスがレジスタに格納されて呼び出しに使われることがある。
181片山博文MZバグロボ ◆T6xkBnTXz7B0
2014/05/05(月) 00:44:45.91ID:vEoyNxMN レベル0.機械語コード。
レベル1.アセンブリのみのコード。
レベル2.関数に切り分けられたアセンブリコード。
レベル3.レジスタとスタックの直接的操作を含む中間表現コード。
レベル4.レジスタとスタックの直接的操作を含まない中間表現コード。
レベル5.C言語のコード。
#こんな感じかな?
レベル1.アセンブリのみのコード。
レベル2.関数に切り分けられたアセンブリコード。
レベル3.レジスタとスタックの直接的操作を含む中間表現コード。
レベル4.レジスタとスタックの直接的操作を含まない中間表現コード。
レベル5.C言語のコード。
#こんな感じかな?
182デフォルトの名無しさん
2014/05/05(月) 00:47:27.64ID:vEoyNxMN レベル3.レジスタとスタックの直接的操作を含む型なしの中間表現コード。
レベル4.レジスタとスタックの直接的操作を含まない型付きの中間表現コード。
レベル4.レジスタとスタックの直接的操作を含まない型付きの中間表現コード。
183片山博文MZバグロボ ◆T6xkBnTXz7B0
2014/05/05(月) 01:30:48.74ID:vEoyNxMN 命令セットの中間表現はテキストとして与えられる(insn*.dat)。
よって、中間表現の設計とパーサとASTが必要。
中間表現はC言語のサブセットの拡張とする。
よって、中間表現の設計とパーサとASTが必要。
中間表現はC言語のサブセットの拡張とする。
184片山博文MZバグロボ ◆T6xkBnTXz7B0
2014/05/05(月) 15:16:53.17ID:vEoyNxMN gccは余分にスタックフレーム確保してる。。。何でだろ?
185デフォルトの名無しさん
2014/05/06(火) 13:59:33.71ID:e6OeMlN3 実現出来てもwatcom cの吐いたバイナリで面白いことになる予感
186片山博文MZバグロボ ◆T6xkBnTXz7B0
2014/05/07(水) 18:04:37.38ID:ofrV91be 本が来た━━━━━━━━━!!!
187片山博文MZバグロボ ◆T6xkBnTXz7B0
2014/05/08(木) 15:32:25.08ID:o5H0kOM9 コンパイラが関数だとすると、逆コンパイラは逆関数である。
逆なんだよ、逆。コンパイラのコード生成に対しては、逆コンパイラのコード分析が対応する。
逆なんだよ、逆。コンパイラのコード生成に対しては、逆コンパイラのコード分析が対応する。
188片山博文MZバグロボ ◆T6xkBnTXz7B0
2014/05/08(木) 17:50:21.71ID:o5H0kOM9 __stdcallが一番簡単。__stdcallのときに限ってretの引数があって、それが関数の引数リストのサイズ。
__stdcallでないときはretに引数がなく、呼び出し側が引数スタックを解放する。
__cdeclか__fastcallか__thiscallの判断はレジスタの使用や関数呼び出しの状況を統計するしか方法はない。
スタックやレジスタやヒープの型情報とデータと式などを統合して扱う仕組みが必要。
__stdcallでないときはretに引数がなく、呼び出し側が引数スタックを解放する。
__cdeclか__fastcallか__thiscallの判断はレジスタの使用や関数呼び出しの状況を統計するしか方法はない。
スタックやレジスタやヒープの型情報とデータと式などを統合して扱う仕組みが必要。
189デフォルトの名無しさん
2014/05/09(金) 09:45:23.59ID:b6QXm0aH 統計しなくても理詰めで解けるケースを想定できんのか
//どっちみち可変長引数は詰むけどな
//どっちみち可変長引数は詰むけどな
190片山博文MZバグロボ ◆T6xkBnTXz7B0
2014/05/10(土) 00:46:59.62ID:4sLYkLKE ある関数内で呼び出すターゲット関数のスタック引数サイズは、スタックフレームマイナススタックポインタ以下の値を取りうる。
関数内でターゲット関数の呼び出しが1回のみで他にスタック操作をしていないなら、そのときのスタック引数サイズは確定する。
ターゲット関数内のレジスタとスタックの使用状況から、スタック引数サイズの下限がわかる。
可変長引数の場合は、スタック引数サイズは下限以上の値になる。
関数内でターゲット関数の呼び出しが1回のみで他にスタック操作をしていないなら、そのときのスタック引数サイズは確定する。
ターゲット関数内のレジスタとスタックの使用状況から、スタック引数サイズの下限がわかる。
可変長引数の場合は、スタック引数サイズは下限以上の値になる。
191片山博文MZバグロボ ◆T6xkBnTXz7B0
2014/05/10(土) 00:54:06.86ID:4sLYkLKE ということは、スタックフレームイコールスタックポインタの場合はターゲット関数の
スタック引数サイズはゼロで確定で、ターゲット関数に対する統計は不要という訳か?
スタック引数サイズはゼロで確定で、ターゲット関数に対する統計は不要という訳か?
192片山博文MZバグロボ ◆T6xkBnTXz7B0
2014/05/10(土) 01:26:55.17ID:4sLYkLKE 1.関数のスタック引数サイズとローカル領域を確定し、スタック操作を仮想化する。
2.コードを基本ブロックに分け、分岐を仮想化する。
3.オペランドに型を付けて型推論を行う。
4.データフロー解析を行い、中間表現へ変換。オペランドを式に抽象化する。
5.読みやすいように最適化しながら、コード生成を行う。
6.AStyleを使ってコードを整形する。
2.コードを基本ブロックに分け、分岐を仮想化する。
3.オペランドに型を付けて型推論を行う。
4.データフロー解析を行い、中間表現へ変換。オペランドを式に抽象化する。
5.読みやすいように最適化しながら、コード生成を行う。
6.AStyleを使ってコードを整形する。
193片山博文MZバグロボ ◆T6xkBnTXz7B0
2014/05/11(日) 18:12:03.14ID:FqMZuwkf 0.1.4! コードを整理。
https://github.com/katahiromz/CodeReverse
https://github.com/katahiromz/CodeReverse
194片山博文MZバグロボ ◆T6xkBnTXz7B0
2014/05/14(水) 13:48:10.03ID:dMA9XG5e x86のintrinsicのまとまった情報が欲しいけど見付からない
195片山博文MZバグロボ ◆T6xkBnTXz7B0
2014/05/15(木) 19:14:50.89ID:KjqXcag5 符号付きか符号なしか分からない型をxsignedで表す。
未知の型はunknown%d_tという型を付ける。未知の型について型の属性を解析していく。
例えば、即値xが非ゼロで上位ワードがゼロならポインタでなく整数である。
callの引数は間違いなく関数ポインタである。
未知の型はunknown%d_tという型を付ける。未知の型について型の属性を解析していく。
例えば、即値xが非ゼロで上位ワードがゼロならポインタでなく整数である。
callの引数は間違いなく関数ポインタである。
196片山博文MZバグロボ ◆T6xkBnTXz7B0
2014/05/16(金) 00:32:42.44ID:YZ6eU1pI ということは、intrinsicのアセンブリパターンをほとんど全部調べて、
パターンマッチングでパターンごとに中間表現に置き換えていく必要があるんやで。
パターンデータを用意するのが大変やで、しかし。
パターンマッチングでパターンごとに中間表現に置き換えていく必要があるんやで。
パターンデータを用意するのが大変やで、しかし。
197片山博文MZバグロボ ◆T6xkBnTXz7B0
2014/05/17(土) 23:48:39.82ID:MhKuGNEw pattern {
(アセンブリのテンプレート)
} code {
(中間表現)
}
こんな感じのテキストデータを事前に読み込んで、それ(置き換え規則)を使って
パターンマッチを行い、中間表現への置き換えをする。
テンプレートには$1,$2,$3,...などの引数が書ける。
(アセンブリのテンプレート)
} code {
(中間表現)
}
こんな感じのテキストデータを事前に読み込んで、それ(置き換え規則)を使って
パターンマッチを行い、中間表現への置き換えをする。
テンプレートには$1,$2,$3,...などの引数が書ける。
198デフォルトの名無しさん
2014/05/18(日) 05:43:49.87ID:d9R6JRvl パターンが足りず変換し損なうか、パターンが意図しない場所にマッチして変換し損なうか、
マッチ候補の組み合わせ探索量が爆発して尋常じゃなく遅くなる、て未来が見えそうだね。
マッチ候補の組み合わせ探索量が爆発して尋常じゃなく遅くなる、て未来が見えそうだね。
199デフォルトの名無しさん
2014/05/18(日) 11:59:58.99ID:BMv+P6U/ 最適化されたバイナリとか全く考えて無さそうだな
変換できなかったらインラインアセンブリのソースに変換します! ならかっこいいw
変換できなかったらインラインアセンブリのソースに変換します! ならかっこいいw
200デフォルトの名無しさん
2014/05/18(日) 12:30:27.39ID:untGUeAU >>199
それ言い出すとインラインアセンブリだらけになっちゃうだろ!
それ言い出すとインラインアセンブリだらけになっちゃうだろ!
201デフォルトの名無しさん
2014/05/18(日) 21:31:34.01ID:DTiowi1J ループ展開とか、再起がgoto文になってたりすると見にくそう
202デフォルトの名無しさん
2014/05/18(日) 22:02:56.66ID:C1UdNOr5 forもwhileもgotoになるだろう
203デフォルトの名無しさん
2014/05/19(月) 11:39:49.12ID:3tNqokKG >>197
コンパイラの癖が変わったら破たんするな。
コンパイラの癖が変わったら破たんするな。
204デフォルトの名無しさん
2014/05/19(月) 12:56:58.39ID:zujUZLqg205デフォルトの名無しさん
2014/05/20(火) 00:30:57.63ID:fbMM1sIr 頻出形だけカバーできればいいだろ
どうせ大事なのはその先なんだし
どうせ大事なのはその先なんだし
206デフォルトの名無しさん
2014/05/20(火) 00:40:11.42ID:5sJsx7Oe 最初から最後までインラインアセンブリ
207デフォルトの名無しさん
2014/05/20(火) 00:42:08.99ID:zlaxDiQa >>206
なにその手の込んだ手抜き
なにその手の込んだ手抜き
208片山博文MZバグロボ ◆T6xkBnTXz7B0
2014/05/20(火) 01:01:34.43ID:DYOJrjk8 はーひふーへほー!!!
片山被告のせいで俺まで職場で悪役扱いだずぇ!
まゆげが無くても父親が殺人者でも関係ねぇ!
俺はコンピュータテクノロジーの心臓部に弾丸を撃ち込んで歴史を塗り替えてみせる!
俺様は諦めない!がはははっひゃっ! ばいばいきーん!
片山被告のせいで俺まで職場で悪役扱いだずぇ!
まゆげが無くても父親が殺人者でも関係ねぇ!
俺はコンピュータテクノロジーの心臓部に弾丸を撃ち込んで歴史を塗り替えてみせる!
俺様は諦めない!がはははっひゃっ! ばいばいきーん!
209片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0
2014/05/20(火) 01:33:26.09ID:DYOJrjk8 最終チェックが終わったら次は64bitのパターンだな。
7月15日までに結果を出さねば。
7月15日までに結果を出さねば。
210デフォルトの名無しさん
2014/05/24(土) 09:18:22.74ID:NypXzdqU jmp を for にできるようになったら呼んでくれ
211片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0
2014/05/24(土) 15:37:43.79ID:rwv5YdXW v0.1.5!
https://github.com/katahiromz/CodeReverse
パターンファイルasmpat32.dat, asmpat64.datを追加しました。
ソースが読みやすくなりましたので、興味がある方はじっくりご覧下さい。
>>210 それはまだ先のこと。
https://github.com/katahiromz/CodeReverse
パターンファイルasmpat32.dat, asmpat64.datを追加しました。
ソースが読みやすくなりましたので、興味がある方はじっくりご覧下さい。
>>210 それはまだ先のこと。
212片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0
2014/05/26(月) 03:07:17.92ID:Y2iJcwcZ たいした成果がないとスポンサーからの今年の研究費がお預けになる予感。。。開発を急がないと。。。
GitHubにてPull Repuest歓迎。アドバイス・批評歓迎。功績・貢献にはアマゾンギフト券かWebMoneyでお応えします。
GitHubにてPull Repuest歓迎。アドバイス・批評歓迎。功績・貢献にはアマゾンギフト券かWebMoneyでお応えします。
213片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0
2014/06/02(月) 23:38:37.43ID:0yNOtv/b もう少し納得がいくまでひらがな電卓がんばります。
214片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0
2014/06/25(水) 18:38:03.09ID:n7E3MpSB うひょー、ひらがな電卓のお陰で研究費ゲットだぜぇ! もう少しひらがな電卓を頑張るずぇっ!
215デフォルトの名無しさん
2014/07/10(木) 00:11:01.04ID:M4bomIPQ catcher
>>214
ニートですが研究費とかいうものはどうやったら貰えるのですか?
ニートですが研究費とかいうものはどうやったら貰えるのですか?
217デフォルトの名無しさん
2014/07/20(日) 18:12:16.52ID:5tCNN5Wf >>216
「クラウドファンディング」で検索
「クラウドファンディング」で検索
218片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0
2014/07/27(日) 15:17:33.75ID:IA9V+eIN catcher
219デフォルトの名無しさん
2014/08/02(土) 14:48:35.52ID:9pUD/EET catcher
220デフォルトの名無しさん
2014/08/13(水) 18:13:36.72ID:JOE/IwkU catcher
221デフォルトの名無しさん
2014/08/17(日) 23:10:05.64ID:QEFSNrh+ お花畑
222デフォルトの名無しさん
2014/08/25(月) 18:24:31.95ID:Mg2fQQvs catcher
223デフォルトの名無しさん
2014/09/06(土) 22:58:01.07ID:yTL+zk7h catcher
224片山博文MZ次期CEO ◆T6xkBnTXz7B0
2014/09/15(月) 21:33:44.73ID:lVCjgFoQ バイナリをLLVMにするって可能なのか? うーん
225片山博文MZ次期CEO ◆T6xkBnTXz7B0
2014/09/16(火) 17:47:27.97ID:uCY6omK1226デフォルトの名無しさん
2014/09/28(日) 23:27:24.48ID:uLb79luw しばらくCalc-Hの営業
時間ないな
時間ないな
227片山博文MZ次期CEO ◆T6xkBnTXz7B0
2014/10/08(水) 13:20:30.61ID:9EnqerIp catcher
228片山博文MZ次期CEO ◆T6xkBnTXz7B0
2014/10/21(火) 20:17:15.61ID:tyo0JEbH GitHubで星が1つ付いた。頑張らないといけないのだが、時間がない。
2014/10/31(金) 17:22:03.59ID:a2LU3Ea+
catcher
230デフォルトの名無しさん
2014/11/09(日) 20:47:16.65ID:XU91kGr5 時間ねーから
231デフォルトの名無しさん
2014/11/21(金) 00:49:03.57ID:6AGAgrET catcher
232デフォルトの名無しさん
2014/11/26(水) 23:20:20.01ID:4JVdbB+E こんな嘘ばかりのスレ取り消せ。
クソボケが 、アホクソボケカスが。
根性無しのカスの集まりが。
どうせ何もできんのやろが?
カスはカスらしく黙っとらんかい!クソボケ!
何なんじゃアホが。この根性無しのクズが。
クソボケクズ。クズの集まりじゃねえか。
ポンコツのクソドアホが。ボンクラだろがてめえら。
はっきり言っといてやるよ。 てめえらなんか、何一つ怖くないわ、
このクズ以下のポンコツボンクラが。
クソボケが 、アホクソボケカスが。
根性無しのカスの集まりが。
どうせ何もできんのやろが?
カスはカスらしく黙っとらんかい!クソボケ!
何なんじゃアホが。この根性無しのクズが。
クソボケクズ。クズの集まりじゃねえか。
ポンコツのクソドアホが。ボンクラだろがてめえら。
はっきり言っといてやるよ。 てめえらなんか、何一つ怖くないわ、
このクズ以下のポンコツボンクラが。
233デフォルトの名無しさん
2014/12/06(土) 14:51:26.56ID:+BigHZY2 catcher
234デフォルトの名無しさん
2014/12/21(日) 19:05:02.38ID:K4obGNjE catcher
235デフォルトの名無しさん
2014/12/29(月) 14:04:28.20ID:k/a0XR+r catcher
236片山博文MZ ◆T6xkBnTXz7B0
2014/12/30(火) 12:29:11.58ID:II8lCuST データフローの表現の問題が未解決。アイデアが見つかるまで時間が掛かりそうです。
237片山博文MZ ◆T6xkBnTXz7B0
2014/12/30(火) 16:43:47.63ID:II8lCuST dag (directed acyclic graph): 閉路のない有向グラフ。「グラフ理論」を参照。
基本ブロック (basic block): 途中で停止したり、分岐したりしない、連続した文の並び。
流れグラフ: 基本ブロックを制御の流れに従って矢印で結んだもの。
「基本ブロックのdag表現」とは、次のようなdag:
1.葉のラベルは一意な識別子。
2.内部節点のラベルは演算子。
3.さらに節点に識別子の並びのラベルを付けることができる。
基本ブロック (basic block): 途中で停止したり、分岐したりしない、連続した文の並び。
流れグラフ: 基本ブロックを制御の流れに従って矢印で結んだもの。
「基本ブロックのdag表現」とは、次のようなdag:
1.葉のラベルは一意な識別子。
2.内部節点のラベルは演算子。
3.さらに節点に識別子の並びのラベルを付けることができる。
238片山博文MZ ◆T6xkBnTXz7B0
2014/12/30(火) 18:02:49.41ID:II8lCuST この「内部節点」は、「節点内部」の誤訳だろうな
239デフォルトの名無しさん
2014/12/31(水) 00:57:28.36ID:BPGgSSnK 内部節点で正しいと思う
http://imd.naist.jp/~miyazaki/doshisha/data-algo/ad-3.pdf
・内部節点(internal node) 子を持つ節
・外部節点(external node) 葉(leaf) 子を持たない節
http://imd.naist.jp/~miyazaki/doshisha/data-algo/ad-3.pdf
・内部節点(internal node) 子を持つ節
・外部節点(external node) 葉(leaf) 子を持たない節
241デフォルトの名無しさん
2014/12/31(水) 12:23:17.69ID:UInHV6yl 『節点』に『内部』があると思っているのか?日本語からやり直せよチョソ
242片山博文MZ ◆T6xkBnTXz7B0
2014/12/31(水) 23:51:17.31ID:FQwLik9b243片山博文MZ ◆T6xkBnTXz7B0
2015/01/20(火) 14:29:08.20ID:xhQ1sKyb244片山博文MZ ◆T6xkBnTXz7B0
2015/01/31(土) 20:50:33.99ID:NOJeJgIt さあ、やるんだ
246片山博文MZ ◆T6xkBnTXz7B0
2015/02/01(日) 23:14:25.39ID:b1Drc9W3 DLLのリンク情報はどうやって抽出すればいい?
247片山博文MZ ◆T6xkBnTXz7B0
2015/02/06(金) 13:17:21.55ID:WUwVT1fs 完璧なCパーサーを作るのは大変だな。。。
https://github.com/katahiromz/DoWonders
https://github.com/katahiromz/DoWonders
248片山博文MZ ◆T6xkBnTXz7B0
2015/02/09(月) 20:31:33.92ID:002yDz5I 早くバグ取らないと怒鳴られるぞ。。。
249片山博文MZ ◆T6xkBnTXz7B0
2015/02/14(土) 12:15:44.30ID:gwH6zzLC250片山博文MZ ◆T6xkBnTXz7B0
2015/02/15(日) 13:18:57.14ID:YOxjOULg251デフォルトの名無しさん
2015/02/15(日) 13:30:33.98ID:VI4OFusP おうがんばれや
252デフォルトの名無しさん
2015/02/15(日) 17:20:09.52ID:BzeQi2NL へえ。結構やるじゃん。
253片山博文MZ ◆T6xkBnTXz7B0
2015/02/20(金) 04:31:21.76ID:hFZMHbko 今、リファクタリングとDBのサニタイズしてるとこ。いくつかサイズの間違いを見つけた。
構造体のサイズを正確に得るには、アライメントを考慮せねば。
構造体のサイズを正確に得るには、アライメントを考慮せねば。
254片山博文MZ ◆T6xkBnTXz7B0
2015/03/01(日) 19:08:40.80ID:b/Z6wEyz A「では、進捗報告を」
B「アライメントの扱いに案外手こずり、まだDBのサニタイズが終わっていません」
A「時間が掛かりすぎだ!いつになったらできるんだ!(机を叩く)」
B「申し訳ございません。」
A「アライメントの規則性を分析して早くサニタイズしなさい」
B「御意」
B「アライメントの扱いに案外手こずり、まだDBのサニタイズが終わっていません」
A「時間が掛かりすぎだ!いつになったらできるんだ!(机を叩く)」
B「申し訳ございません。」
A「アライメントの規則性を分析して早くサニタイズしなさい」
B「御意」
255片山博文MZ ◆T6xkBnTXz7B0
2015/03/04(水) 12:32:04.66ID:wAAd8cV7256片山博文MZ ◆T6xkBnTXz7B0
2015/03/05(木) 21:51:27.28ID:rUbEobY5 型情報のload/saveを可能にしなきゃ。
定数の"typed value"計算を可能にしなきゃ。
定数の"typed value"計算を可能にしなきゃ。
257片山博文MZ ◆T6xkBnTXz7B0
2015/03/06(金) 16:43:14.93ID:Utx2vhNJ 今、typed valueの実装をやってるけど、型によって場合分けが
必要だから、「場合分けの化け物」になっちゃうんだよな。
関数型ならもっとスマートに書けそうだが。。。
必要だから、「場合分けの化け物」になっちゃうんだよな。
関数型ならもっとスマートに書けそうだが。。。
258デフォルトの名無しさん
2015/03/14(土) 20:28:31.86ID:V/kJuq3g 2ちゃんねるおわた
NEXT行きましょ
NEXT
NEXT行きましょ
NEXT
259片山博文MZ ◆T6xkBnTXz7B0
2015/03/15(日) 13:48:43.55ID:wj0oyall マクロから一部の定数を抜き出すのを実装してみた。
定数全部を抽出するには、
マクロの展開とパースとtyped valueの実装が必要みたいだ。
https://github.com/katahiromz/DoWonders
定数全部を抽出するには、
マクロの展開とパースとtyped valueの実装が必要みたいだ。
https://github.com/katahiromz/DoWonders
260片山博文MZ ◆T6xkBnTXz7B0
2015/03/19(木) 13:04:51.09ID:JLKczW+H261片山博文MZ ◆T6xkBnTXz7B0
2015/03/19(木) 15:29:38.48ID:rGfQi3lS バグ発見。ケアレスミスだった。
262片山博文MZ ◆T6xkBnTXz7B0
2015/03/22(日) 14:04:56.12ID:0xruUqhc263片山博文MZ ◆T6xkBnTXz7B0
2015/03/23(月) 17:04:35.45ID:iTA2cPA1 A「では、進捗報告を」
B「後はマクロ展開を実装すれば、次のステージに進めます。」
A「それはできるのか?」
B「今、QZというハッカーにマクロ展開実装を依頼していますが、
返答がありません。何とか自力でできないか模索している処です」
A「来週の日曜日までに急いでやれ。頼んだぞ」
B「後はマクロ展開を実装すれば、次のステージに進めます。」
A「それはできるのか?」
B「今、QZというハッカーにマクロ展開実装を依頼していますが、
返答がありません。何とか自力でできないか模索している処です」
A「来週の日曜日までに急いでやれ。頼んだぞ」
264デフォルトの名無しさん
2015/03/24(火) 01:57:06.17ID:CghrDXfy まあ頑張れ、せいぜい利用させてもらうぜオッサン
265デフォルトの名無しさん
2015/03/25(水) 08:14:43.78ID:UQSzKjlW 俺の興味がどこにあるかお前はよく知っているはずだが?
あの証明は飛躍があるから埋めておけ参考書もそうならその参考書は捨てたほうがいい
あの証明は飛躍があるから埋めておけ参考書もそうならその参考書は捨てたほうがいい
267デフォルトの名無しさん
2015/03/25(水) 18:23:14.55ID:0ab+jORs 敗北宣言乙www
269片山博文MZ ◆T6xkBnTXz7B0
2015/03/25(水) 20:18:57.15ID:0It7vtDM 宿題スレを荒らしてたのは俺じゃねーぜ。勘違いするな、Qzさん
270デフォルトの名無しさん
2015/03/25(水) 21:57:58.65ID:0ab+jORs 反応を待たずにレスをして何を焦っているのかな?www
271片山博文MZ ◆T6xkBnTXz7B0
2015/03/25(水) 22:43:10.00ID:0It7vtDM あの宿題はQzが居なくてもできるよ
272デフォルトの名無しさん
2015/03/25(水) 23:56:31.13ID:0ab+jORs ちゃんと"さん"をつけろよ若僧
273デフォルトの名無しさん
2015/03/26(木) 00:14:21.84ID:by79hXzC before: 宿題スレを荒らしてたのは俺じゃねーぜ。勘違いするな、Qzさん
v
after:あの宿題はQzが居なくてもできるよ
ウリのすぐバレる嘘ニダwww
v
after:あの宿題はQzが居なくてもできるよ
ウリのすぐバレる嘘ニダwww
274片山博文MZ ◆T6xkBnTXz7B0
2015/03/26(木) 01:50:45.61ID:H3hSXcrb 少なくともお下品な発言はしていない。
275デフォルトの名無しさん
2015/03/26(木) 02:31:26.49ID:KfdRsObn Qzさんだって下品な発言はしないし、大体お前のようにすぐバレる嘘をつくほどマヌケじゃない。
276片山博文MZ ◆T6xkBnTXz7B0
2015/03/29(日) 17:36:15.54ID:v4NwZmHf277片山博文MZ ◆T6xkBnTXz7B0
2015/03/29(日) 17:39:38.81ID:v4NwZmHf マクロ定数が正しく読み込めなければ、Win32 APIとは言えないので、
何とかがんばっているところ。
何とかがんばっているところ。
278片山博文MZ ◆T6xkBnTXz7B0
2015/04/01(水) 13:41:40.89ID:bTV2IHQs 2015年4月1日
Wonders API公開。
(動画) こんにちは、Wonders APIです
http://youtu.be/MSs4vto5u18
(Movie) Hello, this is Wonders API.
https://youtu.be/TvQZwOMPc8s
公式サイト
http://katahiromz.esy.es/wonders/
GitHubレポジトリ
https://github.com/katahiromz/DoWonders
Wonders API公開。
(動画) こんにちは、Wonders APIです
http://youtu.be/MSs4vto5u18
(Movie) Hello, this is Wonders API.
https://youtu.be/TvQZwOMPc8s
公式サイト
http://katahiromz.esy.es/wonders/
GitHubレポジトリ
https://github.com/katahiromz/DoWonders
279片山博文MZ ◆T6xkBnTXz7B0
2015/04/01(水) 13:55:05.94ID:bTV2IHQs いざ、第二ステージへ進め
280デフォルトの名無しさん
2015/04/03(金) 23:48:07.06ID:Nu5+KNg9 がんばれー
このスレから出てこないでね^^
このスレから出てこないでね^^
281デフォルトの名無しさん
2015/04/04(土) 00:02:02.48ID:vxW5Ds1X 47氏は崇拝されていたが、片山は軽蔑される
人格上の問題なのではないか?
人格上の問題なのではないか?
282デフォルトの名無しさん
2015/04/04(土) 18:35:11.56ID:AbppvLIl 片山ウザい氏ね
283デフォルトの名無しさん
2015/04/08(水) 00:10:56.21ID:yyUMrqSU こいつがあちことで出没するとスレが過疎るからやめてほしい
284片山博文MZ ◆T6xkBnTXz7B0
2015/04/08(水) 22:14:13.74ID:GMSIP3gO 約束のdeadlineは五月一日。それまでにWonders API Webを完成しないといけない。
285片山博文MZ ◆T6xkBnTXz7B0
2015/04/11(土) 21:01:51.44ID:ArDgKFW5 今、複合値とデータのバイナリーダンプのサポートに取り組
んでいるところ。明日、リリースの予定。
んでいるところ。明日、リリースの予定。
286片山博文MZ ◆T6xkBnTXz7B0
2015/04/12(日) 16:04:08.09ID:W8Ttx0kU287片山博文MZ ◆T6xkBnTXz7B0
2015/04/12(日) 17:44:44.25ID:Q9tFpytA288片山博文MZ ◆T6xkBnTXz7B0
2015/04/19(日) 19:24:52.19ID:Kws6M3Sz 株価が下がってる。動かない方がいいかな。
289片山博文MZ ◆T6xkBnTXz7B0
2015/05/02(土) 19:19:00.58ID:gAnCVUja Wonders APIをCodeReverseに取り込んで、CodeReverseのCパース箇所を破棄だ。
これでCodeReverseで型情報が使える。
GWにネットカフェが空いてないから、更新が遅くなるかも。
これでCodeReverseで型情報が使える。
GWにネットカフェが空いてないから、更新が遅くなるかも。
290片山博文MZ ◆T6xkBnTXz7B0
2015/05/03(日) 10:32:26.72ID:EPJ3sWKW よし、x86アセンブリを読みまくって勉強するぜ!
291片山博文MZ ◆T6xkBnTXz7B0
2015/05/05(火) 13:34:39.52ID:p1RbtT4Y CPU貸そうか?
292片山博文MZ ◆T6xkBnTXz7B0
2015/05/05(火) 17:34:29.60ID:p1RbtT4Y CPUレジスターや仮想的なアドレス空間の任意の抽象的な場所にアクセスするための全射なアドレスを文字列で表現する。
expressed address、略してexpr_addr。
expr_addrを解決すると未知の値、シンボル、もしくは具体的な値が得られる。
また、expr_addrから型の集合への写像を作ることができる。
expressed address、略してexpr_addr。
expr_addrを解決すると未知の値、シンボル、もしくは具体的な値が得られる。
また、expr_addrから型の集合への写像を作ることができる。
293片山博文MZ ◆T6xkBnTXz7B0
2015/05/05(火) 17:47:11.75ID:p1RbtT4Y 値の集合とシンボルの集合と型の集合が存在する。
値やシンボルはその格納場所(storage)によって類別できる。
格納場所は、スタック、ヒープ、レジスター、実行可能コード領域、その他のデータ領域などが挙げられる。
expr_addrから値やシンボルへの写像が存在する。
expr_addrから格納場所への写像が存在する。
値やシンボルはその格納場所(storage)によって類別できる。
格納場所は、スタック、ヒープ、レジスター、実行可能コード領域、その他のデータ領域などが挙げられる。
expr_addrから値やシンボルへの写像が存在する。
expr_addrから格納場所への写像が存在する。
294片山博文MZ ◆T6xkBnTXz7B0
2015/05/05(火) 18:06:31.59ID:p1RbtT4Y では、expr_addrの具体的な定義を決めよう。
(ea.1) expr_addrが数値ならばexpr_addrはexpr_addrが表す値の仮想アドレスを指し示す。
(ea.2) expr_addrがレジスターの名前ならばexpr_addrはそのレジスターの値が表す仮想アドレスを指す。
(ea.3) expr_addrが__cr.xxx[yy]といった文字列ならば、__cr.の後のxxxはストレージの名前であり、expr_addrはストレージxxxの(yy+1)バイト目を指し示す。
ここに、yyはexpr_addrである。
(ea.4) expr_addrに演算子+,-,*が含まれていれば、普通にexpr_addr上で足し算、引き算、掛け算を行う。
(ea.1) expr_addrが数値ならばexpr_addrはexpr_addrが表す値の仮想アドレスを指し示す。
(ea.2) expr_addrがレジスターの名前ならばexpr_addrはそのレジスターの値が表す仮想アドレスを指す。
(ea.3) expr_addrが__cr.xxx[yy]といった文字列ならば、__cr.の後のxxxはストレージの名前であり、expr_addrはストレージxxxの(yy+1)バイト目を指し示す。
ここに、yyはexpr_addrである。
(ea.4) expr_addrに演算子+,-,*が含まれていれば、普通にexpr_addr上で足し算、引き算、掛け算を行う。
295片山博文MZ ◆T6xkBnTXz7B0
2015/05/05(火) 18:49:16.52ID:p1RbtT4Y x86/x64のスタックは逆向きに成長するから、__cr.stackは特別扱いしなければならない。
296片山博文MZ ◆T6xkBnTXz7B0
2015/05/05(火) 19:59:48.40ID:p1RbtT4Y297片山博文MZ ◆T6xkBnTXz7B0
2015/05/06(水) 22:49:06.45ID:ROM3ZfOK コンパイラーなら型情報と構文に基づいてレジスター割り付けを行って、アセンブリを出力する。
逆コンパイラーはアセンブリから、オペランドと仮想アドレスに仮想的な値と
型を割り付け、それらを定数・変数・実引数・仮引数に抽象化し、式と構文を構築し、ソースを出力する。
逆コンパイラーはアセンブリから、オペランドと仮想アドレスに仮想的な値と
型を割り付け、それらを定数・変数・実引数・仮引数に抽象化し、式と構文を構築し、ソースを出力する。
298片山博文MZ ◆T6xkBnTXz7B0
2015/05/06(水) 23:19:53.32ID:ROM3ZfOK callの引数は関数アドレスであるから、それがAPI関数であれば、実引数や戻り値に型情報を付加できる。
代入においては同一の値になるオペランドが現れる。このとき、型も同一になる可能性が高い。
このようにオペランドや仮想アドレスやレジスターに型情報を再帰的に付加していく。
代入においては同一の値になるオペランドが現れる。このとき、型も同一になる可能性が高い。
このようにオペランドや仮想アドレスやレジスターに型情報を再帰的に付加していく。
299片山博文MZ ◆T6xkBnTXz7B0
2015/05/06(水) 23:32:41.79ID:ROM3ZfOK 仮想アドレス空間の状態は、プログラムの進行に従って遷移していく。
状態が変わる様子を再現するには、仮想マシンを作って動かしてみるのが、一番合理的だ。
状態が変わる様子を再現するには、仮想マシンを作って動かしてみるのが、一番合理的だ。
300片山博文MZ ◆T6xkBnTXz7B0
2015/05/06(水) 23:42:33.96ID:ROM3ZfOK 仮想マシンを動かすなら、アセンブリか中間言語のどちらのレイヤーで動かすべきか?
中間言語で動かすならば、アセンブリの情報をほとんどすべて中間言語に移行しなければならない。
中間言語で動かすならば、アセンブリの情報をほとんどすべて中間言語に移行しなければならない。
301片山博文MZ ◆T6xkBnTXz7B0
2015/05/07(木) 14:46:37.77ID:Eo5kGFlR GW明けて、ひさしぶりに更新。
CodeReverse
https://github.com/katahiromz/CodeReverse
Wonders API
http://katahiromz.esy.es/wonders/
CodeReverse
https://github.com/katahiromz/CodeReverse
Wonders API
http://katahiromz.esy.es/wonders/
302片山博文MZ ◆T6xkBnTXz7B0
2015/05/08(金) 19:46:46.08ID://zzhYF7 両方のレイヤーでやれってか? なら、2種類の仮想マシンを作らにゃあかんべえ。んだんだ。
303片山博文MZ ◆T6xkBnTXz7B0
2015/05/09(土) 02:41:25.84ID:IBcmzD7P 要件定義はもっと数学的に。。。
304片山博文MZ ◆T6xkBnTXz7B0
2015/05/09(土) 19:04:28.04ID:IBcmzD7P 要件定義をよく考えると、中間言語パーサーは不必要と判断した。
305片山博文MZ ◆T6xkBnTXz7B0
2015/05/10(日) 15:22:46.73ID:DYHSUNsH いや、中間言語パーサーは必要。パーサーがなければ、アセンブリのでっかいアーキテクチャを
ハードコーディングしなきゃいけなくなる。恐らく中間言語はアトリビュートベースになる。
ハードコーディングしなきゃいけなくなる。恐らく中間言語はアトリビュートベースになる。
306片山博文MZ ◆T6xkBnTXz7B0
2015/05/10(日) 15:52:17.96ID:DYHSUNsH 中間言語では、新しい値ができるたびに明示的にそのインスタンスを宣言する。
インスタンスは型情報、入出力に関する情報、値やアドレスを表す式などの属性を持つ。
インスタンスは型情報、入出力に関する情報、値やアドレスを表す式などの属性を持つ。
307片山博文MZ ◆T6xkBnTXz7B0
2015/05/10(日) 23:19:17.50ID:DYHSUNsH アーキテクチャを中間言語のデータで表現しないといけない。
中間言語の設計も完成していないのに。。。!
中間言語の設計も完成していないのに。。。!
308片山博文MZ社外取補 ◆T6xkBnTXz7B0
2015/05/15(金) 19:04:30.75ID:hBLf1mma たぶん、値を宣言してそれらに変数を割り当ててくという考え方は間違ってない。
これでうまく行きそうだ。
これでうまく行きそうだ。
309片山博文MZ ◆T6xkBnTXz7B0
2015/05/17(日) 16:50:06.36ID:9xJgx9ER https://github.com/katahiromz/CodeReverse
ファイルarch_x32.datを追加した。
このファイルにx86アセンブリから中間コードへの変換方法を記述する。
不完全。
ファイルarch_x32.datを追加した。
このファイルにx86アセンブリから中間コードへの変換方法を記述する。
不完全。
310片山博文MZ ◆T6xkBnTXz7B0
2015/05/18(月) 23:19:00.85ID:GE/vKBW3 我に力と自由時間を与えたまえ!(画面がパパっと2回点滅)
311片山博文MZ ◆T6xkBnTXz7B0
2015/05/21(木) 17:40:24.92ID:Dn/bDwTc きれいなデータ作るの大変だ。。。
312片山博文MZ ◆T6xkBnTXz7B0
2015/05/24(日) 10:54:19.49ID:DJktPktd313片山博文MZ ◆T6xkBnTXz7B0
2015/05/24(日) 11:08:32.59ID:DJktPktd トップにarch_x86.dat/arch_x64.datという二つのファイルを用意したから、
これを元にして、アセンブリを中間言語に逐次翻訳する。
翻訳方法は、基本的にパターンマッチを基本とする。
これを元にして、アセンブリを中間言語に逐次翻訳する。
翻訳方法は、基本的にパターンマッチを基本とする。
314片山博文MZ ◆T6xkBnTXz7B0
2015/05/24(日) 17:02:17.64ID:tHPLTcxB 翻訳の戦略について。
まず、前述の翻訳辞書データを読み込み、パースする。
次に全体を走査して、邪魔者を消す。nopやmov ax,axやlea eax,[eax]の
ような、人間にとって無意味な命令を全部取り除く。
さらに全体を走査して、技巧的な命令を「標準語」に直す。
さらにさらに逐次的にパターンマッチしたものを次々と翻訳していく。
この戦略がうまく行けば、アセンブリはすべて中間言語に翻訳される。
まず、前述の翻訳辞書データを読み込み、パースする。
次に全体を走査して、邪魔者を消す。nopやmov ax,axやlea eax,[eax]の
ような、人間にとって無意味な命令を全部取り除く。
さらに全体を走査して、技巧的な命令を「標準語」に直す。
さらにさらに逐次的にパターンマッチしたものを次々と翻訳していく。
この戦略がうまく行けば、アセンブリはすべて中間言語に翻訳される。
315片山博文MZ ◆T6xkBnTXz7B0
2015/05/25(月) 13:43:46.90ID:IMA5vj+0 https://github.com/katahiromz/CodeReverse
流れグラフができた。リーダーのみ、ラベルを出力するようにした。
CR_ICode32, CR_ICode64を追加した。中間言語の定義とパースに移る。
流れグラフができた。リーダーのみ、ラベルを出力するようにした。
CR_ICode32, CR_ICode64を追加した。中間言語の定義とパースに移る。
316片山博文MZ ◆T6xkBnTXz7B0
2015/05/25(月) 14:34:58.39ID:IMA5vj+0 こういう翻訳処理の過程は、「ステージ」という考え方でとらえるとわかりやすい。
たとえば、ステージ0が逆アセンブルしていない状態。
ステージ1が逆アセンブルした状態。ステージ2が中間言語に翻訳された状態。
ステージ0→ステージ1→ステージ2→...
逆アセンブルしていないコードが現れた場合などでは、その部分ではステージを戻って処理しないといけない。
たとえば、ステージ0が逆アセンブルしていない状態。
ステージ1が逆アセンブルした状態。ステージ2が中間言語に翻訳された状態。
ステージ0→ステージ1→ステージ2→...
逆アセンブルしていないコードが現れた場合などでは、その部分ではステージを戻って処理しないといけない。
317片山博文MZ ◆T6xkBnTXz7B0
2015/05/25(月) 15:12:05.33ID:IMA5vj+0 https://github.com/katahiromz/CodeReverse
>>316の考え方に基づいて、CR_DecompInfo32::GetFuncStageを追加した。
DisAsm32の前処理をPrepareForDisAsm32に分離した。
>>316の考え方に基づいて、CR_DecompInfo32::GetFuncStageを追加した。
DisAsm32の前処理をPrepareForDisAsm32に分離した。
318片山博文MZ ◆T6xkBnTXz7B0
2015/05/25(月) 17:28:38.36ID:LQzNccs7 本格的なプログラム言語の設計は初めてだが、やれることはやってみよう。
319片山博文MZ ◆T6xkBnTXz7B0
2015/05/26(火) 20:34:04.58ID:4TU/edTg アドレッシングの複雑性を乗り越えてオペランドをパターンマッチするんだ!!!
320デフォルトの名無しさん
2015/05/29(金) 14:46:50.24ID:08TmNpAe 中間状態をベタテキストで表現する気か
321片山博文MZ ◆T6xkBnTXz7B0
2015/05/29(金) 14:59:26.15ID:huri9Ebb https://github.com/katahiromz/CodeReverse
Coding.cppにCrParamPatternMatchを追加した。
CrParamPatternMatchはパラメーターの抽象化されたコードの
パターンマッチを行う重要な関数だ。
>>320 仮想化のため。
Coding.cppにCrParamPatternMatchを追加した。
CrParamPatternMatchはパラメーターの抽象化されたコードの
パターンマッチを行う重要な関数だ。
>>320 仮想化のため。
322片山博文MZ ◆T6xkBnTXz7B0
2015/05/31(日) 13:09:28.79ID:7/EzM6AH https://github.com/katahiromz/CodeReverse
CodeReverse.hをCommon.hに改名。Testing.cppを追加。
Testing.cppで$0, $1, ...のパターンマッチを実証。
中間言語の名前がiCodeに決まった。これからiCodeを具体的に設計する。
CodeReverse.hをCommon.hに改名。Testing.cppを追加。
Testing.cppで$0, $1, ...のパターンマッチを実証。
中間言語の名前がiCodeに決まった。これからiCodeを具体的に設計する。
323片山博文MZ ◆T6xkBnTXz7B0
2015/05/31(日) 13:46:34.69ID:7/EzM6AH324片山博文MZ ◆T6xkBnTXz7B0
2015/06/21(日) 00:15:52.18ID:szDYpocA Java to C++ converter面白そう
ちょっと中断して読んでみるよ
ちょっと中断して読んでみるよ
325片山博文MZ ◆T6xkBnTXz7B0
2015/06/21(日) 00:30:07.35ID:szDYpocA GitHubにマルチ環境の要望があるが、アーキテクチャを仮想化・プラグイン化するのは面倒くさ。
Windows .exe以外のフォーマット知らないし。LinuxやMacって何? 今はexploitが欲しいだけ。
Windows .exe以外のフォーマット知らないし。LinuxやMacって何? 今はexploitが欲しいだけ。
326片山博文MZ ◆T6xkBnTXz7B0
2015/06/21(日) 00:38:25.90ID:szDYpocA 分かったよ、勉強すりゃあいいんだろ? でも真夜中は監視役が居るからダメ。
パソコンはインターネットにつながってないし、家の構造が昭和時代だからな。
本当は24時間パソコンしたいんだ。
パソコンはインターネットにつながってないし、家の構造が昭和時代だからな。
本当は24時間パソコンしたいんだ。
327デフォルトの名無しさん
2015/06/22(月) 09:59:26.27ID:Cd6p9ZPV 昔LightConeとかいう基地外がいたが片山とよく似ているな
スレと関係ない雑談や脈絡もない妄言とか。
スレと関係ない雑談や脈絡もない妄言とか。
328デフォルトの名無しさん
2015/06/24(水) 06:25:31.35ID:B9zFFoB0 日記スレ
329デフォルトの名無しさん
2015/07/21(火) 01:49:23.11ID:PRXZAEwH catcher
330片山博文MZ ◆T6xkBnTXz7B0
2015/07/31(金) 16:19:13.79ID:VnmYQE5l 何か、forkやstarが増えてきたぞ。。。
やらないとまずいかな。。。
やらないとまずいかな。。。
331デフォルトの名無しさん
2015/08/11(火) 23:30:28.66ID:3zaQ4vWk 逆コンパイルって解が無数にあるから
例えばナイーブな逆コンパイルは、Cでアセンブラをエミュレーションすることだし
他にもインライン展開されたコードは展開後として逆コンパイルするのか
展開前として逆コンパイルするのかとか
だからなんらかの人間にとっての読みやすさを定義して
無数の解の中でなるべく読みやすい解をどれか一つ選ぶっていう風にするのが
方向性だと思った
例えばナイーブな逆コンパイルは、Cでアセンブラをエミュレーションすることだし
他にもインライン展開されたコードは展開後として逆コンパイルするのか
展開前として逆コンパイルするのかとか
だからなんらかの人間にとっての読みやすさを定義して
無数の解の中でなるべく読みやすい解をどれか一つ選ぶっていう風にするのが
方向性だと思った
333デフォルトの名無しさん
2015/09/17(木) 22:00:14.74ID:8Go7kMps catcher
334デフォルトの名無しさん
2015/09/28(月) 23:38:38.61ID:Rm5LrJSE catcher
335デフォルトの名無しさん
2015/10/21(水) 22:40:13.55ID:jRXObvXq catcher
336デフォルトの名無しさん
2015/12/04(金) 14:02:32.26ID:Vm+g5Kgg catcher
337片山博文MZ ◆T6xkBnTXz7B0
2016/01/14(木) 14:17:10.78ID:H3jYOyT9 VeySicKの開発が一段落ついたのでCodeReverseの開発を再開するよ。
ひとまずゼロからCコンパイラを作ってみる。
ひとまずゼロからCコンパイラを作ってみる。
338片山博文MZ ◆T6xkBnTXz7B0
2016/01/14(木) 14:20:29.77ID:H3jYOyT9 こんなことなら、大学でコンパイラの作り方を勉強しとけばよかった。
339片山博文MZ ◆T6xkBnTXz7B0
2016/01/14(木) 19:54:25.45ID:H3jYOyT9 きつねさんのLLVMをAmazonで買ったよ! (もちろん中古)
340片山博文MZ ◆T6xkBnTXz7B0
2016/01/18(月) 17:06:17.14ID:roZ5xF5Q LLVMと.NETを組み合わせて何か面白いことをやれって言われてる。
341片山博文MZ ◆T6xkBnTXz7B0
2016/02/03(水) 19:01:53.20ID:PDk33kNH いずれにしても、だれかが教師になって、読みやすいコードを出力するための
教育を行わないとまともな逆コンパイラは完成しない。
さらには教育にはコミュニケーションが必要。
教育を行わないとまともな逆コンパイラは完成しない。
さらには教育にはコミュニケーションが必要。
342片山博文MZ ◆T6xkBnTXz7B0
2016/02/03(水) 19:21:23.48ID:PDk33kNH 逆コンパイルを数学的に考えると、
ソースコードからコンパイル結果への変換器「コンパイラ」の逆変換器を
求める問題になる。教育を行うなら、ソースコードと、実際にコンパイルした結果の対応を
学習させることになる。その対応は情報量が少ないことが望ましい。
ソースコードからコンパイル結果への変換器「コンパイラ」の逆変換器を
求める問題になる。教育を行うなら、ソースコードと、実際にコンパイルした結果の対応を
学習させることになる。その対応は情報量が少ないことが望ましい。
343片山博文MZ ◆T6xkBnTXz7B0
2016/02/03(水) 19:43:38.07ID:PDk33kNH 大きな変換器はより小さな変換器に分解される。
LLVMの言葉で言えば、変換器はpassであり、コンパイルはpassの合成である。
であるから、これから必要な作業は、1つひとつのpassの逆変換器を
求めることである。
LLVMの言葉で言えば、変換器はpassであり、コンパイルはpassの合成である。
であるから、これから必要な作業は、1つひとつのpassの逆変換器を
求めることである。
344片山博文MZ ◆T6xkBnTXz7B0
2016/02/03(水) 21:14:45.78ID:PDk33kNH 病気は我が精神を思索の森に誘ってくれる。
健全であれば気付かない事象にも出会うことができる。
今年のうちに逆コンパイラを作らねばならない。
たとえそれが世界を滅ぼす魔法でも完成させなければならない。
ボスの命令は絶対だ。
健全であれば気付かない事象にも出会うことができる。
今年のうちに逆コンパイラを作らねばならない。
たとえそれが世界を滅ぼす魔法でも完成させなければならない。
ボスの命令は絶対だ。
345片山博文MZ ◆T6xkBnTXz7B0
2016/02/20(土) 20:57:27.23ID:md57KSoZ clangのソースを読み始めたよ。
CMakeの使い方を勉強しないといけない。
examplesのPrintFunctionNamesを改造してみようっと。
CMakeの使い方を勉強しないといけない。
examplesのPrintFunctionNamesを改造してみようっと。
346片山博文MZ ◆T6xkBnTXz7B0
2016/02/21(日) 22:29:13.22ID:mZ9I4pVL CMakeをインストール。CMakeの基本的な使い方を覚えた。
llvmを仮想Ubuntuにapt-getでインストールして、ターンエンドだ。
llvmを仮想Ubuntuにapt-getでインストールして、ターンエンドだ。
347片山博文MZ ◆T6xkBnTXz7B0
2016/03/02(水) 22:55:08.79ID:v5tMoIR7 CMakeの使い方を勉強しながらテンプレートプロジェクトをいくつか
作成して、きつねさんを参考にLLVMのコマンドを何度か試してターンエンドだ。
作成して、きつねさんを参考にLLVMのコマンドを何度か試してターンエンドだ。
348片山博文MZ ◆T6xkBnTXz7B0
2016/03/05(土) 14:29:14.42ID:8Tx4+NgQ <llvm/IR/Type.h> 型
<llvm/IR/TypeBuilder.h> 型構築器
<llvm/IR/Constant.h> <llvm/IR/Constants.h> 定数
<llvm/IR/IRBuilder.h> IR構築器
<llvm/IR/Module.h> モジュール
<llvm/IR/Function.h> 関数
<llvm/IR/BasicBlock.h> 基本ブロック
<llvm/ADT/StringRef.h> 文字列参照
<llvm/ADT/StringMap.h> 文字列マップ
<llvm/MC/MCExpr.h> MC表現
<llvm/MC/MCInst.h> MC命令
<llvm/MC/MCValue.h> MC値
<llvm/MC/MCAssembler.h> MCアセンブラ
<llvm/MC/MCDisassembler.h> MC逆アセンブラ
<llvm/Support/MemoryBuffer.h> メモリバッファ
<llvm/Support/ErrorOr.h> エラーまたは
<llvm/Support/raw_ostream.h> 生出力ストリーム
<llvm/IR/TypeBuilder.h> 型構築器
<llvm/IR/Constant.h> <llvm/IR/Constants.h> 定数
<llvm/IR/IRBuilder.h> IR構築器
<llvm/IR/Module.h> モジュール
<llvm/IR/Function.h> 関数
<llvm/IR/BasicBlock.h> 基本ブロック
<llvm/ADT/StringRef.h> 文字列参照
<llvm/ADT/StringMap.h> 文字列マップ
<llvm/MC/MCExpr.h> MC表現
<llvm/MC/MCInst.h> MC命令
<llvm/MC/MCValue.h> MC値
<llvm/MC/MCAssembler.h> MCアセンブラ
<llvm/MC/MCDisassembler.h> MC逆アセンブラ
<llvm/Support/MemoryBuffer.h> メモリバッファ
<llvm/Support/ErrorOr.h> エラーまたは
<llvm/Support/raw_ostream.h> 生出力ストリーム
349片山博文MZ ◆T6xkBnTXz7B0
2016/03/05(土) 19:46:45.29ID:niBmwPNn DraperさんのFractureを解析してみるみる。。。
350片山博文MZ ◆T6xkBnTXz7B0
2016/03/07(月) 15:59:21.59ID:vq5fVXSL きつねさんの本は少々古く、最新版ではコマンドラインとヘッダーが
多少変わっているようだ。最新版に合わせないといけない。
また、MinGWでは動かない機能もあるようだ。
多少変わっているようだ。最新版に合わせないといけない。
また、MinGWでは動かない機能もあるようだ。
351片山博文MZ ◆T6xkBnTXz7B0
2016/03/08(火) 01:37:31.85ID:dCW2/Xzy $ opt -help > help.txt
多種多様なPassがあるぞ。まずはこれを解析してみるか。
MinGWで動かなかった分はCygwinで試すぞ。
多種多様なPassがあるぞ。まずはこれを解析してみるか。
MinGWで動かなかった分はCygwinで試すぞ。
352片山博文MZ ◆T6xkBnTXz7B0
2016/03/10(木) 19:08:02.83ID:xtkhTFvc 最新の仮想Ubuntu32bitと64bitをVMwareにインストール。
さらにclang-3.7とllvm-3.7をそれぞれにインストールして
俺のターンは終わりだ。
さらにclang-3.7とllvm-3.7をそれぞれにインストールして
俺のターンは終わりだ。
353片山博文MZ ◆T6xkBnTXz7B0
2016/03/10(木) 19:18:26.45ID:xtkhTFvc LLVMは型情報を完全には保持していないようだ。
Win32ではLONGとINTは同じサイズだが、それらのポインタ型は厳格に区別される。
しかしLLVM IRではどちらもi32となる。
つまり、LLVMやClangで構造体を読み込みその型をダンプしたとしても、
コンパイルできる代物にはならない。これでは逆コンパイラには
役に立たないのではないか? ここまで何か間違いがあれば、ご指摘願う。
Win32ではLONGとINTは同じサイズだが、それらのポインタ型は厳格に区別される。
しかしLLVM IRではどちらもi32となる。
つまり、LLVMやClangで構造体を読み込みその型をダンプしたとしても、
コンパイルできる代物にはならない。これでは逆コンパイラには
役に立たないのではないか? ここまで何か間違いがあれば、ご指摘願う。
354片山博文MZ ◆T6xkBnTXz7B0
2016/03/10(木) 19:46:26.45ID:xtkhTFvc Clangでは区別できてるんだから、LLVM IRよりも上位で保持しているはず。ならば、Clangで
構造体などの型情報をLLVM IRの上位でどのように扱っているかを調査しないといけないぞ。
構造体などの型情報をLLVM IRの上位でどのように扱っているかを調査しないといけないぞ。
355片山博文MZ ◆T6xkBnTXz7B0
2016/03/12(土) 22:12:12.37ID:PAxzfn3Q だいぶ解析が進んで来た。
おそらくキーワードは
clang::CompilerInstance,clang::Sema,clang::ASTContext,clang::Type
だろう。clangも大変再利用しやすい模範的なデザインになっており、
これらを組み合わせればclangの改造版が比較的容易に作れると思われる。
おそらくキーワードは
clang::CompilerInstance,clang::Sema,clang::ASTContext,clang::Type
だろう。clangも大変再利用しやすい模範的なデザインになっており、
これらを組み合わせればclangの改造版が比較的容易に作れると思われる。
356片山博文MZ ◆lx245xLQxvF1
2016/03/14(月) 15:23:13.72ID:+duuA6fB Clang-tutorialのmakefileのllvm-configをllvm-config-3.6に変えてメイクしてみた。
tutorial1.o: 関数 `main' 内:
/mnt/hgfs/cc/LLVM/Clang-tutorial/tutorial1.cpp:53: `llvm::sys::getDefaultTargetTriple()' に対する定義されていない参照です
なぜだ。。。分からぬ。
tutorial1.o: 関数 `main' 内:
/mnt/hgfs/cc/LLVM/Clang-tutorial/tutorial1.cpp:53: `llvm::sys::getDefaultTargetTriple()' に対する定義されていない参照です
なぜだ。。。分からぬ。
357片山博文MZ ◆T6xkBnTXz7B0
2016/03/14(月) 16:17:28.03ID:+duuA6fB いくら優れたライブラリでも、動かないと意味ない。。。
最新版をビルドしないといけないのか。。。
LLVMとClangのビルド、めっちゃ時間かかりそう。。。
最新版をビルドしないといけないのか。。。
LLVMとClangのビルド、めっちゃ時間かかりそう。。。
358片山博文MZ ◆T6xkBnTXz7B0
2016/03/15(火) 22:21:10.64ID:zLB+iwEH 仮想Ubuntuのディスク容量不足でビルド失敗。35GBくらいは必要か。
最初からやり直し。VMwareよりもVirtualBoxの方が使い易そうだ。
最初からやり直し。VMwareよりもVirtualBoxの方が使い易そうだ。
359片山博文MZ ◆T6xkBnTXz7B0
2016/03/24(木) 23:29:54.57ID:YnxOCpos VirtualBox上の仮想UbuntuでLLVM+Clangのビルドに成功した。
これでまずはスタートラインに立てた。可能ならば後で公開する。
これでまずはスタートラインに立てた。可能ならば後で公開する。
360片山博文MZ ◆T6xkBnTXz7B0
2016/03/24(木) 23:57:51.64ID:YnxOCpos 仮想環境のためか、ビルドに五日間かかった。電気代は高い請求額が来るだろう。
現在のオッズは低いが地道に頑張る。
現在のオッズは低いが地道に頑張る。
361片山博文MZ ◆T6xkBnTXz7B0
2016/03/25(金) 17:05:52.28ID:C4e13KV/ Ubuntu 14.04.4 LTS (64-bit)をインストール。ディスク容量50GB以上・メモリ2GB以上。
端末およびGhest Additions(仮想の場合のみ) インストール。
メモリが少ないときは、次のようにスワップ確保。
$ sudo dd if=/dev/zero of=/swap bs=400M count=16
$ sudo mkswap /swap
$ sudo swapon /swap
$ sudo gedit /etc/fstab
「/swap swap swap defaults 0 0」の行を最後に追加。
$ cat /proc/swaps
$ sudo apt update
$ sudo apt install build-essential
$ sudo apt install linux-headers-$(uname -r)
$ sudo apt install make
$ sudo apt install automake
$ sudo apt install cmake
$ sudo apt install subversion
$ sudo apt install gdb
$ sudo apt install perl
$ sudo apt install libtool
$ sudo apt install libncurses5-dev
$ sudo apt install valgrind
$ sudo apt install zlib1g-dev
$ sudo apt install libedit-dev
$ sudo apt install texinfo
$ sudo apt install python
$ sudo apt upgrade
端末およびGhest Additions(仮想の場合のみ) インストール。
メモリが少ないときは、次のようにスワップ確保。
$ sudo dd if=/dev/zero of=/swap bs=400M count=16
$ sudo mkswap /swap
$ sudo swapon /swap
$ sudo gedit /etc/fstab
「/swap swap swap defaults 0 0」の行を最後に追加。
$ cat /proc/swaps
$ sudo apt update
$ sudo apt install build-essential
$ sudo apt install linux-headers-$(uname -r)
$ sudo apt install make
$ sudo apt install automake
$ sudo apt install cmake
$ sudo apt install subversion
$ sudo apt install gdb
$ sudo apt install perl
$ sudo apt install libtool
$ sudo apt install libncurses5-dev
$ sudo apt install valgrind
$ sudo apt install zlib1g-dev
$ sudo apt install libedit-dev
$ sudo apt install texinfo
$ sudo apt install python
$ sudo apt upgrade
362片山博文MZ ◆T6xkBnTXz7B0
2016/03/25(金) 17:06:39.06ID:C4e13KV/ $ cd ~
$ svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
$ cd llvm/tools
$ svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
$ cd ../projects
$ svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt
$ svn co http://llvm.org/svn/llvm-project/openmp/trunk openmp
$ svn co http://llvm.org/svn/llvm-project/libcxx/trunk libcxx
$ svn co http://llvm.org/svn/llvm-project/libcxxabi/trunk libcxxabi
//$ svn co http://llvm.org/svn/llvm-project/test-suite/trunk test-suite
//$ sudo apt uninstall llvm clang llvm-3.6 clang-3.6 llvm-3.7 clang-3.7
$ cd ~
$ mkdir llvm-build
$ cd llvm-build
$ cmake -G "Unix Makefiles" ../llvm
$ make -j1
$ svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
$ cd llvm/tools
$ svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
$ cd ../projects
$ svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt
$ svn co http://llvm.org/svn/llvm-project/openmp/trunk openmp
$ svn co http://llvm.org/svn/llvm-project/libcxx/trunk libcxx
$ svn co http://llvm.org/svn/llvm-project/libcxxabi/trunk libcxxabi
//$ svn co http://llvm.org/svn/llvm-project/test-suite/trunk test-suite
//$ sudo apt uninstall llvm clang llvm-3.6 clang-3.6 llvm-3.7 clang-3.7
$ cd ~
$ mkdir llvm-build
$ cd llvm-build
$ cmake -G "Unix Makefiles" ../llvm
$ make -j1
363片山博文MZ ◆T6xkBnTXz7B0
2016/03/25(金) 23:58:54.73ID:ir49Z4lH >>361
訂正。ビルド&インストール成功のためにはディスクは100GB以上、
メモリーは8GB以上必要と思われる。
メモリーが充分あればスワップはデフォルトでOK。
ビルド時間を短くしたければ実機でのビルド推奨。
訂正。ビルド&インストール成功のためにはディスクは100GB以上、
メモリーは8GB以上必要と思われる。
メモリーが充分あればスワップはデフォルトでOK。
ビルド時間を短くしたければ実機でのビルド推奨。
364デフォルトの名無しさん
2016/03/26(土) 00:18:12.85ID:tYRw55R3 EXEファイル全般でやろうとしているの?
まずバイナリがどの開発環境で作ったのかを固定しないと。
どちらにしろ、理論上絶望的だから逆アセンブルはできても逆コンパイルは無理だよ。
JavaのクラスファイルもJavaでコンパイルされていたら逆コンパイラでほぼ完璧なソースをだせるけども、
LLJVMを使ったC言語がソースのLLVMからJavaクラスファイルに変換した物は逆コンパイルしても、何やっているのかよく分からない回りくどいJavaソースしか出て来ない。
同じJavaクラスファイルという中間言語形式であっても、開発言語が違えば逆コンパイルは期待通りのものにはならない。
それでもJavaやC#の中間言語ファイルは情報をいっぱい持っているから逆コンパイルしやすい。
EXEで実用的な逆コンパイラとか無理無理。
時間の無駄。他のことしたほうがいいよ。
絶対にできないから。
まずバイナリがどの開発環境で作ったのかを固定しないと。
どちらにしろ、理論上絶望的だから逆アセンブルはできても逆コンパイルは無理だよ。
JavaのクラスファイルもJavaでコンパイルされていたら逆コンパイラでほぼ完璧なソースをだせるけども、
LLJVMを使ったC言語がソースのLLVMからJavaクラスファイルに変換した物は逆コンパイルしても、何やっているのかよく分からない回りくどいJavaソースしか出て来ない。
同じJavaクラスファイルという中間言語形式であっても、開発言語が違えば逆コンパイルは期待通りのものにはならない。
それでもJavaやC#の中間言語ファイルは情報をいっぱい持っているから逆コンパイルしやすい。
EXEで実用的な逆コンパイラとか無理無理。
時間の無駄。他のことしたほうがいいよ。
絶対にできないから。
365片山博文MZ ◆T6xkBnTXz7B0
2016/03/27(日) 23:17:17.79ID:LtbWwOOV >>364
勝算は5%ほどある。型情報抽出と型推論を実現する策略を練っているところだ。
LVMでディスクを100GBに拡張。LLVM+Clangインストール成功。
VirtualBox仮想アプライアンスのエクスポートを完了して、俺のターンエンドだ。
勝算は5%ほどある。型情報抽出と型推論を実現する策略を練っているところだ。
LVMでディスクを100GBに拡張。LLVM+Clangインストール成功。
VirtualBox仮想アプライアンスのエクスポートを完了して、俺のターンエンドだ。
366デフォルトの名無しさん
2016/03/28(月) 00:07:35.29ID:QZ3CUIqY >>365
LLVMを逆コンパイルするソフトを作ろうとしているの?
LLVMを逆コンパイルするソフトを作ろうとしているの?
367片山博文MZ ◆T6xkBnTXz7B0
2016/04/09(土) 18:01:49.16ID:1rUso06b 臨時の仕事が入った。中断する。
368片山博文MZ ◆T6xkBnTXz7B0
2016/04/19(火) 20:05:26.73ID:QQhqd517 IMEの開発が正式に決まった。逆コンパイラの開発は、
IMEの開発が終わるまでお預けとなる。しばしお待ちを。
IMEの開発が終わるまでお預けとなる。しばしお待ちを。
369デフォルトの名無しさん
2016/05/01(日) 16:48:07.27ID:Ej3dzybx catcher
370デフォルトの名無しさん
2016/05/01(日) 17:16:58.92ID:tKi6j9CT 匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al
ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw
The Covenant Project
概要
Covenantは、純粋P2Pのファイル共有ソフトです
目的
インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します
特徴
Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)
接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
1@
BitTorrentがオープンソースで開発されています
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al
ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw
The Covenant Project
概要
Covenantは、純粋P2Pのファイル共有ソフトです
目的
インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します
特徴
Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)
接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
1@
371デフォルトの名無しさん
2016/05/03(火) 22:14:50.99ID:0ryiHSlg なんかすごいな
プロの人なのかな?
プロの人なのかな?
372デフォルトの名無しさん
2016/06/04(土) 20:27:13.06ID:9azu721e catcher
373デフォルトの名無しさん
2016/07/07(木) 21:15:30.42ID:7FmYJwv7 catcher
374デフォルトの名無しさん
2016/08/01(月) 21:06:25.15ID:ltowomRu catcher
375デフォルトの名無しさん
2016/09/01(木) 11:42:26.12ID:Hkb7T/2S catcher
376片山博文MZ ◆T6xkBnTXz7B0
2016/10/01(土) 02:07:01.64ID:Ja0BXeAr RECという優れた逆コンパイラがあるので、CodeReverseにはもはや存在価値がない。
よって、このスレは 糸冬 了 し ま す 。
皆様、有難う御座いました。再利用可。
◆◆◆スレッド終了◆◆◆
よって、このスレは 糸冬 了 し ま す 。
皆様、有難う御座いました。再利用可。
◆◆◆スレッド終了◆◆◆
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 [蚤の市★]
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★4 [Hitzeschleier★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ [蚤の市★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 自民・麻生太郎副総裁 石破政権の1年は「どよーん」 高市政権発足で「何となく明るくなった」「世の中のことが決まり動いている」★2 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★7
- トランプ、G7に代わるcore 5を発表 [805596214]
- ハロワって客層悪すぎるだろwwwwwwwwwwwww
- オナニーするか😔
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
- VIPスクリプトだらけでワロタwwwwwwwww
