Entries from 2006-12-01 to 1 month
monalibcが特殊だからか? 否 DLLTEST.DLLを作ってみたが現象は同じ monalibcが monapi に依存しているからか? 否 DLLTEST.DLLをmonapiから独立にしたが変わらなかった Mapファイルを見てみよう dlltest .text 0x00401000 0x80 dlltest_impl.o 0x00401050 dl…
MONAPI.DLLの dllmain は呼べるようになった。 MONALIBC.DLLの dllmain のcallで失敗する。 問題を切り分けている最中だけど、DLLの作り方が悪いのかも。
今日はJohn Lennonの命日ですね。 People say Im crazy doing what Im doing Well they give me all kinds of warnings to save me from ruin When I say that Im o.k. well they look at me kind of strange Surely youre not happy now you no longer play…
OSM (オープンソースマガジン) 2007年 01月号 [雑誌]に「ハッカーへの遠回り」という記事を書きました。 今日発売です。
「あぁ、今日は暇だなぁ。何やろうかな?」という日が、ここ数年全然ないな。 やりたいことあるってことだろうから良いことに違いない。
ライト・ポータブル・コードをパラパラとめくっていて思ったのですが、Monaで使っている dword(符号無し32bit) word(符号無し16bit) byte(符号無し8bit) のやりかたは良くないかもしれない。一度スレでも指摘されたし。 Monaで描かれているコードの移植性を…
Perlの影響か?C++でreturn 書き忘れた。
EntryPointがRelocateされなきゃいけないのだけどその辺りがまだ調べきれていない。
BaysideさんによりMona Application SDK(0.3.0alpha8版)がリリースされました。 ダウンロードはSourceForge.netからどうぞ。
依存しているDLLを、依存順に列挙できた。 あともう少し!。 PELinkerが保持していた PEData* を vector で管理するようにした。 algorithmで reverse したかったという(ぉ
ぐったりしてコードが書けないのでライセンスの文章でもチェックしよう。
mona-stdioに svn:ignore をあれこれ設定した。 これで svn add 忘れを防止しないとな。
ふと思い立ってBoostはMonaで動かないかなと20分くらいやってみたがダメだった。 libstdc++のutilityヘッダがないとか。libstc++を整備しないとダメかなぁ。 g++付属のlibstdc++をリンクしたらライセンス的にまずいんだろうか? 良く分からない。ついでに例外…
4.4BSD Liteはnon-freeなの? →核心部分。良く見たらberoさんだ。 g++TryCatch - めらまんホームページ ということで、gccを利用してMonaのアプリにgcc付属のlibstdc++や例外周りのコードをリンクすることはよさげ。 gccのlibstdc++をツリーにいれたらまた別…
またまた実験 00000000 55 push ebp 00000001 89E5 mov ebp,esp 00000003 B878563412 mov eax,0x12345678 00000008 FFD0 call eax 0000000A C9 leave 0000000B C3 retということはきっとこんなことが出来るはず void hello() { printf("hello\n"); } int mai…
そろそろ核心部分です。 ndisasm -u call.oの一部 00000130 55 push ebp 00000131 89E5 mov ebp,esp 00000133 81EC08000000 sub esp,0x8 00000139 8B4508 mov eax,[ebp+0x8] 0000013C FFD0 call eax 0000013E C9 leave 0000013F C3 retこんな感じです。 main…
もう少し隠蔽しましょう。 void hello() { printf("%s\n", __func__); } void goodbye() { printf("%s\n", __func__); } typedef unsigned char byte; typedef unsigned short word; typedef unsigned int dword; byte* make_code(void (**functions)(void),…
本当はアセンブラで書いてアセンブルしてバイナリ列を該当部に使って終わりなのですが寄り道。 引数で受け取ったアドレスの関数を call する関数を書いてアセンブリのコードを眺めます。 unsined int なのはお行儀が良くないですが気にしないでください。 vo…
c:\xxxxx\oldmona\ref で貴重な資料を大量発掘。NoName(のなめ)とかOrange PekoeとかELFの資料とか 一番熱いのが ホイールマウス.txt (笑。
未踏の説明会に行ってきた。良い出会いや思いもよらない繋がりを発見した。行き帰りの電車でC++クックブックを半分位読んだ。STLの使いかたが甘かったなあとか、Boost良さげだなぁとか知らないことが多くて勉強になった。 クックブックに載っているコード自…
実験その2です、今度は call 部分を外出しにします。 call.asm BITS 32 global call_func call_func: push ebp mov ebp, esp sub esp, 8 mov eax, dword [ebp + 8] call eax leave retnasm -felf call.asm -o call.o main.cpp extern "C" void call_func(uns…