トップページ⇒tech
1001コメント238KB

HSP-C

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
HSPのコンパイラ・逆コンパイラを製作するスレ

HSP公式サイト
http://www.onionsoft.net/hsp/

HSP-14
http://pc.2ch.net/test/read.cgi/tech/1018789603/
HSP-$F
http://pc.2ch.net/test/read.cgi/tech/1019885362/

注:本家掲示板ヲチはHSP-$Fで
0153デフォルトの名無しさんNGNG
>>152
どのファイル?
0154デフォルトの名無しさんNGNG
153は厨房です。無視してください。
0155デフォルトの名無しさんNGNG
逆コンパイラ作るのは結構なことだが半永久的に使える保証はあるの?
HSPがバージョンアップした時点で終わってしまったら作った苦労が水の泡では?
0156デフォルトの名無しさんNGNG
>>152
偽装なんてされてないよ

>>155
でもバージョンアップしてもまるっきり変わるって訳じゃないだろうから
少しの変更でいいんじゃない
0157デフォルトの名無しさんNGNG
たった200行やそこらでできるもんなんだ。ビクリ
0158デフォルトの名無しさんNGNG
>>152 (;´Д`)ナヌ?
0159デフォルトの名無しさんNGNG
歩歩歩歩歩歩歩歩
塔馬斜+姫斜馬当
歩歩歩歩歩歩歩歩
+++++玉++
歩+++++++
+歩歩歩歩歩歩歩
塔馬斜王姫斜馬当
歩歩歩歩歩歩歩歩
0160詰みNGNG
男男男
男姫男
男男男
0161デフォルトの名無しさんNGNG
歩歩歩歩歩歩歩歩
塔馬斜+姫斜馬当
歩歩歩歩歩歩歩歩
+++++玉++
歩+馬+++++
+歩歩歩歩歩歩歩
塔+斜王姫斜馬当
歩歩歩歩歩歩歩歩
0162デフォルトの名無しさんNGNG
クズシェアウェア作家ウゼェよ!!!!
0163デフォルトの名無しさんNGNG
歩歩歩歩歩歩歩歩
塔馬斜++斜馬当
歩歩歩歩歩歩歩歩
++++金玉++
歩+馬+++++   
+歩歩歩歩歩歩歩
塔+斜王姫斜馬当
歩歩歩歩歩歩歩歩
0164デフォルトの名無しさんNGNG
歩歩歩歩歩歩歩歩
塔馬斜++斜馬当
歩歩歩歩歩歩歩歩
おいとも金玉++
ほーけー++++  
+歩歩歩歩歩歩歩
塔+斜王姫斜馬当
歩歩歩歩歩歩歩歩
0165定時報告NGNG
neoの掲示板は、
平和な一日です。
ところで、もう聞いたの?
neoに、逆コンパイラーの作り方。
0166デフォルトの名無しさんNGNG
歩歩歩歩歩歩歩歩 ー
塔馬斜++斜馬当
歩歩歩歩歩歩歩歩
+いとも金玉++
ほおけー++++  
+歩歩歩歩歩歩歩
塔+斜王姫斜馬当
歩歩歩歩歩歩歩歩
0167905NGNG
・開発状況途中報告

ラベルの復元ができん・・・。できたと思ったら
なんか#includeでソースつなげるとおかしくなる・・・。

#標準命令の復元機能はほぼ完成しました。
0168デフォルトの名無しさんNGNG
http://www68.dns.ne.jp/~bbs2/upload3/helen/OB0002970.htm
前スレに書かれていた解析関係のカキコだけ抜粋したものをうpしますた。
今から興味を持った人はどぞ、参考に。
0169デフォルトの名無しさんNGNG
前スレで逆棍持ってるって書いたんだけど見直してみたらexeは別にUSKぽくなかった。
拾った時にコメントかなんか付いてたのかも。

昨日は誰かがうぷすると思ってたのに、誰もしなかったね。やっぱ影響大きすぎるからかな?
こいつはラベルどころかモジュールまで復元するし、復元できなかったexeは見たことない。
やっぱ2chみたいな場所で出すのは危険過ぎるから止めときます。

復元きぼんexeあったらうぷしてくれれば復元しる?今日はもう寝るけど(藁
0170デフォルトの名無しさんNGNG
>>169
さっさと寝ろ。ハゲ。
0171デフォルトの名無しさんNGNG
>>169
…だったらいいさ、905に期待するから。
0172デフォルトの名無しさんNGNG
>>905
続きはどうした。
行き詰まったならそう書け。
手伝うぞ。
0173デフォルトの名無しさんNGNG
オセロタンは169に安心して撤退したのか?
0174905NGNG
>>172
バッチリ行き詰まってます--;
相変わらずラベルの復元にてこずってます。
ココさえできれば一通り完成するんだけど・・・。
0175デフォルトの名無しさんNGNG
まさかヘッダのラベルテーブルに気付いてないのか?
0176デフォルトの名無しさんNGNG
ジャンプ先のアドレスが書かれてるんじゃなかったのか・・・
0177デフォルトの名無しさんNGNG
905=ムネヲ=タイーホ
0178デフォルトの名無しさんNGNG
>>168
neoの暴挙が抜けてるのは168がneoだからか?
0179デフォルトの名無しさんNGNG
neoは905
0180デフォルトの名無しさんNGNG
>>169がneoというのが真実
0181デフォルトの名無しさんNGNG
アフォばっか
0182デフォルトの名無しさんNGNG
hspdisの作者のページで解析情報をまとめたページがアップされてたと思った。
でも、さすがにもうないかも。4年くらい前じゃなかったかな確か。
0183無neoハウスNGNG
>>177
宗男ネタは他でしろ。
それとも、宗男が逆コンパイラーでも作るのか?

例えば、
宗男の経歴をさかのぼる。
2002 議員辞職
2001
 ・
 ・
 ・
むNEO
は、neoだった。
0184無neoハウスNGNG
訂正
宗男(の)逆コンパイラーでも作るのか?
0185120NGNG
>182
誰すか?
てゆか、>>120で頼りない記憶を頼りに書いた事、合ってます?
0186デフォルトの名無しさんNGNG
何だよ。好きなexe逆棍するって逝ったのにリクエストなしか?
0187デフォルトの名無しさんNGNG
>>182
http://www.archive.org/
アドレス分かればここ使えば?
0188905NGNG
今からしばらく(2,3日)更新できそうにないからとりあえずできてる
ところまでウプしときます。
http://www.geocities.co.jp//Milano-Killer/4075/HSPdiscmp.lzh
0189無neoハウスNGNG
よくやった。
0190nёoNGNG
http://www68.dns.ne.jp/~bbs2/upload3/helen/OB0003110.lzh
0191デフォルトの名無しさんNGNG
neoタンのスクリが晒されてる・・・・
gosubでモジュール内部にジャンプしてたりするが
元のスクリも本当にそんななのか?(藁
0192デフォルトの名無しさんNGNG
×スクリ
○スクプリット
0193デフォルトの名無しさんNGNG
>>190
これ落とせないんだけど一体何?
0194デフォルトの名無しさんNGNG
netタンの精子
0195デフォルトの名無しさんNGNG
ますます分からん。
0196newoNGNG
>>193
tp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1006682821&res=7&fi=no
0197デフォルトの名無しさんNGNG
逮捕された
0198デフォルトの名無しさんNGNG
>>196
それで、これを復元したソフトは?
0199デフォルトの名無しさんNGNG
例の祐介風じゃないのか? 190に樹家
0200デフォルトの名無しさんNGNG
>>190,196
で使用した逆コンパイラうpしてくれ!
0201デフォルトの名無しさんNGNG
だから漏れは190を天才しただけだって
0202デフォルトの名無しさんNGNG
だからうpしろって言ってんだろ!
0203デフォルトの名無しさんNGNG
>905
これからは196の板使ったら?
始めて知ったけどこういう用途には便利そう。
0204デフォルトの名無しさんNGNG
>>188
> ;//10進数を2進数へ変換
> *ito2

これって論理比較でやった方が解りやすくないか?

if i.1&%10000000 : two.0=1
if i.1&%01000000 : two.1=1
以下略


> *cnvs
> c="\t〜"

これの\tも後から付けた方が可読性があがるような…
0205デフォルトの名無しさんNGNG
実は>>190はneoだという罠
0206無neoハウスNGNG
>>190は宗男だという技
0207905NGNG
>>204
>これって論理比較でやった方が解りやすくないか?
単なる手抜きです。
かなり昔まだ論理比較の「ろ」の字も知らない頃作ったものをコピペしたから。
まぁ、別に支障ないし、いいかなぁーと。

>これの\tも後から付けた方が可読性があがるような…
行き当たりばったりで作ったスクリプト(スクプリット)の行き付く先です(w


前述の通りしばらく作ってる暇がなさそうなので気になるとことか未完成部分の追加とか
してくれるとうれしかったり…。
0208デフォルトの名無しさんNGNG
>まぁ、別に支障ないし、いいかなぁーと。
文字列比較の方がパフォーマンス悪いですよ、奥さん。

&,|,^はビットごとの演算子といったほうが
良いと言ってみる今日この頃晴れ時々曇り。
0209デフォルトの名無しさんNGNG
190は泣きながら三日かけて手作業でスクリ復元しました(藁
0210デフォルトの名無しさんNGNG
>>208
垂れ餡にいじめられますよ、ヘロさん。
0211デフォルトの名無しさんNGNG
やっぱ漏れの他にも持ってるの居たか。
0212デフォルトの名無しさんNGNG
言い忘れたがリク無いの?
0213デフォルトの名無しさんNGNG
言い忘れたがリク無いの?わざわざ毎晩見に来てるってのに。
0214208NGNG
文字列云々は無視してください。
なんか勘違いしてました。

>>210
どゆこと?
0215デフォルトの名無しさんNGNG
>>209
それいつまで言ってんだよ。ダセー
0216デフォルトの名無しさんNGNG
205は二度書きして恥ずかしくて泣きながら八つ当たりしてます(藁
0217デフォルトの名無しさんNGNG
>>214
第2次垂れ路身大戦。
&^|はビット演算(炉み主張)であるか論理演算(垂れ主張)であるか
0218デフォルトの名無しさんNGNG
自作自演臭が漂ってるな
0219デフォルトの名無しさんNGNG
>>213
無駄足を踏ませるのもあれだから俺が代表して答えよう。

 な い よ 。
0220デフォルトの名無しさんNGNG
つまらない。もう寝る。
もうこねぇよ!
0221デフォルトの名無しさんNGNG
>>217
結局は言葉の問題になってしまうのでしょうがCではビット演算子と論理演算子は全く別物ですよ。
例えば
if ((a!=0) && (b/a == 1)) hoge;
は正しいコードですが
if ((a!=0) & (b/a == 1)) hoge;
はaが0のときゼロ除算エラーになります。
これは論理演算子の場合は両方のオペランドに対してそれぞれ真か偽か評価を行なうからです。
だからこの場合は (a!=0) が偽の時次のオペランドが何であれ偽ですから
 (b/a == 1) は評価されずに判定が終わります。
一方ビット演算の場合は (a!=0) と (b/a == 1) をまず評価しそれをビット演算しますから
ゼロ除算エラーになります。
HSPのこれも
if (a!=0) & (b/a) : hoge
エラーを回避できませんから論理演算子とは呼びたくないですね。
まあ呼んでもいいとしてもこれとは別に「C的な」論理演算子も欲しいです。
0222デフォルトの名無しさんNGNG
捕捉します.
Ada, modula, etc. の
cand は論理演算子で,
and: 論理演算子ではない,
ということです.
0223デフォルトの名無しさんNGNG
>>221
ありがとう
0224デフォルトの名無しさんNGNG
>>221-222
おいおい、論理演算と短絡評価を混同してるぞ。
0225デフォルトの名無しさんNGNG
おい、HSPの凄いソフトは結局あのデモだけなのか?
0226208NGNG
>>224
えーと、私的にはショートカットを行なうのが論理演算だということです。
気持ちの問題なので余り気にせずに
0227デフォルトの名無しさんNGNG
>>226
そりゃ考えを改めたほうがいい。
0228デフォルトの名無しさんNGNG
>>225
chokko兄ぃのは、
すごいって分けじゃないけどよく出来てるよ。
0229デフォルトの名無しさんNGNG
>>228
ハァ?
chokko様がすごくない?ネタでしょ?本気だったらかなりヤバイよ?
0230208NGNG
>>227
少なくともCでは論理演算子はショートカットをすることが
言語レベルで定義されていますので
(K&R第2版日本語訳 P255- 参照)
考えを改めるつもりはありません。
0231デフォルトの名無しさんNGNG
>>230
そうだね。
それは”Cの”言語レベルで定義されてる話でしょ?
なーしてC以外の言語の論理演算もショートカットしなきゃならんのよ。
0232デフォルトの名無しさんNGNG
>>225
魚人氏の懐ゲーが、完成度も面白さも最高だったな。
コナミに圧力かけられて公開中止したエピソードというか
エピローグまである程。
ただし年寄りしか理解できんかったかもしれん。
0233208NGNG
>>231
だから気持ちの問題ですよ。気にせずに

あと論理演算子がショートカットしなければいけないというより
ビットごとの演算子とショートカットをする論理演算子を別々に欲しいということです。
定義にはそれほど拘りませんよ。
0234デフォルトの名無しさんNGNG
ん? くっだんねー解析はやめてこっちがヲッチスレになるのか?
0235デフォルトの名無しさんNGNG
「うん〜ちん〜まん〜」はアク禁にもならず放置ですか?

「初めまして」ってスレたてんな!ハゲ!

っと。
0236224NGNG
>>233
まあ、あんたのことなんか気にしてもしょうがねーだけど、ここ読んでる奴が
間違って覚えると困るからな。

論理演算は、意味だよ。True AND True → True とか True OR False → True
とかね。短絡評価 (ショートカット) は、実装だぞ。A AND B で、A が FALSE
だったら、B が TRUE だろうが FALSE だろうが関係なく (A AND B) が FALSE
になるから、B の評価をしないで良いというのが短絡評価。
だから、(実際にそんな処理系は見た事ないけど) ビット演算を短絡評価すること
もできるわけだよ。X AND Y で、X が All-0 なら、Y を評価しないで All-0
返すようにつくりゃ良いんだから。そんな処理系があったら、あんたはこれをなん
て呼ぶんだ ?

言葉の誤用は、改めた方がいいぞ。言ってることの信用度ががた落ちするからな。
0237デフォルトの名無しさんNGNG
なんかβ板で初心者が暴れてるな。マカーなんて、みんなビルゲイツ様の
下僕になればいいのに(プ
0238デフォルトの名無しさんNGNG
祭り開催中

携帯のメアドを何度変えても送り付けられる迷惑メール。
いったいどうして自分のメアドがバレるのか?
答えの一つはこんなソフトを販売している業者がいるという現実。
http://www.hitbitweb.com/


【最悪】迷惑メール追放【無法】
http://cocoa.2ch.net/test/read.cgi/phs/1017853520/



コピペして同士を増やそう

0239デフォルトの名無しさんNGNG
>>233
言葉の誤用は、改めた方がいいぞ。言ってることの信用度ががた落ちするからな。
0240208NGNG
>>236
短絡評価は実装に限った話ではないですよ。
なぜCや、あるいはその他の言語でわざわざ
ショートカットを行なうと定義されているかわかりますか?
ショートカットをするかしないかで文の意味が変わるからですよ。
実装と意味という分け方は誤りかと。
0241デフォルトの名無しさんNGNG
>>236
おまえバカ!
0242デフォルトの名無しさんNGNG
お前らスレ違い。
0243デフォルトの名無しさんNGNG
>>242
おまえバカ!
0244デフォルトの名無しさんNGNG
次ターン:
236!
ほれ、行け!
0245224NGNG
>>240
C なんかでは、「そう言う実装にする」ことに言語仕様で規定してるだけの話。

> なぜCや、あるいはその他の言語でわざわざ
> ショートカットを行なうと定義されているかわかりますか?

あんた、天然 ? 短絡評価っていう言葉知っててそう言うこと知らん奴いるとで
も思ってんの ? まあ、一応書いとこ... if(p != NULL && p->a == 0){...
でわかるだろ ?

意味的には、(A == 0) AND (B / A = 1) なんて論理式は、A == 0 の時は、
未定義なんだよ。(本当は A AND B == B AND A だからね。) でも、上に書いた
ような if() 文がかけると便利なことが多いから、C では、短絡評価するように
規定されてるだけだよ。わかった ?

まあ、正直「意味」のほうは良い言葉が思いつかん。それはどうでもいいから、
「>>226 ショートカットを行なうのが論理演算だということです」なんて事を
堂々と書くな、バカ。
0246!208 && !236NGNG
日本で進んで良い信号の色は何色?って問題ですね…
本来は、明らかに>>236の言い分の方が正しいが
(論理和・論理積等の論理演算を行う演算子が、論理演算子)
実際には、Cの影響を受けた言語が多いですし
まぁ、信号の色も青になってしまったから…

ネタだから、ツッコミは無しの方向で…
0247デフォルトの名無しさんNGNG
>>240
バーカ、バーカ。
0248208NGNG
>>245
もし短絡評価を単なる「実装の問題」だと思っているなら考えを改めた方がいいかと
という意味ですよ。

>「>>226 ショートカットを行なうのが論理演算だということです」なんて事を
>堂々と書くな、バカ。
わざわざ「私的に」と書いたのに突っ込まれても・・・・
「私的に」の意味分かりませんでしたか?
0249デフォルトの名無しさんNGNG
>本当は A AND B == B AND A だからね
何故?
ツッコミを入れてしまった…。(^^;
0250デフォルトの名無しさんNGNG
>>245
バーカ、バーカ、バーカ。
0251デフォルトの名無しさんNGNG
ブールダイスウ
0252208NGNG
あー、なんか分かってもらえないかもしれないので。
「実装の問題」って言うのはぶっちゃけ「処理系定義」ってことです。
「意味」は言語定義されているもの。

というか「論理演算子はショートカットを行なう」というのは
「ポインタの値はアドレス」と同じ様に世の中を楽に渡る為の
嘘みたいなものなんで勘弁してください。
そんな分かりきったことを真面目に反論されても、ねぇ・・・・
■ このスレッドは過去ログ倉庫に格納されています