首页
社区
课程
招聘
[旧帖] [求助]内连汇编. 0.00雪花
发表于: 2012-7-6 13:54 1229

[旧帖] [求助]内连汇编. 0.00雪花

2012-7-6 13:54
1229
我的目的是:定义一汇编代码,把它写入某个地方.(不想通过shellcode方式)
方法是:在函数中内联汇编,可是不成功。

vc6:c/c++
asm_code()
{
  __asm
{
    xor eax,eax
}
}

void main()
{
  asm_code();//一些汇编代码
}

正常情况时候:
对main反汇编:call xxxxxx, 跟进是jmp xxxxx

当static asm_coode()定义:
对main反汇编:call xxxxxx, 跟进是asm_code 的函数主体

当_dsclspe(naked) asm_code()定义:
对main反汇编:call xxxxxx, 跟进是没有框架的函数

如何能够直接是把asm_code展开?
就是在汇编main的时候:
看到的直接是asm_code的代码?

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 2105
活跃值: (424)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
inline
2012-7-6 13:59
0
雪    币: 8
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
__inline asm_code()
{
        _asm
        {
                xor eax,eax
        }

}

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
        // TODO: Place code here.

        asm_code();

        return 0;
}
00401020   push        ebp
00401021   mov         ebp,esp
00401023   sub         esp,40h
00401026   push        ebx
00401027   push        esi
00401028   push        edi
00401029   lea         edi,[ebp-40h]
0040102C   mov         ecx,10h
00401031   mov         eax,0CCCCCCCCh
00401036   rep stos    dword ptr [edi]
20:       // TODO: Place code here.
21:
22:       asm_code();
00401038   call        @ILT+0(asm_code) (00401005)
23:
24:       return 0;
0040103D   xor         eax,eax
25:   }
0040103F   pop         edi
00401040   pop         esi
00401041   pop         ebx
00401042   add         esp,40h
00401045   cmp         ebp,esp
00401047   call        __chkesp (004010a0)
0040104C   mov         esp,ebp
0040104E   pop         ebp
0040104F   ret         10h
2012-7-6 14:03
0
雪    币: 8
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
为什么我的不行呢?
2012-7-7 14:49
0
游客
登录 | 注册 方可回帖
返回
//