>>681
>>677だとdeclspec(naked)やomit-frame-pointerがあるからかなり確実性が上がってるように見える
・プロローグコード無しならコードサイズはまず膨れない
・関数本体がjmp先って事でも無い限り、全部インラインアセンブリなのでコードの共有は無い
・スタック検査は無効化してあるので挿入されない
・コードを含む構造体の相対アクセスなのでコード自体を変更しないから問題ない
・PAGE_EXECUTE_READWRITEしてるので問題ない

分割ってのはMIPSだかの固定長命令セットで上位movと下位movに分割される奴だけど、
そういうCPUをサポートするんでも無ければ問題ない・・・けど符号拡張はx86でも起きるぞ。
MOV EAX,0xFFFFFFFFがOR EAX,-1に変形されるのなんて良くある事。

関数本体がjmp先にあるってケースくらいじゃないかな、677で怖いのは。

俺は、DWORD __declspec(naked) Func(DWORD){__asm{
    cmp [esp+4],0
    jnz J1
    mov eax,offset L0
    ret
  J1: mov eax,offset LE0
    sub eax,offset L0
    ret
  L0: コード本体
  LE0:}}ってやって長さと位置もインラインアセンブリ中で求めてた。