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

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

2014-6-7 19:38
4351
最近学习很老的注入技术, 用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 };

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

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 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
雪    币: 129
活跃值: (2763)
能力值: ( 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=http://achetercialisgeneriqueenlignefrance.com/>cialis generique</a> cialis
<a href=http://acquistarepillolecialisgenericoitalia.com/>acquisto cialis </a>  generico cialis
<a href=http://comprarcialiscomprimidogenericoespana.com/>comprar cialis</a> cialis venta
2014-6-8 06:46
0
雪    币: 8
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
确实要加上_declspecl (naked)
2014-6-8 09:27
0
游客
登录 | 注册 方可回帖
返回
//