挂海论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
 友情提示:文字/图片广告均非网站意见,请担保交易勿直接付款,由此产生的责任自负
玩游戏来117游戏网(H5不下载也能玩手游传奇,吃鸡,竞技都有)天下盾/国内/免实名/免备案CDN无视一切CC/DD攻击 找塔科夫作者TG @wuhao1954 QQ283931494 出租内核驱动读写保护,价格亲民,高品质群:530544047 →入驻S9企业发卡网各种全黑号辅助群:475351077
██【我要租此广告位】██... .
查看: 3777|回复: 0
打印 上一主题 下一主题

[VB例程源码] windows下删除自身程序源码

[复制链接]
6高级会员
624/1100

624

积分

193

主题

3

听众
已帮网友解决0 个问题
好评
0
贡献
431
海币
7388
交易币
0
跳转到指定楼层
楼主
发表于 2017-6-3 10:55:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提醒:若下载的软件是收费的"请不要付款",可能是骗子,请立即联系本站举报,执意要付款被骗后本站概不负责。(任何交易请走第三方中介,请勿直接付款交易以免被骗!切记).

友情提示:文字/图片广告均非本站意见,请担保交易勿直接付款,由此产生的责任自负!!!↑↑


windows下删除自身程序源码

  1. #include <windows.h>
  2. #include <tlhelp32.h>
  3. #include <iostream>
  4.   
  5. __declspec(naked) DWORD WINAPI Start_(LPVOID lpThreadParameter)
  6. {   
  7.     __asm
  8.     {     
  9.         call    $+5
  10.         sub     [esp],5                 ; // _code_start_           
  11.         mov     ebp,[esp+8]             ; // hHandle
  12.         push    [ebp-4]
  13.         push    INFINITE               
  14.         push    [ebp-4]                 
  15.   
  16.         call    [ebp-8]                 ; // WaitForSingleObject
  17.         call    [ebp-12]                ; // CloseHandle
  18.   
  19.         push    ebp                     ; // lpFileName
  20.         call    [ebp-16]                ; // DeleteFileA           
  21.   
  22.         pop     eax
  23.         push    EXIT_SUCCESS         
  24.         sub     esp,4                   ; // nothing
  25.   
  26.         push    MEM_RELEASE            
  27.         push    0  
  28.         push    eax                     ; // _code_start_   
  29.   
  30.         push    [ebp-20]                ; // ExitThread
  31.         mov     eax,[ebp-24]
  32.         jmp     eax                     ; // VirtualFree        
  33.     }
  34. }
  35.   
  36. BYTE code[] ={
  37.     232,0,0,0,0,128,44,36,5,139,108,36,8,255,117,
  38.     252,106,255,255,117,252,255,85,248,255,85,244,
  39.     85,255,85,240,88,106,0,131,236,4,104,0,
  40.     128,0,0,106,0,80,255,117,236,139,69,232,255,224
  41. };
  42. #include <iostream>
  43. void DeleteMe()
  44. {
  45.     HANDLE hToken;
  46.     TOKEN_PRIVILEGES tp;
  47.     ZeroMemory(&tp,sizeof tp);
  48.     HANDLE hProcess = GetCurrentProcess();
  49.   
  50.     OpenProcessToken(hProcess, TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY,&hToken);
  51.     LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &tp.Privileges[0].Luid);
  52.   
  53.     tp.PrivilegeCount = 1;
  54.     tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
  55.   
  56.     AdjustTokenPrivileges(hToken, FALSE, &tp, sizeof(TOKEN_PRIVILEGES),NULL,NULL);
  57.     CloseHandle(hToken);
  58.   
  59.     ///////////////////////////////////////////////////////////////////////
  60.   
  61.     CHAR szFileName[MAX_PATH] = {'\0'};
  62.     GetModuleFileNameA(NULL, szFileName, MAX_PATH);
  63.   
  64.     DWORD  dwProcessID   = 0;
  65.     PROCESSENTRY32W pe32 = { sizeof( PROCESSENTRY32W ) };
  66.     HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  67.     Process32FirstW(hSnapshot, &pe32);
  68.     do
  69.     {
  70.         if (0 == lstrcmpiW(pe32.szExeFile, L"winlogon.exe"))
  71.         {
  72.             dwProcessID = pe32.th32ProcessID;
  73.             break;
  74.         }
  75.     } while (Process32NextW(hSnapshot, &pe32));
  76.   
  77.     CloseHandle(hSnapshot);
  78.   
  79.     //////////////////////////////////////////////////////////////////////
  80.   
  81.     HANDLE hTargetProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE,dwProcessID);
  82.     HANDLE h= NULL;
  83.     DuplicateHandle(hProcess,hProcess,hTargetProcess,&h,0,FALSE,DUPLICATE_SAME_ACCESS);
  84.     const SIZE_T dwSize = 4096;
  85.     const DWORD codeLen = dwSize - MAX_PATH - sizeof(HANDLE);
  86.   
  87.   
  88.     PBYTE lpRemoteBuf = (PBYTE)VirtualAllocEx(hTargetProcess, NULL, dwSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
  89.     PBYTE pLocalBuf =(PBYTE)VirtualAlloc(NULL, dwSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
  90.   
  91.     HMODULE x =GetModuleHandleA("kernel32") ;
  92.     memcpy(pLocalBuf,code,codeLen);
  93.     *(PHANDLE(pLocalBuf+codeLen)) = h;
  94.     *((FARPROC*)(pLocalBuf+codeLen- 4))  =GetProcAddress(x,"WaitForSingleObject");
  95.     *((FARPROC*)(pLocalBuf+codeLen- 8))  =GetProcAddress(x,"CloseHandle");
  96.     *((FARPROC*)(pLocalBuf+codeLen-12))  =GetProcAddress(x,"DeleteFileA");
  97.     *((FARPROC*)(pLocalBuf+codeLen-16))  =GetProcAddress(x,"ExitThread");
  98.     *((FARPROC*)(pLocalBuf+codeLen-20))  =GetProcAddress(x,"VirtualFree");
  99.     memcpy(pLocalBuf+codeLen+4,szFileName,MAX_PATH);
  100.     WriteProcessMemory(hTargetProcess, lpRemoteBuf, pLocalBuf,dwSize,0);
  101.     VirtualFree(pLocalBuf, 0, MEM_RELEASE);
  102.   
  103.     HANDLE hThread = CreateRemoteThread(hTargetProcess, NULL, 0,
  104.         (LPTHREAD_START_ROUTINE)lpRemoteBuf,
  105.         (LPVOID)(lpRemoteBuf + codeLen + sizeof(HANDLE) ),0,0);
  106.   
  107.     CloseHandle(hThread);
  108.     CloseHandle(hTargetProcess);
  109.   
  110. }
  111.   
  112.   
  113. int main()
  114. {
  115.     DeleteMe();
  116. }
复制代码




联系我时,请说是在 挂海论坛 上看到的,谢谢!



上一篇:VB 网址链接中的编码函数 GBK及UTF-8 编码解码
下一篇:关于VB P-code的调试方法
免责声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关。一切关于该内容及资源商业行为与www.52ghai.com无关。

2、本站提供的一切资源内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。

3、本站信息来自第三方用户,非本站自制,版权归原作者享有,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

4、如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵犯你版权的,请邮件与我们联系删除(邮箱:[email protected]),本站将立即改正。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

免责声明|Archiver|手机版|小黑屋|挂海论坛

GMT+8, 2024-4-28 22:29 , Processed in 0.386010 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.2

本站资源来自互联网用户收集发布,如有侵权请邮件与我们联系处理。xhzlw@foxmail.com

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