変数名やコメントなんかも失われててもゲーム内容から判断して
ある程度自動でそれっぽいの付けられそうだと思うが
探検
ゲームのプログラムの逆コンパイルってもっと進化しないの?
■ このスレッドは過去ログ倉庫に格納されています
1名無しさん必死だな
2021/03/12(金) 11:29:13.00ID:ddM6eVjHa2021/03/12(金) 11:30:51.64ID:x4EuEQhh0
最適化でコードの構造の3割くらいは消える上に、
オリジナルのソースコードから見てスパゲティされるから
絶望的に不可能
コンパイラのバージョンや、コード行数でも、ガンガン変化してくしな
オリジナルのソースコードから見てスパゲティされるから
絶望的に不可能
コンパイラのバージョンや、コード行数でも、ガンガン変化してくしな
2021/03/12(金) 11:31:30.22ID:JkO/ZVWf0
そんなことして何すんねん
それっぽい変数名なんか自動で付くわけねえだろアホか
お前アセンブラもマシン語も何も知らんだろw
それっぽい変数名なんか自動で付くわけねえだろアホか
お前アセンブラもマシン語も何も知らんだろw
2021/03/12(金) 11:33:20.70ID:fKlfw+S20
今時のコンパイラは最適化や並列化が優秀だから、バイナリからソース復元すると変態コードになると思うぞ
料理から元の材料に復元するぐらい無理
料理から元の材料に復元するぐらい無理
5名無しさん必死だな
2021/03/12(金) 11:34:22.33ID:ddM6eVjHa >>3
復元は無理でも意味がわかる変数名にするのは機械側でも出来るだろ
復元は無理でも意味がわかる変数名にするのは機械側でも出来るだろ
6名無しさん必死だな
2021/03/12(金) 11:35:15.68ID:ddM6eVjHa >>4
料理の完成品から材料含めたレシピ作るのは出来そうだけどな
料理の完成品から材料含めたレシピ作るのは出来そうだけどな
2021/03/12(金) 11:35:46.37ID:x4EuEQhh0
2021/03/12(金) 11:36:27.02ID:JkO/ZVWf0
>>5
その意味ってなんだよ?
サブルーチンのローカル変数にworkて付けたり
イテレータにiて付けたりする程度なら出来るけどその程度やろ
例えば画面のヒットポイントにhpとか割り振るのはかなり無理あると思うが
その意味ってなんだよ?
サブルーチンのローカル変数にworkて付けたり
イテレータにiて付けたりする程度なら出来るけどその程度やろ
例えば画面のヒットポイントにhpとか割り振るのはかなり無理あると思うが
9名無しさん必死だな
2021/03/12(金) 11:39:10.56ID:ddM6eVjHa >>8
機械側で自動的にhpってつけるの技術的にそんな無理でもないのでは?
機械側で自動的にhpってつけるの技術的にそんな無理でもないのでは?
2021/03/12(金) 11:42:35.37ID:oeceLe1e0
プロの料理人が食べれば作り方や材料の想像は付く
プロのプログラマがゲームを遊べばアルゴリズムやデータ構造は想像が付く
それをAIで再現することはある程度可能だろうが逆コンパイルした結果から変数の意味を理解するのは難しいわ
大量のデータから機械学習させれば単純な変数(ループ変数とか)くらいは分かるやろうけどそれ以上はな
そもそも需要がないから研究する人もいないだろう
プロのプログラマがゲームを遊べばアルゴリズムやデータ構造は想像が付く
それをAIで再現することはある程度可能だろうが逆コンパイルした結果から変数の意味を理解するのは難しいわ
大量のデータから機械学習させれば単純な変数(ループ変数とか)くらいは分かるやろうけどそれ以上はな
そもそも需要がないから研究する人もいないだろう
2021/03/12(金) 11:43:25.13ID:hNAci7Phd
何で変数の名前だけわかれば全部解決すると思えるのか
正直言ってることが小学生以下のレベルなんでもう黙っといたほうがいいよ
正直言ってることが小学生以下のレベルなんでもう黙っといたほうがいいよ
2021/03/12(金) 11:49:21.47ID:AXbTBoMaa
そもそも容量対策に使わなくなったフラグ流用したとして
汎用フラグ1って名前ついてなんの意味があるのか
そんな例外ばかりになって結局意味ないねで終わる
インターフェース以外信用できない
汎用フラグ1って名前ついてなんの意味があるのか
そんな例外ばかりになって結局意味ないねで終わる
インターフェース以外信用できない
15名無しさん必死だな
2021/03/12(金) 11:50:13.62ID:ddM6eVjHa >>13
変数だけでもどういう役割か分かればかなり理解しやすくなると思うが
変数だけでもどういう役割か分かればかなり理解しやすくなると思うが
2021/03/12(金) 11:51:20.34ID:xIfsG/Ke0
まずゲーム内容ってなんだよって話だわな
機械はそんな人間様の勝手に決めたルールなんて知りませんがな
機械はそんな人間様の勝手に決めたルールなんて知りませんがな
2021/03/12(金) 11:53:15.01ID:GIbGlmVIM
元がC言語とかだと機械語になった時点で絶望的
2021/03/12(金) 11:54:20.96ID:IkJ5YfjZ0
無数に用意したオリジナルのソースコードで何度も答え合わせできたら変数名を予測するプログラムも進化するかもよ
1は産業スパイから始めよう
1は産業スパイから始めよう
2021/03/12(金) 11:55:39.15ID:JkO/ZVWf0
上にも書いたけどマシン語とか全く知らなそうだし
インタープリターで動いてると思ってんのかねえ
哀れだねえ
現場なら口も聞きたくないレベルe
インタープリターで動いてると思ってんのかねえ
哀れだねえ
現場なら口も聞きたくないレベルe
2021/03/12(金) 11:55:55.58ID:46FujqGD0
プログラムもAIのこともわからないとこういう発想になるんだな
2021/03/12(金) 11:58:22.62ID:46FujqGD0
ソースコードから年収査定するAIを真に受けて銀行のコードアップロードした超弩級のバカもいたし
まあ超弩級のバカだからこそ意味のないコードだったみたいだが
まあ超弩級のバカだからこそ意味のないコードだったみたいだが
22名無しさん必死だな
2021/03/12(金) 11:58:24.72ID:ddM6eVjHa >>19
マニアックな知識を知ってるからってそれ知らない人を軽視する人になりたくないね
今はAIが凄くてたった一枚の顔写真から全身を復元して顔動かしたり踊らせたり出来るんだから、
ゲームのプログラムだってそういう復元出来てもおかしくないでしょ
マニアックな知識を知ってるからってそれ知らない人を軽視する人になりたくないね
今はAIが凄くてたった一枚の顔写真から全身を復元して顔動かしたり踊らせたり出来るんだから、
ゲームのプログラムだってそういう復元出来てもおかしくないでしょ
2021/03/12(金) 12:00:46.77ID:mOjLoqhS0
AIにバックマンを何時間もやらせて学習させて、パックマンもどきを作らせたって記事が去年あたりにあったな
古いソフトの解析するくらいならそっちの方が良いのかもね
まあ、それで完全再現は不可能だと思うし、商品化できるレベルに達するのに何年かかるのかって感じだけど
古いソフトの解析するくらいならそっちの方が良いのかもね
まあ、それで完全再現は不可能だと思うし、商品化できるレベルに達するのに何年かかるのかって感じだけど
2021/03/12(金) 12:00:51.40ID:r13Jv1Si0
F-ZEROをSFCエミュレーターで動かしたときはどの変数が何に影響してるのか割と簡単に分かったな
PS2のGTで同じ事やろうとしたらそこらへんの機能貧弱で難しかったわ
PS2のGTで同じ事やろうとしたらそこらへんの機能貧弱で難しかったわ
2021/03/12(金) 12:04:21.05ID:cnOGy5bDM
.exeから復元したいってこと?
じゃあシンボルファイルあれば復元できると思うよ
コメントは知らんけど
じゃあシンボルファイルあれば復元できると思うよ
コメントは知らんけど
2021/03/12(金) 12:06:30.24ID:uscW9f+T0
今画面に表示されているこの数字がメモリ上のどこかにあるか、あったとしてそれがどうやっていじられてるか
みたいなとこから解析していけば手はあるだろうと思う
みたいなとこから解析していけば手はあるだろうと思う
2021/03/12(金) 12:08:15.03ID:x4EuEQhh0
>>19
おそらくは、PAR なんかの古い 「固定アドレス」 式か
最近のであれば 「ヒープ解析してクラス構造などでポインタを特定できるパターン特定の参照アドレス」 がわかるのあから
というくらいの知識ではないかと想像する
ゲームの変数って1000個もないでしょ? くらいのノリ
おそらくは、PAR なんかの古い 「固定アドレス」 式か
最近のであれば 「ヒープ解析してクラス構造などでポインタを特定できるパターン特定の参照アドレス」 がわかるのあから
というくらいの知識ではないかと想像する
ゲームの変数って1000個もないでしょ? くらいのノリ
2021/03/12(金) 12:08:39.71ID:37z/fGb6M
画面上の数字が何を意味しているのかを機械的に判断して、人間の概念と一致させるところがまず凄まじく困難
2021/03/12(金) 12:09:16.39ID:r13Jv1Si0
>NVIDIAの研究チームは、バンダイナムコ研究所から提供されたパックマンのゲームプレイムービー約5万本と、ゲーム操作に対応したキー入力のデータをGameGANに学習させました。この学習はNVIDIA Quadro GV100 GPU4基を搭載したNVIDIAのAI用ワークステーション「NVIDIA DGXシステム」を使い、4日間かけて行われたそうです。
数年がかりかと思ったらたった4日ってのが凄い
これ初代テイルズとかでもAIが1年未満で作れるんじゃないか
数年がかりかと思ったらたった4日ってのが凄い
これ初代テイルズとかでもAIが1年未満で作れるんじゃないか
2021/03/12(金) 12:10:03.76ID:x4EuEQhh0
2021/03/12(金) 12:10:37.63ID:9HYU2P4O0
てかそんなもん需要がないだろ
36名無しさん必死だな
2021/03/12(金) 12:11:45.82ID:ddM6eVjHa >>35
ソースコードを喪失してしまったゲームを解析とかする際に助かるだろ
ソースコードを喪失してしまったゲームを解析とかする際に助かるだろ
2021/03/12(金) 12:12:29.46ID:x4EuEQhh0
>>31
入力変数がドットの数 (256x244) で色56色だから可能
あと画面のパターンが1種類(ステージが複数あるけど)しかない
ノイズデータが全くないので、全てを 「学習して良い入力情報」 として扱えるから可能なこと
入力変数がドットの数 (256x244) で色56色だから可能
あと画面のパターンが1種類(ステージが複数あるけど)しかない
ノイズデータが全くないので、全てを 「学習して良い入力情報」 として扱えるから可能なこと
38名無しさん必死だな
2021/03/12(金) 12:13:35.54ID:ddM6eVjHa AIにマシン語見せてどうこうさせるよりゲームそのものをプレイさせた方がよりまともに復元できるってこと?
2021/03/12(金) 12:13:56.33ID:cnOGy5bDM
グラフィックパイプラインはGPUプロファイラーからある程度リバースエンジニアリング出来るで
ただ処理を真似するのは簡単だけど、ゲーム制作で需要なのはそこじゃなくて制作フローの方やからなぁ
ただ処理を真似するのは簡単だけど、ゲーム制作で需要なのはそこじゃなくて制作フローの方やからなぁ
2021/03/12(金) 12:14:39.27ID:46FujqGD0
コーエーあたりは16bit機の単純なゲームの時代からもうCで組んでるしプレイヤーに見せてるパラメーターが大量にある超イージーモードだから
できそうとか言うなら自分で試せや
できそうとか言うなら自分で試せや
2021/03/12(金) 12:15:18.88ID:r13Jv1Si0
2021/03/12(金) 12:17:39.96ID:37z/fGb6M
RPGをそのまま食わせたらアイテムメニューの遷移すら再現できないだろうな
43名無しさん必死だな
2021/03/12(金) 12:18:36.63ID:7OPMH+9E0 2050年ぐらいのAIなら可能だろうな
2021/03/12(金) 12:18:50.48ID:1kONrFwEa
当時の資料がないから移植できないとか、だから頑張ってリメイクしましたとかそういうの何とかならんの
2021/03/12(金) 12:19:55.26ID:26hHrLXwF
2021/03/12(金) 12:20:06.64ID:50g/jiAIa
そもそも、なんのために逆コンパイルすんの?
自社のゲームならソースあるでしょ。
他社のソフトを勝手に解析するのは犯罪じゃなかったっけ?
自社のゲームならソースあるでしょ。
他社のソフトを勝手に解析するのは犯罪じゃなかったっけ?
2021/03/12(金) 12:20:27.26ID:x4EuEQhh0
2021/03/12(金) 12:22:56.72ID:UIW/Ti4ad
2021/03/12(金) 12:23:11.58ID:x4EuEQhh0
>>45
「クリアできちゃう機械学習AI」 については
2Dドットなら割と楽やで
そのゲームのクリアまでのプレイデータを10,000種類くらい食わせればいける
但し、NPCの会話とイベントの紐づけ については、数十万パターン必要とされる学習データに遠く及ばないから無理
「クリアできちゃう機械学習AI」 については
2Dドットなら割と楽やで
そのゲームのクリアまでのプレイデータを10,000種類くらい食わせればいける
但し、NPCの会話とイベントの紐づけ については、数十万パターン必要とされる学習データに遠く及ばないから無理
2021/03/12(金) 12:23:50.36ID:r13Jv1Si0
調べたら同じ手順でDoomも再現できるっぽいから結構使えるんじゃないかな
2021/03/12(金) 12:27:17.11ID:uscW9f+T0
てかもっと進化しないの?って今も進化してるだろ
2021/03/12(金) 12:27:56.88ID:46FujqGD0
つーかなんでスレタイが逆コンパイルなのに変数に自動で名前をつけるとかいうレベルになってんの
そもそも逆コンパイルと逆アセンブルもわからないレベルか
そもそも逆コンパイルと逆アセンブルもわからないレベルか
53名無しさん必死だな
2021/03/12(金) 12:31:31.02ID:zun7jexu0 目的がよくわからんのだけど
逆コンパイル進化しまくったらチートされ放題になってゲーム業界が終わるんじゃないのか?
逆コンパイル進化しまくったらチートされ放題になってゲーム業界が終わるんじゃないのか?
55名無しさん必死だな
2021/03/12(金) 12:34:23.78ID:+6Y467sRF 1から作っ方が早い
2021/03/12(金) 12:48:51.66ID:9HYU2P4O0
2021/03/12(金) 12:51:03.63ID:Uwv6yuiL0
そんな技術あったら中国にぶっこ抜きで盗まれるだけだから無い方がいいんじゃないか
2021/03/12(金) 12:57:43.43ID:9HYU2P4O0
てかそういう用途には基本逆アセンブラで十分
2021/03/12(金) 12:58:29.34ID:F6Y1TLiI0
元のプログラムよりずっと煩雑なものになら出来なくもないんじゃね
2021/03/12(金) 13:04:44.59ID:vyEvhpI90
何が言いたいのかわからんスレだな
そもそも他者がやれば違法行為だろ
自社ならソースコード見ればいい
金型じゃあるまいし、わざわざ捨てる意味の無いものだ
とくにこんなご時世なら分散保存で場所も取らねぇ
そもそも他者がやれば違法行為だろ
自社ならソースコード見ればいい
金型じゃあるまいし、わざわざ捨てる意味の無いものだ
とくにこんなご時世なら分散保存で場所も取らねぇ
2021/03/12(金) 13:08:19.76ID:CdjRiJgQM
.NETのディスコンパイラ使ってみたけど
普通に読めるレベルのソースが出てきて感心したな
Z80の頃なんて文字列とプログラムの区別も出来ないレベルたったのに
普通に読めるレベルのソースが出てきて感心したな
Z80の頃なんて文字列とプログラムの区別も出来ないレベルたったのに
2021/03/12(金) 13:10:42.06ID:Vr7TLLEta
基本、メモリから読んで弄って戻すだけの繰り返しだし
機能を類推して意味を付けるなんて無理だぞ
機能を類推して意味を付けるなんて無理だぞ
2021/03/12(金) 13:18:42.53ID:46FujqGD0
技術的な興味ですらないのは知識量から明らかだし
アフィの情報乞食でしょ
アフィの情報乞食でしょ
2021/03/12(金) 13:50:23.45ID:YVnGOfgvM
プログラム組んだことがないにわかが立てたスレか
2021/03/12(金) 14:15:33.72ID:0OSslrfZH
>>46
そう思うだろうが、なぜか自社に過去のゲームのリソースが残ってなくてリメイクと作るに作れないゲームがあったりする
そう思うだろうが、なぜか自社に過去のゲームのリソースが残ってなくてリメイクと作るに作れないゲームがあったりする
2021/03/12(金) 14:34:19.10ID:x4EuEQhh0
>>56
ゴリ押しの機械学習の場合は、
他のアドレスの状態(状態やモード、いわゆるコンテキスト)も含めて因果関係を見つけるから、
ファミコン、スーファミレベルなら実はクリアできたりする(この時代は固定アドレスなので)
ゴリ押しの機械学習の場合は、
他のアドレスの状態(状態やモード、いわゆるコンテキスト)も含めて因果関係を見つけるから、
ファミコン、スーファミレベルなら実はクリアできたりする(この時代は固定アドレスなので)
2021/03/12(金) 14:35:55.71ID:x4EuEQhh0
2021/03/12(金) 14:40:11.66ID:x4EuEQhh0
>>61
.Net はコンパイル時に基本の処理はするけど 「最適化」 はほとんどしない
ジャストインタイム(実行時)に、ゴリゴリのコンパイラで実行環境の機械語にして、その環境で使える最適化を入れる
だから定数や宣言位置の巻き上げ以外は、まんまのソースに戻せるように全情報を敢えて残してる
(変数名や型情報なんかも、実行時に Marshal 処理で全部拾えるレベルで残ってる)
.Net はコンパイル時に基本の処理はするけど 「最適化」 はほとんどしない
ジャストインタイム(実行時)に、ゴリゴリのコンパイラで実行環境の機械語にして、その環境で使える最適化を入れる
だから定数や宣言位置の巻き上げ以外は、まんまのソースに戻せるように全情報を敢えて残してる
(変数名や型情報なんかも、実行時に Marshal 処理で全部拾えるレベルで残ってる)
71名無しさん必死だな
2021/03/12(金) 16:18:28.03ID:QJ7dnIHP0 素のCならまだしも現代のC++とか人間を一瞬で発狂させるスパゲティ的最適化が掛かってるから無理です
2021/03/12(金) 16:18:36.25ID:YVnGOfgvM
リバースエンジニアリングだな
2021/03/12(金) 16:21:24.40ID:YVnGOfgvM
マイナーなところではDelphiもリソースが残ってたりする
まあ、これでゲームソフト作らんやろな
まあ、これでゲームソフト作らんやろな
74名無しさん必死だな
2021/03/12(金) 16:28:32.92ID:QJ7dnIHP0 Delphiで作られたゲームはHellSinkerくらいしか知らんな
75名無しさん必死だな
2021/03/12(金) 16:29:09.75ID:13oUZgtd0 リバースエンジニアリングよね
2021/03/12(金) 16:32:11.83ID:x4EuEQhh0
2021/03/12(金) 16:36:13.40ID:eKyRiFgW0
別にゲームのコンセプト分かってればオリジナルのソース復元しなくても
目コピでいいんじゃね?
ローグだってオリジナルは失われてて
ローグライクやローグライトだってローグクローンを参考にしてる訳でしょ
目コピでいいんじゃね?
ローグだってオリジナルは失われてて
ローグライクやローグライトだってローグクローンを参考にしてる訳でしょ
78名無しさん必死だな
2021/03/12(金) 18:56:41.26ID:V2pnygGo02021/03/12(金) 19:21:13.97ID:5lp0B6o0d
マスターデータって重要なんだな。
2021/03/12(金) 19:40:45.69ID:eKyRiFgW0
2021/03/12(金) 20:05:50.40ID:zMtobd1UF
実際逆コンパイルやったことあるけど、
中途半端に読めるから全部テストし直しさ
作り直したほうが早かったよ
中途半端に読めるから全部テストし直しさ
作り直したほうが早かったよ
2021/03/12(金) 20:38:36.27ID:mgpSvZsZ0
X68kの場合はアセンブラでプログラム作るのが普通だったし、高性能な逆アセンブラもあって解析しやすかったな
シャープもOSの無償公開と解析・改変を許可しているし
シャープもOSの無償公開と解析・改変を許可しているし
83名無しさん必死だな
2021/03/13(土) 02:04:41.35ID:SnU8OHEP0 てない事に気がつくべきだな
2021/03/13(土) 07:10:57.79ID:eGTF/1990
最適化でかなりのソース情報が失われて、更に最近は追加で難読化したりで意味のわかるコードに戻すのは絶望的。
2021/03/13(土) 09:55:43.94ID:R6xhMn1+a
じゃあ元に戻すことを意識して最適化するかっていうとそれはおかしいもんね。
基本的にソースはちゃんと保管すべきで、第三者が勝手に見ることは考える必要はない。
基本的にソースはちゃんと保管すべきで、第三者が勝手に見ることは考える必要はない。
86名無しさん必死だな
2021/03/13(土) 10:12:56.16ID:FFcezcc00 ゲームみたいな一点もの逆コンパイルする意味ねーだろ
モデルとかモーションとかデータだけぶっこ抜ければ十分だろ
モデルとかモーションとかデータだけぶっこ抜ければ十分だろ
87名無しさん必死だな
2021/03/13(土) 10:36:44.02ID:hjCHfRtV0 スーファミのハックロム制作を16年以上続けてきたけど
snes9xdebuggerっていうエミュでプレイをトレースして
生成されるテキストを解析して改造している。
snes9xdebuggerっていうエミュでプレイをトレースして
生成されるテキストを解析して改造している。
2021/03/13(土) 14:26:30.81ID:mulWZCT+0
2021/03/13(土) 15:45:49.41ID:5HHR/TBh0
simd使う部分なんて実質アセンブラだろ
2021/03/13(土) 21:20:11.22ID:JK9Eb/8F0
よく知らんけどツクールとかああ言うのはそれに近いんじゃないの?
2021/03/14(日) 00:04:08.74ID:YxuRQI0XM
モデルぶっこぬきはまだしも
そこまで行くとただのハッキングじゃん
そこまで行くとただのハッキングじゃん
93名無しさん必死だな
2021/03/14(日) 00:45:25.78ID:egiL8GPo0 ハックロムだからハッキング
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- タトゥー入った美人店員の調理映像拡散 ネットで議論 料理研究家リュウジ「味変わんねえし俺は行く」 [ネギうどん★]
- 【万博】イギリス館“5000円アフタヌーンティー” 物議 スコーン1つに紅茶は紙コップにティーバッグ 大使館謝罪 ★2 [蚤の市★]
- 物価高騰でランチ事情が激変! 「ランチ1,000円時代」の終焉に私たちはどう向き合えばいいのか? [パンナ・コッタ★]
- 落下したプロペラ付近で倒れていた男性死亡 [少考さん★]
- 永野芽郁に新たな疑惑 イケメン俳優・坂東龍汰との"匂わせ"の疑いが話題に 過去には「変な匂わせはしません」と断言も [Ailuropoda melanoleuca★]
- 【八潮市道路陥没】下水道管内で男性運転手(74)とみられる遺体発見され地上に搬出 身元確認へ 事故発生から約3か月 ★3 [Ailuropoda melanoleuca★]
- ▶ぺこらすこすこスレ
- 【悲報】Xboxさん、一気に2万円値上げしてしまう(66,978円→87,980円) [126042664]
- 【悲報】中国、空飛ぶクルマの量産体制に入る。一方ジャップは大阪万博で恥を晒していた🥹 [616817505]
- じゃあ暇空茜の弱点って何だよ [358382861]
- 【動画】異例の27歳で京大数学科准教授になった女性、「本物の天才」がこれ [606757419]
- 儲かり過ぎて笑いが止まらない農水省と全農 備蓄米グループ全体で280億利益のカラクリもう暴動レベル [827565401]