バイナリからソースを解析できるソフト

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
誰か持ってませんか?
βακα..._φ(゚∀゚ )アヒャ
32:03/05/10 18:26
         ∩ ∩ 
        〜| ∪ |         (´´  
        ヘノ  ノ       (´⌒(´  
       ((つ ノ⊃≡≡≡(´⌒;;;≡≡≡
         ̄ ̄ ̄(´⌒(´⌒;;

                  ズザーーーーーッ
ドゥーン!
5デフォルトの名無しさん:03/05/10 18:26
   ∧∧
   /⌒ヽ)
  i三 ∪ アノォ……
 ○三 |    
  (/~∪
  三三
 三三
三三
6デフォルトの名無しさん:03/05/10 18:27
下さいよ
7デフォルトの名無しさん:03/05/10 18:28
ねえ
8デフォルトの名無しさん:03/05/10 18:29
 \今だ、7GETォォォ!!/
      _______
      | .___ ..|  |
      | .|7| |7|  |  |
   ∧ ∧ .| |.!!| |  |  |
    (  ,,) .| | | |  |  |
   /  つ ̄ ̄ ̄  | ..::|
 〜(__). °°° | ::::|
   |__|  ̄ ̄ ̄ ̄ |..::::::|
    ||          .|::::::::|
    ||  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
9デフォルトの名無しさん:03/05/10 18:29
      _______
      | .___ ..|  |
      | .|7|.i |7|  |  (´´
   ∧ ∧ .| |!.!| (´⌒(⌒
    (  ,,) .| |7(´⌒;;;ズザー
   /  つ ̄ ̄ ̄  | ..::|
 〜(__). °°° | ::::|
   |__|  ̄ ̄ ̄ ̄ |..::::::|
    ||          .|::::::::|
    ||  ̄ ̄ ̄ ̄ ̄ ̄ ̄
単発質問でスレを立てないでください。

***すれ立てるまでもない質問はここで 第36刷***
http://pc2.2ch.net/test/read.cgi/tech/1051370263/
βακα..._φ(゚∀゚ )アヒャ

GWで5月病になってしまった引きこもりくんですか?>>1
12デフォルトの名無しさん:03/05/10 19:29
VCなら
link -DUMP /disasm hoge.exe
又は
dumpbin /disasm hoge.exe
CなりC++のソースを吐き出すやつキボン
そんな簡単にソースが漏れたら商売あがったり
まぁ絶対無理だな
16デフォルトの名無しさん:03/05/11 00:21
クラス、構造体の名前とか関数名とかメンバ名とかが
よくわかんないユニークな記号とかでいいなら、
まず関数のエントリポイントを探って
データのフローを解析すれば、再コンパイル可能なソースコードを生成できそう。
激しく読みにくいし、労力にみあった成果はないだろうけど。
ソフトウェアが売れない時代になったらこういうソフト出るかも。
でもそんな時代ではそもそもソースを隠す必要ないのか。どうせ商品価値ないんだから。
藻前ら、デコンパイラぐらい嫉妬家。
逆コンパイルする時って、コンパイルしたソフトの癖とかわからないと無理じゃない??
そういうのの汎用性ってだせるもんなのかなー??
20デフォルトの名無しさん:03/05/11 07:58
>>19
逆コンパイルって別に元のソースをそのまま復元するわけじゃないってこと、わかってる?
面白そうだね。
 作ったコンパイラを入れると、バイナリを比較しながら 完全に一致する綺麗なソースを復元とかしてくれたら楽しいな
妄想するだけのスレ
最適化の逆をどうやってするんだろうか。
だから >>21 なんだろ
>>24
で、複数のソースから最適化された同一のコードが吐き出される場合はどうするんだ?
>>25
前後含めてコンパイルして、一致する方を採用。
収束するまで繰り返すことになるが。
27デフォルトの名無しさん:03/05/11 21:22
とりあえずageとく

逆コンパイラ Boomerang キタ━━(゚∀゚)━━ !!!!!
http://pc2.2ch.net/test/read.cgi/tech/1039271450/
>>26
NP問題になる罠
29デフォルトの名無しさん:03/05/11 21:48
>>26
> 前後含めてコンパイルして、一致する方を採用。
> 収束するまで繰り返すことになるが。

だーかーらー、収束点が1つとは限らないでしょ。
特に最適化可能な場合は。
逆最適化オプションを指定。あほらしいが。
ソースプログラムを偽装してバイナリに埋め込むようなコンパイラを作って配布。
メジャーになるまでがんばれ >>1
>>29
類似度でスコアを付けて、一番高い物を採用ってあたりが現実的ではないかと。
最適化しなければ一回で集束すると思うけどね。

33デフォルトの名無しさん:03/05/12 03:14
>>32
> 類似度でスコアを付けて、一番高い物を採用ってあたりが現実的ではないかと。

だーかーらー、
全く同一のオブジェクトコードを吐くソースコードが複数通り存在し得るんだよ。
同一のオブジェクトコードにスコア付けてどうするんだ?

> 最適化しなければ一回で集束すると思うけどね。

だーかーらー、
最適化するかどうかが問題じゃなくて、
最適化可能なソースであれば同一オブジェクトコードを吐くソースコードが他に存在するだろ?
スコアが同じなら、後は人間が選択すりゃ良いじゃん。
>>34
> スコアが同じなら、後は人間が選択すりゃ良いじゃん。

どうやって?全く同一のオブジェクトコードを吐く2つのソースから
どうやって正解を選ぶんだ? (ニヤニヤ
>>35
どっちでも良いじゃん。
正解なんてわからないんだから。
>>35
キモイヨ
逆に、コンパイル結果が同じになる もっとスマートな表現方法を教えてくれたり勉強になるじゃないか
そもそも
もとのソースに復元する必要ねーだろ・・・・
.NETならVB.NET と同じソースを吐く C# コードを教えてくれたりか?
41デフォルトの名無しさん:03/05/15 18:15
水野です。こんばんわ♪
42山崎渉:03/05/15 18:56
(^^)     
43名無し@沢村:03/05/15 21:47
おまいらよ、逆コンパイラはな、オプションで言語が指定できるようでなくちゃダメだぞ!!
JavaとかCとかC++とかVBとかCOBOLとかSmellTalkとか自分の好みのソースに逆コンパイルできるようじゃなくちゃダメだよ。
また、ただべたでネイティブコードをソースに変換しただけじゃ読みにくくて何のことかわからんから、ちゃんと読みやすいように予約語は色付けしたり段落をつけたりコメントを入れたりする機能もつけなければならないよ。
復元したソースは元のソースと同じである必要はないが、それを再コンパイルしたらちゃんとそのソフトと同じように機能する必要はあるよ。
まあ、そこまでやればたとえ1万円のシェアにしても、たくさん買ってもらえると思うよ。
逆コンパイラの秘訣はわかりやすいソースと、再コンパイルしたとき同じ動作をするという二つだけだよ。
おまいらよ、頑張ってつくってみろ?
自分で作れよ
45名無し@沢村:03/05/15 21:58
おまいらよ、逆コンパイラには再コンパイラも付属してなきゃならないよ。
たとえばC++で作成されたソフトをJavaに言語を変えて逆コンパイラし、そのJavaのソースをそのまま再コンパイルすれば、Javaのソフトができるわけだ。
またRadツールもついていて、コントロールなんかは、逆コンパイラしたときRadツールにも反映されるようにするといいよ。
そうすれば再コンパイルする前に、そのままRadツールをつかってコントロールの色や配置を変えることができるからね。
言語も変わって、コントロールの色や配置も変わってしまったら、誰もパクったソフトとはわからなくなるよ。
逆コンパイラにはこの「誰もパクったソフトとはわからなくなる」という要素も重要だよ。
そしたらみんな買うね♪頑張ってつくってみろ?
「予約語の色付けは逆コンパイラの仕事」と、、、 φメモメモ
名無し@沢村にレスすんな。調子に乗って馬鹿な長文を連続投稿し始める。
荒らしと一緒。沢村はデムパだけで十分。
48名無し@沢村:03/05/15 22:26
おまいらよ、逆コンパイラだが、ソースをひとつのファイルにすると何が何だかわからなくなるからするな。
ネイティブコードがひとつのファイルになっていても、ソースをひとつのファイルにしたらダメだ。
おまいらよ、読みやすいようにファイル分割規則をつくって、そのソフトの規模に応じて、いくつかのファイルに分割しなければならないよ。
おまいらよ、読みやすいソースに逆コンパイラするには、こういった考慮も必要だよ。つくってみろ?
沢村は「decompiler」でぐぐってもいないのか。

http://www.decompiler.com/
http://www.itee.uq.edu.au/~cristina/dcc.html
http://www.decompiler.net/

英語も読めないんだろうけどな(プ
>>48
まずはお前の脳みそ逆コンパイルしてやるよ
>>50
何も出てきやしねぇよ
>>50
沢村の脳みそは NOP と HALT で動いています。
53水野 朋子:03/05/16 09:08
水野です。おはようございます♪
54名無し@沢村:03/05/16 23:52
おまいらよ、バイナリをソースに変換するにはマシン語を知る必要があるが、
マシン語のバイブルとしては、インテル・アーキテクチャ・ソフトウエア・デベロッパーズ・マニュアルがあるよ。
だが、これは上、中、下と三巻のPDFファイルに分かれており、全部ダウンロードするのは大変だよ。一巻が10MBくらうずつあるからな。
だが、おまいらよ、中巻の「命令セット・リファレンス」だけダウンロードすれば必要最低限の情報は得られるよ。
上巻の「基本アーキテクチャ」と下巻の「システム・プログラミングガイド」は知っておいたほうがいいことが書かれてはいるが、必須ではないよ。
つまり上巻と下巻は蛇足だよ。
おまいらよ、よろこべ、中巻の「命令セット・リファレンス」だけダウンロードすれば逆コンパイラやコンパイラ、逆アセンブラをつくる知識が得られるぞ!!
この情報はおれからのおまいらへのご褒美よ♪
>54
全部ダウンロードしたのか、ご苦労なことだ。
注文すれば日本でさえ無料で送ってくれるというのに。
56名無し@沢村:03/05/17 01:18
おまいらよ、ひとつ教えてやろう。
手間隙をかけることだけが頭のよい人間への近道だよ。
ダウンロードを待っている時間に逆コンパイラなんてぱっとひらめいてしまうくらいだよ。
おまいらよ、そんな無料で手に入れたものが身につくわけないだろい!
いつのまにかたんすの肥やしになるのが関の山だよ。
沢村にレスする奴は荒らし。
>>54
サイズだけならなんてことないじゃん。
59デフォルトの名無しさん:03/05/17 07:37
>>56
時間ってのは、どこにかけるかが重要なのだよ。
60デフォルトの名無しさん:03/05/17 08:45
なんか必死なやつがいるな。
61山崎渉:03/05/28 12:59
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
自分で作れよ
63デフォルトの名無しさん:03/06/13 23:11
変数名とかは人工知能が考えてくれるの?
64デフォルトの名無しさん:03/06/13 23:47
>>63
ネタとしてもつまんない。
65デフォルトの名無しさん:03/06/14 01:15
ネイティブコードからバイトコードを生成位なら、アプリによってはできるかな?
自動移植?みたいな
まじれ巣すると Bz
ていうか、なんのソース?
HTML
>>68
想像するだけで吐きそう。
70山崎 渉:03/07/15 10:51

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
71山崎 渉:03/07/15 14:02

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
72山崎 渉:03/08/02 02:53
(^^)
73ハッカ飴:03/08/12 00:15
たとえ天才的プログラマーが理想的かつ完璧な逆コンパイラを作ったとしても、変数名は完全に失われてるんだろ?
おまけに一度コンピュータ向けに最適化されたものを戻すんだから、ソースの構造なんてメチャメチャになるんじゃないだろうか。

74ハッカ飴:03/08/12 00:17
>>43
> JavaとかCとかC++とかVBとかCOBOLとかSmellTalkとか

Smell Talk が気になります
75ん?:03/08/12 00:19
何を当たり前なことを。。。
そこから、新ソース起こすんだよ、分かりやすいように
Sourcer97は便利だったが当時使ってた486SX 25MHzでは動作が遅かった。
WinSourcerはさすがに無理があった。(CPU、メモリとも)
77ハッカ飴:03/08/12 19:36
どうあがいても実行形式からじゃ無理。
情報が欠落してるんだから。
そもそもソースで変数名に〜の個数だとか〜の長さだとかいう名前をつけても、ただの数値に意味をこじつけているだけだろう。
それを戻すなんて無理。
>>77
名前なんかどうでもいいじゃん。
そんなくだらないことにこだわっているから
逆コンパイラが作れないと思い込んでしまうんだよ。
名前なんか忘れろ。AがBになろうがそんなことどうでもいい。
79デフォルトの名無しさん:03/08/13 18:21
Z80 時代の逆アセンブラーには 変数を自分で指定するオプションがあったぜ。
ま、アドレス固定だけどさ。ロードした先頭アドレスがわかれば
相対アドレスから割り出して変数名を割り当てたりできないの?
80閑散スレ閲覧者:03/08/14 17:34
Z80書いてた香具師に今のアドレッシングは分からないかも、、、
>>79
デバッグ情報付いてれば、そこから拾えるけど。
つーかCでautoな場合は固定されたアドレスがないわけだが。
82ハッカ飴:03/08/15 01:11
>>78
ソースの読みやすさってかなり名前に頼ってないか?
名前がどうでもいいのなら、逆コンパイラは不可能とは言わないけど、出てきたソースの利用価値なんて無いんじゃないか?
83デフォルトの名無しさん:03/08/15 01:51
>>82
名前は飾りでしかない。
そんなものばかり見ようとするから本質をつかめないんだ。
おおロミオ!あなたはどうしてロミオなの?
85山崎 渉:03/08/15 15:18
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
↑shine
87デフォルトの名無しさん:03/11/24 22:27
おれ持ってるよ
誰かいる?
88デフォルトの名無しさん:03/11/24 23:41
てか、DOSプロンプトでdebugってやって、DOSアセンブラコーディングモードに入って、
-ってでたら
U [開始アドレス] [終了アドレス]
で逆アセンブルか
D [開始アドレス] [終了アドレス]
でメモリダンプして味噌。
現在のメモリ占有中のファイルのアセンブラコードみれるよ。
-から>へはQで抜けられる。
89デフォルトの名無しさん:03/11/25 12:05
ああ、妄想で食っていくわけにもいかず
生存競争に加わるしかないのか
もう40近いのに負け組確定
鹿沼みたいなマンカスにまで負けて
情けない
誤爆?
実行時に引数を入力しなければならないプログラムはどうやってdebugコマンドを使えばいいんでしょうか?
gdb --args program argument
>>91
実行中にアタッチしてDebugする。

プログラマじゃない初心者でつ。
デコンパイラを探して、ここにたどりつきました。
C++のいいのは、やっぱり高いでつね。。

メモリエディタ、デバッガは最低でも必需品。
94デフォルトの名無しさん
逆コンパイラを自分で探せ