易语言DLL如何注入进程

易语言DLL如何注入进程,第1张

你得说要注入什么进程!注入DNF是不能这样直接注入的 如果是其它可以这样 版本 2 如果真 (进程是否存在 (“DNFexe”)) 输入法注入激活 (取句柄2 (“DNFexe”)) ---------------------------精易论坛 - 问问团队--------------------------- 此答案来源于 → 精易论坛,要学习编程的可百度一下"精易论坛" 我们的口号是:帮助别人等于帮助自己

#include <windowsh>
int DllInject(HANDLE hProcess, const char dllname) {
 unsigned long  (__stdcall faddr)(void);
 int t;
 size_t abc;
 HMODULE hdll;
 HANDLE hp, ht;
 LPVOID paddr;
 unsigned long exitcode;
    int dllnamelen;
    hdll = GetModuleHandleA("kernel32dll");
    if(hdll == 0) return 0;
    faddr = (unsigned long (__stdcall )(void)) GetProcAddress(hdll, "LoadLibraryA");
    if(faddr == 0) return 0;
 
    dllnamelen = strlen(dllname) + 1;
    paddr = VirtualAllocEx(hProcess, NULL, dllnamelen, MEM_COMMIT, PAGE_READWRITE);
    if(paddr == 0) return 0;
    WriteProcessMemory(hProcess, paddr, (void)dllname, strlen(dllname)+1, (SIZE_T) &abc);
    ht = CreateRemoteThread(hProcess, NULL, 0, faddr, paddr, 0, NULL);
    if(ht == 0) {
        VirtualFreeEx(hProcess, paddr, dllnamelen, MEM_DECOMMIT);
        return 0;
    }
    WaitForSingleObject(ht, INFINITE);
    GetExitCodeThread(ht, &exitcode);
    CloseHandle(ht);
    VirtualFreeEx(hProcess, paddr, dllnamelen, MEM_DECOMMIT);
    
    return 1;
}
int fun (char exename, const char dllname) {
 STARTUPINFOA si;
 PROCESS_INFORMATION pi;
 
 if(exename == 0) return 0;
 if(dllname == 0) return 0;
 memset(&si, 0, sizeof(si));
 memset(&pi, 0, sizeof(pi));
 if(CreateProcessA(NULL, exename, NULL, NULL, 0, CREATE_SUSPENDED, NULL, NULL, &si, &pi) == 0) return 0;
 if(DllInject(pihProcess, dllname) == 0) return 0;
 ResumeThread(pihThread);
 CloseHandle(pihThread);
 CloseHandle(pihProcess);
    
    return 1;
}

启动程序并注入DLL的代码。

C#调用需要把DLL库的接口封送。
例如:
本示例显示如何使用 DllImport 属性通过调用 msvcrtdll 中的 puts 输出消息。
// PInvokeTestcsusing System;
using SystemRuntimeInteropServices;
class PlatformInvokeTest
{
[DllImport("msvcrtdll")]
public static extern int puts(string c);
[DllImport("msvcrtdll")]
internal static extern int _flushall();
public static void Main()
{
puts("Test");
_flushall();
}
}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13411283.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-31
下一篇 2023-07-31

发表评论

登录后才能评论

评论列表(0条)

保存