首页
社区
课程
招聘
[求助]用c++写远程注入的问题
发表于: 2014-6-7 19:38 4497

[求助]用c++写远程注入的问题

2014-6-7 19:38
4497
最近学习很老的注入技术, 用WriteProcessMemory做注入。

以下是要注入的汇编 和 call的代碼

void tidy() {
    DWORD addr = 0x4AED10;
    _asm{
        pushad
        pushfd
        mov eax, addr
        call eax
        popfd
        popad
        ret
    }
}

void callAsm(const char* processName, PVOID CallFun)
{
    HANDLE hProcess = OpenProcessEasy(processName);
    LPVOID allocAddr = VirtualAllocEx(hProcess, NULL, 0x100, MEM_COMMIT, PAGE_EXECUTE_READ);
    // 假设 allocAddr = 0xabc
    WriteProcessMemory(hProcess, allocAddr, CallFun, 0x100, NULL);

}

执行callAsm("xxx.exe",tidy);
用CE查了0xabc 这个地址 写进去的东西竟是
E9 98190000 jmp 0364199D
E9 27190000 jmp 03641931

完全不是tidy内的汇编

如果将tidy转成机器码  就肯定會成功
byte code[] = { 0x60, 0x9C, 0xB8, 0x10, 0xED, 0x4A, 0x00, 0xFF, 0xD0, 0x9D, 0x61, 0xC3 };

但是有没有引擎 能将汇编自动转成一堆机器码?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 60
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
函数声明上写_delcspec(naked),这样编译器才会知道这个函数你是用汇编自写的,不会加入栈平衡代码
2014-6-7 20:13
0
雪    币: 11
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
debug版的有个jmp table,那并不是真正的函数地址
2014-6-7 21:07
0
雪    币: 130
活跃值: (3483)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
楼上2位都是对的 ,楼主应是debug版本编译出来的代码, 最好加上(naked)修饰
2014-6-7 22:28
0
雪    币: 44
活跃值: (186)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
楼主的功力还不够深,

执行callAsm("xxx.exe",tidy);
用CE查了0xabc 这个地址 写进去的东西竟是
E9 98190000 jmp 0364199D
E9 27190000 jmp 03641931

你找到的还不是CALL地址呀,JMP指向的才是真正的CALL代码地址
2014-6-7 22:31
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
加了 但是编译錯誤... 我用的是VC++ 2013

error C2489: 'addr' : 不允许在 'naked' 函式的函式范围中初始化自动变数或暂存器变数
2014-6-7 23:47
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
加了就变成以下
2014-6-8 00:01
0
雪    币: 8
活跃值: (33)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
__declspec (naked) void _InlineHook_XorPass()
{
        __asm
        {
                push ebp
                mov ebp,esp
                mov esi,offset[GameBuff_XorPass]
                lea ecx,[ebx+0xD54]
                push esi
                call ds:[lstrcpyA]
                push 6
                push offset[IniFile]
                push offset[GameBuff_XorPass]
                push offset[GameBuff_User]
                call _WireGameBuff_Ini
                mov esp,ebp
                pop ebp
                ret
        }
};   这是一段HOOK的内联汇编代码 请借鉴
2014-6-8 00:12
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
9
<a href=377K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3q4U0K9r3g2@1k6i4u0U0K9h3q4D9K9i4y4Y4k6h3&6W2M7X3W2I4N6h3g2W2L8X3I4A6k6$3&6W2k6Y4u0S2L8X3y4W2i4K6u0W2j5$3!0E0i4K6u0r3i4K6t1$3k6%4c8Q4x3@1u0U0K9h3q4D9K9i4x3`. generique</a> cialis
<a href=928K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3q4U0M7i4g2A6M7%4c8S2M7X3g2H3K9h3I4D9L8$3I4W2j5$3W2S2L8r3W2K6k6$3g2F1k6i4u0A6j5$3!0A6N6r3q4D9K9h3q4Q4x3X3g2U0L8$3#2Q4x3V1k6Q4x3U0k6Y4N6q4)9K6b7X3q4U0M7i4g2A6M7%4c8G2 cialis </a>  generico cialis
<a href=6fbK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3y4G2L8i4m8J5j5i4u0U0K9h3q4D9K9i4y4U0L8$3#2H3M7X3W2E0K9h3c8G2k6$3g2F1k6i4u0A6j5$3!0W2M7%4m8S2L8X3q4Q4x3X3g2U0L8$3#2Q4x3V1k6Q4x3U0k6Y4N6q4)9K6b7X3y4G2L8i4m8J5j5i4t1`. cialis</a> cialis venta
2014-6-8 06:46
0
雪    币: 8
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
确实要加上_declspecl (naked)
2014-6-8 09:27
0
游客
登录 | 注册 方可回帖
返回