ページへ戻る

− Links

 印刷 

sero​/efg01解析 のバックアップ差分(No.3) :: OSASK計画

osaskwiki:sero/efg01解析 のバックアップ差分(No.3)

« Prev[4]  Next »[5]
2: 2010-02-03 (水) 20:53:04 sero[6] ソース[7] 3: 2010-02-04 (木) 01:10:44 sero[6] ソース[8]
Line 19: Line 19:
+ efg01/asm_apiで、レジスタをスタックに積んでから、 + efg01/asm_apiで、レジスタをスタックに積んでから、
+ efg01/c_api()がコールされる + efg01/c_api()がコールされる
 +
 +** void c_api(int edi, int esi, int ebp, int esp, int ebx, int edx, int ecx, int eax, int eip) [#k101e498]
 +- 引数: APIを呼び出したときのアプリのレジスタの値(これを変更すると、アプリのレジスタも書き換わる)
 +- 主要なローカル変数
 +-- struct READ_API ra : efg01に渡されるパケットから情報を取り出すための構造体
 +-- int f3 = 1 : あといくつのAPI機能を実行するか(初期値は1、つまり、一つの機能を実行したら終了)
 +- メインの処理
 +    if (edi == 0)
 +     cmd = (UCHAR *) eip;
 +    init_ra(&ra, cmd);
 +    ra.reg32 = &edi;
 +    ra.st0 = &eip;
 +    for (;;) {
 +     中略
 +    }
« Prev[4]  Next »[5]