EXEファイルをプログラムに戻す方法
■ このスレッドは過去ログ倉庫に格納されています
0001勉強家
NGNGそれで、フリーゲームやフリーソフト(EXEファイル)の中身を見たくて、C言語やVBに変換するとうまくいきません。
どなたか、戻す方法を教えてください。それともできないのでしょうか。
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNGプログラミングが分からないやつが他人のソースを見ても意味がない。
逆に混乱するだろう。
おとなしく、他人が作ったゲームで遊びたまえ。
それでも見たいんならヨローパのウェブサイト見れ。
0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNGちなみにサル並の脳だと、文字化けするそうです
よく能力テストに使われてます
0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNGデバッガでトレースしてみてください。
ただしラベルは見えません。
あとデータとコードの区別も自分でやってください。
0008デフォルトの名無しさん
NGNGVB のエキスパートです。
0010デフォルトの名無しさん
NGNG> C言語やVBに変換するとうまくいきません。
全くもって意味不明
"見たくて"は理解できる。
"VBに変換すると"って、変換方法を知ってるけど失敗してるって事か?
それとも、お前の言語マトリックスに障害が発生しているのか?
00119
NGNGごめんなさい。 9は、
EXEにソース"を"つけておけばだいじょうV。
でした。
0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNG0015デフォルトの名無しさん
NGNGパスカルで見たければ.pです。
0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNG実行形式とは何か。
この辺を調べてみよ〜。
0018デフォルトの名無しさん
NGNGでも、理論的に考えると復元が不可能なはずはないよね。
蝶々簡単なプログラムなら変換可能になったりしないのでしょうか?
機械語<- ->アセ<- ->高級言語
そういう実例を扱ったページってどこかにないですか?
0019デフォルトの名無しさん
NGNGEXEファイル、プログラム
題名に使ったこの二つの単語の意味を知れ
0020デフォルトの名無しさん
NGNG一度コンパイルされたものは決して復元しえないと
口をすっぱくして教えられました。ええ。それだけです。。
0021デフォルトの名無しさん
NGNGはそう思っておいてよいでしょうん。
自分でコンパイラを作れる人もいるのだから
モノによっては復元可能かと思うが・・・
0022デフォルトの名無しさん
NGNG再度コンパイルすれば似たような動きをするアセンブラのソースに
逆コンパイルすることは可能だろうけど
0023デフォルトの名無しさん
NGNG0024デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNGまぁシュレッダー掛けた書類を手作業で元に戻すのと同じようなもん
0026デフォルトの名無しさん
NGNGおなじEXEを吐き出す全く違うソースを作ることは出来るかもしれないけど。
でも変数名やラベルなどが全く復元されないため解読はかなり難しいでしょう。
0027ではここで、わかりやすく説明しよう。
NGNG36という解に対する式は無限にある。
0028もう少し詳しく。
NGNGと思った人は、例えば
1 1 2 3 5 8 13 21
という数列に対する式を考えてるべし。
これをコンピュータに自動的に解かせるには、
単純な逆変換では無理。
#解答:
X(n) = X(n-1) + X(n-2) …(n>2)
= 1 …(n=0,1)
0029デフォルトの名無しさん
NGNGそういうツールもあった。
dis.xとか。
0030デフォルトの名無しさん
NGNGソースの読みやすさに劇的に貢献しているものの1つとして、
変数や関数(やクラス…などなど)の「名前」が、ある。
適切な名前が使われてるソースは、そうでないものよりずっと読みやすい。
そこにこそ作者の「意図」が込められているからね。
機械が読むならどうでもいいんだが、人間が読むならこの差は大きい。
というわけで、変数名とかの情報が捨てられると、極端に読みにくくなるよ。
とあるJavaの逆コンパイルを「困難化」するツールでは
その手を使って、object(つまり.class)ファイルの中に書かれてる
変数名とかの情報を「読みにくい」ものに変えるという処理を
しているそうだ。
それだけで「実用的な」判読性はだいぶ失われるものらしい。
Java以外の多くのコンパイラ言語でも、事情は同じようなもの。
0031デフォルトの名無しさん
NGNG4*9==27
わからん・・・
0032デフォルトの名無しさん
NGNGhttp://www.pkware.com/products/pklite.html
EXEを実行可能状態のまま圧縮すると、解析は非常に困難になる。
この種のツールは、EXEの実体を圧縮し、これにメモリ上で実体を解凍して自動的に実行
させるルーチンを付加しているというしくみだから、当然変数名のデータはわからなくなる
し、場合によってはリソースデータもわからなくなる。
0033デフォルトの名無しさん
NGNGおまえのほうがわからん。
0034デフォルトの名無しさん
NGNGhttp://cybozu.co.jp/products/md5/md5.html
あと逆アセンブルと逆コンパイルを混同してる人がいますが、
指摘して良いですか?
0035デフォルトの名無しさん
NGNG「アセンブリ言語みたいなC言語にする」とかではない。
テーブルジャンプの復元など課題は多い。
変数名だの関数名だのの情報はたいてい実行ファイルに
エミットされたときに消えてる。
使用されたコンパイラが既知であればかなり精度の高い逆コンパイルが
すでに実現されている。
0036デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNGニモニックを中間表現に直してからソースレベルで最適化すると
最適化された部分の制御構造を復元できる、という研究がなされてる。
最適化されたものを、いったん冗長にして、それを別の立場から
最適化する、ということだね。
lha書庫をzip書庫に変換する場合、一旦伸張して再圧縮すれば簡単みたいな。
0038デフォルトの名無しさん
NGNG0039デフォルトの名無しさん
NGNG0040警告屋さん
NGNG<><><>警告<><><>
リバースエンジニアリング行為は、
一部の商用パケージでは禁止されています!
#つってもな・・・
0041デフォルトの名無しさん
NGNG0042デフォルトの名無しさん
NGNGこのスレは妙に話が続いて良スレになってるな(w
0043デフォルトの名無しさん
NGNG.xを挙げるか(w
懐かしいな・・・
0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNG逆アセンブラではなくて、ライブラリが欲しいの? ライブラリに何を期待しているのか
謎だが、いちおう GNU binutils 挙げとく。
0046デフォルトの名無しさん
NGNGobjdumpだね。便利だ。
0047デフォルトの名無しさん
NGNGnasmについてる
さがしてみそ
0048デフォルトの名無しさん
NGNGexe2vb 使えば簡単に戻るのでは?
Cのプログラムは無理だけどNE!
0049デフォルトの名無しさん
NGNG0051デフォルトの名無しさん
NGNGが、P-CODEでなきゃ戻せないとかのオチだろドーセ。
いまどきネイティブじゃないEXEなんか配布されてるかよ。
0052デフォルトの名無しさん
NGNGdis.x 随分世話になったよ
0053デフォルトの名無しさん
NGNGていうか、vb scriptって書いてあるぞ
0054デフォルトの名無しさん
NGNGとか乱発されたソースがでてきそうだな。
>逆コンパイラ。
実際どうなのか知らんけど。
0055デフォルトの名無しさん
NGNG中身って見れるんですか?よく本には「最終的にはWRITEなどを呼んでいる」と書いていますが。
0057デフォルトの名無しさん
NGNGgetc() ならともかく printf(), scanf() は普通はそれ自身ライブラリ関数だろ。
>>55
ライブラリのソースコードが提供されている処理系を使っている場合には、参照できる。
VC6 なら C:/Program Files/Microsoft Visual Studio/VC98/CRT/SRC (標準のディレ
クトリにインストールした場合)、*BSD なら /usr/src/lib/libc 以下を参照。
他の環境は良く知らんので、環境を明示して聞きなおし。
0058デフォルトの名無しさん
NGNGvsprintfはソースを見れば簡単に内容わかるよ。
システム関数が最終的になにになってるかはディスアセンブル
しないとわかんないよ。システムコールの方法はOSによって違う。
>>54
goto乱発ソースを吐く逆コンパイラには価値ありません。
そういう部分を意味解析して高級化するのが逆コンパイラの肝の部分。
学生の頃そういう研究してたんだけどね。昔の資料ひっかきまわしてみるわ。
005955
NGNG僕はフリーのBorland C++ 5.5.1です。
>>58
そのソースがどこにあるのか分からないです。
bccをインストールしてあるディレクトリを見てもそれらしきファイルが無かったので。
0060デフォルトの名無しさん
NGNG54ですが、研究していたというのは
まだ実用ではないということですか?
だとしたら、結局乱発すると思われ。(;´Д`)
0062=58
NGNGあー、Borlandは知らないわ。
フリーのBCならソースはインストールされないかもね
>>60
ま、学生の頃だから。今はどうなんだろね。
世の中にいろんなツールがあるように
goto乱発な「価値のない」逆コンパイラもあれば
頑張って高級化してるものもあるってこと。
俺は逆コンパイラを作る研究をしてたわけじゃないけどね。
0063デフォルトの名無しさん
NGNG機種依存の部分を重点的に抽象化してくれればというか、なんというか、、、
0064デフォルトの名無しさん
NGNG0065デフォルトの名無しさん
NGNG久々にその名前を見てわらた。
最近 ML とかで見ないよね、日本中の技術系 ML から除名されたか?
0066デフォルトの名無しさん
NGNG言い換えるところのフルアセンブルで書かれた実行ファイルでさえ
高級言語に"変換"出来るという事なんですかね〜。
もう原型留めてなくてもいいし、再コンパイルして同じ形になる必要も
ないから、誰か作ってお願い。
0067デフォルトの名無しさん
NGNGもちろん原型留めてないのはダメ。
オリジナルソースよりも綺麗なソースを生成するぐらいじゃないと。
0068デフォルトの名無しさん
NGNGひたすら膨大な数の単語、慣用句を登録することだった(その数、数十万)。
逆コンパイラも同じアプローチで作れるんじゃない?
systrans は20年かかったけど。
0069デフォルトの名無しさん
NGNG関数レベルに分割してその部分だけでもgoto乱発ソースに変換してくれるなら
かなり便利だと思うが。
後は特定のAPIとか標準関数を戻してくれれば。
10万ぐらいなら買うな。
0070デフォルトの名無しさん
NGNG自然言語は、仕様の変化が少ないからなぁ...。20年もかかったら、目標とする言
語自体がなくなっているかも...。
0071デフォルトの名無しさん
NGNG0072デフォルトの名無しさん
NGNG言ってみただけ
0073デフォルトの名無しさん
NGNG「チョベリグ」の発生から消滅までの時間を考えるとそうとも言えないぞ、と。
0074デフォルトの名無しさん
NGNGJavaのJADは有名だが、CのEXEは聞いたことがない。
URLキボンヌ。
0075デフォルトの名無しさん
NGNGでないとどう動作するのか分かりませんよね・・・。
0076デフォルトの名無しさん
NGNG実はな、奴らはウィルスを駆除してるんではなく、
*作っている*のだ。ウィルスの発生源を辿ると判る。
作り方が判れば、駆除も簡単にできる。
そもそも生みの親なのだから。
0077仕様書無しさん
NGNG0078デフォルトの名無しさん
NGNG0079デフォルトの名無しさん
NGNGどこの何ていうバカソフトだったっけ?
某ExSTANDのREADME.TXTに誤報だしたソフトは?
0080デフォルトの名無しさん
NGNGさらに逆コンパイルした勇者の話を
聞いたことがあるような…。
まだCコンパイラがヘバヘバで
ろくすっぽ最適化されてなかったから楽勝だったとか。
手作業ならなんとでもなるか。
0081デフォルトの名無しさん
NGNGVBで書いた変な代物を公開した挙げ句バイナリみてアルゴリズム(?)を
悟れとおっしゃったあの「朋子様」
0082デフォルトの名無しさん
NGNG>>8
0083デフォルトの名無しさん
NGNG知りたいことがわかったので
作者さんに感謝します...
■ このスレッドは過去ログ倉庫に格納されています