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.34312片山博文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にはもはや存在価値がない。
よって、このスレは 糸冬 了 し ま す 。
皆様、有難う御座いました。再利用可。
◆◆◆スレッド終了◆◆◆
よって、このスレは 糸冬 了 し ま す 。
皆様、有難う御座いました。再利用可。
◆◆◆スレッド終了◆◆◆
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】Jリーグ観客動員が歴代最多を更新 初の「1300万人超え」達成…平均入場者数も史上最高に [尺アジ★]
- 女性天皇「賛成」69%、将来の皇位継承「不安」68%…読売世論調査 ★3 [蚤の市★]
- サナエノミクスについて力説 積極的な財政出動で「所得増える 消費マインド上がる 税収増える」片山さつき財務大臣 ★3 [少考さん★]
- 日中対立「着地点」見えず 中国、他国にも圧力の過去―関係悪化から1カ月 [蚤の市★]
- 【芸能】粗品、日本テレビに苦言 客のレベルが「かなり低い。あいつら分かってない」「拍手したいだけやねん」 [冬月記者★]
- 日本の英語力96位から動かず AI評価で可視化された「読めるが話せない」の正体 (EF EPI 2025) ★2 [少考さん★]
- このお🏡は好都合に未完成🦖
- 00:00:00.000
- 【朗報】イーロン・マスク「AIとロボットで誰も働かなくて良くなる。全員ニートで金銭も税金もないパラダイスみてぇな国を作りてえ」 [347751896]
- 世界一の運動神経を持つけど身長140センチの男がやるべきスポーツ
- 伊東市の元市長、高市が激励メッセージを送り自民党県連が全面支援したのに敗北 [931948549]
- 【悲報】米山隆一と室井佑月、ガチで離婚しそうwwwwwwwwwwwwwwwwwwww [802034645]
