数週間前にデンマークのサイバーセキュリティセンターで問題が発生しました。 参照https://puzzling.stackexchange.com/questions/49702/programming-news-paper-puzzle/49757課題:コンパイル成功後のアクセス違反の読み取り/実行
挑戦の一部は、アセンブリコードを修正し、処理する.imgファイルを読み込んでコンパイルすることです。このファイルはu5emu.asmと呼ばれます。彼が書いたマイナーなバグがありますhttp://pastebin.com/TChuYF29
:デビッド・Jと呼ば
ユーザーは、ここでは.ASMコードのクリーンアップ版を掲載しました。代わりに、126行目に、それ以外の場合はうまく見えます。私が追加したことは、get libとputcharを.asmコードの_getcharと_putcharに変更して、C libが機能するようにすることでした。また、私は_asm_mainにU5_LEを編集しました。driver.cのmainは_asm_mainを呼び出すからです。
私はやって.exeを作成する限り得ている:実行可能ファイルを作成します
nasm -f win32 u5emu.asm
gcc -o u5emu u5emu.obj driver.c asm_io.obj
を。私はかなりプログラムが私に(getcharがあるので)入力を求め、それがインクルードされたファイル(B64でエンコードされた文字列を処理して、[、などのような奇妙な記号を取り除いたもの)とチャレンジの次の部分の手がかりを出す。
私はexeファイルを実行すると、それがクラッシュしたと私はデバッグするとき、私は2種類のエラーを取得:私はここで行き止まりにヒットしました
Unhandled exception at 0x546CD4A1 in u5emu.exe: 0xC0000005: Access violation reading location 0x00000000.
そして
Exception thrown at 0x00000000 in u5emu.exe: 0xC0000005: Access violation executing location 0x00000000
ので、誰かをすることができます願って、この問題を解決する方法を私に助けてください。
*ウェイ*コードを読むためのマクロが多すぎます。ただし、* "アクセス違反の読み取り場所0x00000000" *は、NULLポインタを使用することを意味します。それを探し始める。 –