吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7526|回复: 13
收起左侧

[其他转载] 无模块远程注入

 关闭 [复制链接]
690827027 发表于 2009-3-25 09:42
本帖最后由 690827027 于 2009-3-25 10:02 编辑

#include "windows.h"
//MessageBox 函数参数
typedef struct _REMOTE_PARAMETERS
{
        HWND hwnd;
        LPSTR lpszText;
        LPSTR lpszCaption;
        int nType;
}REMOTE_PARAMETERS,*PREMOTE_PARAMETERS;

//提升权限
BOOL GetDebugPrivilege()
{
        BOOL bResult = FALSE;
        HANDLE hToken;
        TOKEN_PRIVILEGES TokenPrivileges;
       
        if (OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY | TOKEN_ADJUST_PRIVILEGES, &hToken))
        {
                TokenPrivileges.PrivilegeCount = 1;
                LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &TokenPrivileges.Privileges[0].Luid);
               
                TokenPrivileges.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
                bResult = AdjustTokenPrivileges(hToken, FALSE, &TokenPrivileges, sizeof(TOKEN_PRIVILEGES), NULL, NULL);
                CloseHandle(hToken);
        }
       
        return bResult;
}

int main(int argc, char* argv[])
{
        DWORD dwoffset = 0,dwsize = 0;
        _asm jmp LOOP2
        _asm
        {
LOOP1:
                        mov eax,[esp+4]//取地址,即指向PREMOTE_PARAMETERS的指针
                        mov ebx,[eax + 0xC]
                        push ebx
                        mov ebx,[eax+8]
                        push ebx
                        mov ebx,[eax+4]
                        push ebx
                        mov ebx,dword ptr[eax]
                        push ebx       
                        mov eax, 0X77D5058A//硬编码 MessageBoxA函数地址
                        push 0X7C80C058//硬编码 ExitThread函数地址
                    push eax
                        ret
LOOP2:
                    lea eax,LOOP1
                        mov dwoffset,eax
                        lea eax,LOOP2
                        sub eax,offset LOOP1
                        mov dwsize,eax
        }
       
        GetDebugPrivilege();
        DWORD dwThreadId;
        PREMOTE_PARAMETERS lpParamaters = new REMOTE_PARAMETERS;
        memset(lpParamaters,0,sizeof(REMOTE_PARAMETERS));
    HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,3496);//进程ID
        LPVOID lpszDes = VirtualAllocEx(hProcess,0,300,MEM_COMMIT,PAGE_EXECUTE_READWRITE);
        WriteProcessMemory(hProcess,lpszDes,(char*)dwoffset,100,&dwThreadId);//写入代码
    WriteProcessMemory(hProcess,((char*)lpszDes + 100),"Hello QQ\r\n",100,&dwThreadId);//写入弹出字符串
        lpParamaters->hwnd = 0;
        lpParamaters->lpszText = (LPSTR)((char*)lpszDes + 100);
    lpParamaters->lpszCaption = (LPSTR)((char*)lpszDes + 100);
        lpParamaters->nType = MB_OKCANCEL|MB_ICONQUESTION;
    WriteProcessMemory(hProcess,((char*)lpszDes + 200),lpParamaters,sizeof(REMOTE_PARAMETERS),&dwThreadId);//写入参数
        HANDLE hRemoteThread = CreateRemoteThread(hProcess,NULL,0,(LPTHREAD_START_ROUTINE)(lpszDes),((char*)lpszDes + 200),NULL,&dwThreadId);
        WaitForSingleObject(hRemoteThread,INFINITE);
        return 0;
}

免费评分

参与人数 1威望 +1 收起 理由
datochan + 1 谢谢分享~~~

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

LCG 发表于 2009-3-25 09:45
来点说明呀。。。。
Hmily 发表于 2009-3-25 09:46
qq227479645 发表于 2009-3-25 09:54
datochan 发表于 2009-3-25 10:06
来点说明呀。。。。
LCG 发表于 2009-3-25 09:45


先调进程令牌,提升进程权限,然后把要执行的代码写到目标进程里,CreateRemoteThread……

更详细的说明见:http://www.52pojie.cn/thread-19034-1-2.html
frozenrain 发表于 2009-3-25 12:25
TokenPrivileges.PrivilegeCount = 1;
明次 发表于 2009-4-5 22:54
虽然看不懂 但感觉好强悍!
wxhwhmanshan 发表于 2011-1-2 14:42
好熟悉,学习 强啊
zy331306080 发表于 2011-1-8 10:38
c++菜鸟来看看
惹火上身 发表于 2011-3-23 17:02
本帖最后由 惹火上身 于 2011-3-23 17:02 编辑

看不懂啊 ,膜拜。。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-28 07:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表