逆アセンブラで泥沼に嵌った際のソースだよ。
当たり前のことで知ってる人は知ってて当然なんだけど、知らなかったww
Cコンパイラ持ってたらぜひ。
__try辺りにブレイクポイントを仕掛けて
ステップ実行してみて下さい。
そして画面に表示される文字を確認してから、
今度は通常実行で表示される文字を確認してみてくんさい。
#include <stdio.h>
#include <string.h>
int main(int argc, char* argv[])
{
char ch[10];
__try
{
__asm INT 03h;
sprintf(ch, "%s", "bad!!");
}
__except(1)
{
sprintf(ch, "%s", "good!!");
}
printf("%s\n", ch);
return 0;
}
簡単に説明しちゃうと構造化例外処理を用いた簡易デバッガ対策だよ。
キモは、インラインアセンブラの__asm INT 3;で例外を投げてるとこだよ。
通常実行だとINT 3で例外が投げられるんで、exceptでキャッチして処理が続行されるんだけど、
デバッガでおいかけると例外処理を無視して実行されるもんだから、
exceptの処理が飛ばされると言ふ・・・。
INT 1の例外もおんなじ様に処理できるよ。
ぽぞの言ってることが理解できません。
対抗してやるー。
いやいや、ちょっと失敗のお話。
ついついうっかりRFの排煙孔付くの忘れててアス防仕上がったあとに
SGPスリーブつけなくちゃいけなくって
PL9SOP仕様のツバまで全周現場溶接して
スリーブ廻りにつけなくっちゃいけないんだよー。
スタッパ敷かないとダメだし、アスはすぐ穴空くから溶接は怖いし。
鋼管もΦ200とかいうデカブツなもんで、後からアス防剥がすにしたって
漏っちゃうと困るからルーフィングの重ね考えて500□ぐらいでカッター入れて斫りだぜベイベー。
断熱材の下に雨回ると困るから周りはコーチング差さないとだめだし
スラブコア抜きでアンカー効かないとまずいから全アス撤去しないとだめだし。
コア抜いたら抜いたでスリーブ周りグラウトやんなきゃダメだし
普通の防モルでいいじゃんって話。
なんでわざわざグラウト使わなきゃいかんねん。
補修はトーチしかできないけどうまくいくのかしら。