找回密码
 立即注册
查看: 2533|回复: 5

[技术文章] Dekaron-用于Win7 / Win2k8R2的服务器启动器

[复制链接]

134

主题

166

回帖

2947

积分

管理员

积分
2947
金钱
980
贡献
1667
注册时间
2023-11-3
QQ
发表于 2023-12-9 17:54:37 | 显示全部楼层 |阅读模式
SourceCode_Win7DKLauncher.txt (3.77 KB, 下载次数: 0, 售价: 5 贡献)
/ B9 X+ D# [! Y2 v* u; U& x8 O% M7 Q$ Y3 x/ w5 I  V: P! z
虽然很多朋友有了成品的工具,但是我发的是源代码。。。需要的可以拿去研究研究。。% E, C5 h6 v. W7 U4 c8 P% s" u

9 R5 X& g. F3 ]& `4 n9 M- C+ n
  1. // Win7_DKLauncher_v1.0 : 定义控制台应用程序的入口点。, }+ |* ~$ z$ H6 s% x' o
  2. //
    8 M$ u# u2 J: t% P- k* ]9 _

  3. 5 [" J/ Y8 \5 y' T9 e
  4. #include "stdafx.h"
    ( X. b2 c! w9 D. i. f- e
  5. #include <iostream>
    % n) C9 A0 a; i  |
  6. #include <Windows.h>5 C1 A% [5 E! X; w& W
  7. #include <io.h>
    2 q9 g8 B. [  R& w9 q5 Z% M
  8. 1 A; e: M! R& C7 Q! b7 y  M" e* d
  9. 7 j' o9 e6 f; o" B; r
  10. int _tmain(int argc, _TCHAR* argv[])
    ' T5 p3 ?% `8 O7 k8 b" N
  11. {
    3 F- V3 X! U2 C% i: |$ a' |
  12.         printf("Dekaron-Server Launcher by Toasty\n");
    4 K5 B) i8 k* }6 i0 o4 {- o" @8 w

  13. 7 l2 v3 M5 k2 x8 |$ T4 r! {
  14.         //查看文件“DekaronServer.exe”是否存在& W! W' e3 h& K, Y8 @4 \5 T1 Y* B# k
  15.         if(_access("DekaronServer.exe", 0) == -1)
    : D  ^: A6 x4 d  o2 P0 r6 a. [
  16.         {/ T* w+ I" w4 V+ j3 c; [6 x
  17.                 printf("DekaronServer.exe not found!\n");( S# v. t+ A* f7 [" o* q# f
  18.                 printf("Program will close in 5seconds\n");
    6 P5 K  w& L6 D6 r4 C9 r
  19.                 Sleep(5000);7 i7 w* H, {8 i( x1 x
  20.         }
    & o! j' K8 _; A, ]
  21.         else
    $ s7 d, l5 L1 i/ o
  22.         {
    ; {5 m& @& L7 L5 G
  23.                
    . s+ V% J# W1 i1 x" P9 J: h8 n% e+ E
  24.                 //Only needed for the CreateProcess function below, no more use in this programm. More info at: http://msdn.microsoft.com/en-us/library/windows/desktop/ms686331(v=vs.85).aspx
    . A$ J- r' z" w# _/ M: {
  25.                 STARTUPINFO si;
    : p- E* b( E/ ^9 ~6 G* ~

  26. ; r" m3 Y/ l/ t+ k
  27.                 //Structure where the CreateProcess function will write the ProcessID and ThreadID of the created Process. More info at: http://msdn.microsoft.com/en-us/library/windows/desktop/ms684873(v=vs.85).aspx4 U# R0 W. H- C0 s* l  b: d
  28.                 PROCESS_INFORMATION pi;
    3 D/ A; l7 I, {" y( I

  29. + S7 |% e' T" E: ~
  30.                 //Debug event structure, needed for WaitForDebugEvent and ContinueDebugEvent. More info at: http://msdn.microsoft.com/en-us/library/windows/desktop/ms679308(v=vs.85).aspx
    ! C: @$ g5 ^" a3 X- o
  31.                 DEBUG_EVENT dbge;
    3 Q6 g2 @/ ~9 o% w& v

  32. + @0 j  D8 d+ d' b6 W
  33.                 //Commandline that will used at CreateProcess
    0 Q& v* y( C5 e- k, s3 U
  34.                 LPTSTR szCmdline = _tcsdup(TEXT("DekaronServer.exe"));
    2 V3 F* T: c1 s; L

  35. 8 J- _. b0 ?" _; A# h8 r! `
  36.                 ZeroMemory( &si, sizeof(si) ); //Set memory of the startupinfo structure to Zero (because no initialization was made): _! x* g9 o8 L
  37.                 si.cb = sizeof(si); //Size of the Structure (see msdn)  r; k; ]7 g' f, @9 |, s6 B0 a/ b
  38.                 ZeroMemory( &pi, sizeof(pi) ); //Set memory of the process_information structure to Zero (because no initialization was made)- A6 O2 X+ g5 _( \! w7 L0 x
  39. - T0 ~3 `3 N9 X  U# ^5 t. ?6 P( j# {

  40. " s1 T8 V- a2 f' r2 G* c
  41. 8 h9 `2 \( n& m/ W! U
  42.                 //Start DekaronServer.exe 6 M1 A. \/ c8 K. d1 Q
  43.                 //More info fore CreateProcess function at: http://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85).aspx1 s, `& Z7 L5 W0 J: i
  44.                 if( !CreateProcess( NULL,   // No module name (use command line)
    $ C: b+ i) q4 P& A0 ]2 \
  45.                         szCmdline,        // Command line9 k/ z" t" o  n% I1 i
  46.                         NULL,           // Process handle not inheritable
    # o$ X5 p' o# r4 q1 h& S1 E
  47.                         NULL,           // Thread handle not inheritable
    " Y. s! v( ~* D6 M4 ]2 |
  48.                         FALSE,          // Set handle inheritance to FALSE/ Y3 _" S. Q! K6 Z
  49.                         DEBUG_PROCESS,  // Enables Debugging for the started Process http://msdn.microsoft.com/en-us/library/windows/desktop/ms684863(v=vs.85).aspx4 _9 n' p! y( f9 S
  50.                         NULL,           // Use parent's environment block/ O. w' W5 @6 g: X% g+ v
  51.                         NULL,           // Use parent's starting directory
    , `% m) @; P% v) C9 O
  52.                         &si,            // Pointer to STARTUPINFO structure9 f9 n) I/ b5 o+ g: v
  53.                         &pi )           // Pointer to PROCESS_INFORMATION structure
    * H( M" K; l; H4 t* L0 `' ?# b
  54.                 ) ) E8 a9 o& T+ j) a# @' `& H7 k/ t
  55.                 {' R& P! |1 u/ c: Y% k/ D
  56.                         printf( "CreateProcess failed (%d).\n", GetLastError() );$ d; @2 d% r/ C( y6 \/ r
  57.                         return 0;
    . b- p, U. c/ X* Q8 {
  58.                 }6 H1 |2 n* T6 @/ }+ u. I
  59.                 //Creating Process was sucessful0 A! s$ X' p7 l( j
  60.                 else/ _! A+ S3 s1 H& C, ~
  61.                 {
    1 v# U' s" h. W3 W0 n  I
  62.                         printf("Sucessfully launched DekaronServer.exe\n");! e! c. E+ O6 S* e. o* K. e! Z
  63. / H1 d  m4 y, x, {8 o9 U; f
  64.                         //Write ProcessId and ThreadId to the DEBUG_EVENT structure+ L! o9 N. o; U
  65.                         dbge.dwProcessId = pi.dwProcessId;5 U$ Q+ a! k  \. ^$ r: s# x2 t! a
  66.                         dbge.dwProcessId = pi.dwThreadId;6 H6 K8 ~; M. G2 f" m

  67. 1 v/ }$ J! {) R3 E: n
  68.                         while(true) //infinite loop ("Debugger")
    + b+ {! v5 W+ j
  69.                         {
    9 [% u* A4 f2 q( y/ |9 l, P& X2 d
  70.                                 WaitForDebugEvent(&dbge, INFINITE); //Wait for an debugevent to occur http://msdn.microsoft.com/en-us/library/windows/desktop/ms681423(v=vs.85).aspx
    ! n4 l" M6 G0 W$ |& }

  71. - ^+ y6 `& G" [, |! n# l4 [
  72.                                 /*
    9 A+ w1 |+ p  f7 c
  73. <blockquote>通常,您必须在此处处理不同的调试事件(这些事件被写入dbge.dwDebugEventCode),
复制代码

1 \6 z2 ?3 E4 k5 e
3 m3 j7 u: e* M9 K* |; q" v4 E, O8 `1 i% z  D8 Z" ~! N
商业服务端 登录器 网站 出售

8

主题

228

回帖

783

积分

高级会员

积分
783
金钱
451
贡献
91
注册时间
2023-11-10
发表于 2023-12-18 20:34:07 | 显示全部楼层
我是来学习的!

21

主题

378

回帖

1013

积分

高级会员

积分
1013
金钱
445
贡献
169
注册时间
2024-1-20
发表于 2024-1-21 13:37:44 | 显示全部楼层
感谢楼主分享,我是来学习的

0

主题

189

回帖

298

积分

注册会员

积分
298
金钱
106
贡献
3
注册时间
2024-5-14
发表于 2024-5-14 15:56:57 | 显示全部楼层
学习学习赞赞赞

8

主题

228

回帖

783

积分

高级会员

积分
783
金钱
451
贡献
91
注册时间
2023-11-10
发表于 2024-5-25 11:48:57 | 显示全部楼层
每天报道一次!

2

主题

81

回帖

549

积分

中级会员

积分
549
金钱
426
贡献
40
注册时间
2023-11-15
QQ
发表于 2024-6-5 17:06:28 | 显示全部楼层
学些大神分享,受用了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|EGameol

GMT+8, 2025-1-18 15:45 , Processed in 0.104889 second(s), 25 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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