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

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

[复制链接]

106

主题

128

回帖

1494

积分

管理员

积分
1494
金钱
635
贡献
625
注册时间
2023-11-3
QQ
发表于 2023-12-9 17:54:37 | 显示全部楼层 |阅读模式
+ ?  X3 r6 q8 Q8 t& \5 Q8 K
4 ~; V9 t4 }, H
虽然很多朋友有了成品的工具,但是我发的是源代码。。。需要的可以拿去研究研究。。5 q8 ^4 q' P! ^5 }3 I/ ?6 P& `
5 g7 R5 [. w) K6 m
  1. // Win7_DKLauncher_v1.0 : 定义控制台应用程序的入口点。& `# f; _2 k4 }6 E  S& Z
  2. //1 q$ s- m' L- q0 t4 s, o
  3. % e. a/ g) I4 k0 P- B# R* e
  4. #include "stdafx.h"
    8 Z  Y  U  V9 ]
  5. #include <iostream>
    ! T. W5 O% a4 @2 P  o
  6. #include <Windows.h>
    + y9 `! i$ `; L, \
  7. #include <io.h>' N7 _/ N" w3 v2 j" ?8 ]8 D: k

  8. : w) e+ q2 D/ S& U4 R5 L3 c
  9. : }9 r; o/ |# Q" q; W- p4 `
  10. int _tmain(int argc, _TCHAR* argv[])# K7 ~1 p% i' A' H1 _" o
  11. {
    : J6 z9 n3 k' e4 V6 J1 h# t3 I- x" o, s
  12.         printf("Dekaron-Server Launcher by Toasty\n");3 v- }3 A* Z* h$ {

  13. . r3 `0 c. B1 }, }# C0 H
  14.         //查看文件“DekaronServer.exe”是否存在
    1 W# l" S: T7 L( t
  15.         if(_access("DekaronServer.exe", 0) == -1)! G" d3 p2 f8 b: x- B( v4 Y* {! k5 L
  16.         {3 V/ q$ M, L% g7 G
  17.                 printf("DekaronServer.exe not found!\n");
    4 [/ J9 v5 p" K/ d" v8 {9 V
  18.                 printf("Program will close in 5seconds\n");2 `; O  t* K% ~7 y9 }  w
  19.                 Sleep(5000);4 p" p+ @3 J) e5 {4 {2 N( n4 s
  20.         }! O% u6 N/ ^( b8 D3 U/ ?" W- T
  21.         else
    2 ^/ s+ }8 w8 s. t
  22.         {4 L6 p: X+ o) v2 C0 k) f' |; ~  Z) D
  23.                
    4 o5 Y0 Z: a9 I; T; v
  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, L2 k  |& J4 v" c( v/ S3 W
  25.                 STARTUPINFO si;/ r3 E& G' v. d- C! g

  26. + ]; m0 B) X5 Z, G
  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).aspx
    $ }- q. r1 ^( Y" c! R$ u
  28.                 PROCESS_INFORMATION pi;, O, r$ v' ^2 a% U0 Z; t* d
  29. # P% y( K& i/ |
  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& _5 K: v9 |; F5 D
  31.                 DEBUG_EVENT dbge;
    . p, y$ u8 V/ z3 `) ]; T

  32. 5 \) X9 Y9 }$ c9 k4 ?1 q: C
  33.                 //Commandline that will used at CreateProcess
    9 ^. c) x; D. ]6 z* C3 q  |
  34.                 LPTSTR szCmdline = _tcsdup(TEXT("DekaronServer.exe"));
    1 _& ^3 M" O& P( {0 t/ U+ p
  35. ' p3 T# M0 v+ u% u/ m7 C
  36.                 ZeroMemory( &si, sizeof(si) ); //Set memory of the startupinfo structure to Zero (because no initialization was made)* v. }$ h6 m6 v2 v- E6 F
  37.                 si.cb = sizeof(si); //Size of the Structure (see msdn)3 L% e/ r: ~3 C. q3 }, C+ j2 `/ f
  38.                 ZeroMemory( &pi, sizeof(pi) ); //Set memory of the process_information structure to Zero (because no initialization was made)
    ! v( d! y# u/ R8 W# }, {
  39. 1 |: {2 d. D& |0 _
  40. 0 {, v/ S- l& F  m" V% m
  41. * D# g: F6 m6 i; ?
  42.                 //Start DekaronServer.exe
    3 ?- |7 R! I* S3 d
  43.                 //More info fore CreateProcess function at: http://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85).aspx
    ! k) o* j" h5 I1 O: E# V; E
  44.                 if( !CreateProcess( NULL,   // No module name (use command line)6 C/ J4 h6 I: _* {; z
  45.                         szCmdline,        // Command line; e$ U+ I/ q4 ]4 L$ C$ G* I0 W
  46.                         NULL,           // Process handle not inheritable
    ' k2 O8 i! J5 e( x
  47.                         NULL,           // Thread handle not inheritable
    , c& \1 v5 [5 @
  48.                         FALSE,          // Set handle inheritance to FALSE
    1 z# n7 J; L/ v' S: o* ?3 k0 O! `
  49.                         DEBUG_PROCESS,  // Enables Debugging for the started Process http://msdn.microsoft.com/en-us/library/windows/desktop/ms684863(v=vs.85).aspx5 m8 x9 B' u4 V
  50.                         NULL,           // Use parent's environment block
    1 T5 [4 D+ R( N7 ]
  51.                         NULL,           // Use parent's starting directory
    ; @8 f; c+ U1 F- [, e8 D2 |) P
  52.                         &si,            // Pointer to STARTUPINFO structure
    0 ~2 R. e+ E. B  F& g, M
  53.                         &pi )           // Pointer to PROCESS_INFORMATION structure; G' ]. B. `% d1 O
  54.                 ) * j$ p- q+ n: E& M
  55.                 {
    ; p0 W0 {8 ~; t/ b# J
  56.                         printf( "CreateProcess failed (%d).\n", GetLastError() );
    ; D$ U" A$ d% G. H" L
  57.                         return 0;
    4 |/ z: ~: i% c8 D! N
  58.                 }
      i. A" ]  c& o. E8 @" P
  59.                 //Creating Process was sucessful
    . j  n* u5 E' T- T  I5 R/ r2 g
  60.                 else0 C6 [9 U$ W" U$ [6 ~7 d* h& S
  61.                 {
    ' o: h/ x- X& v# \! q+ W
  62.                         printf("Sucessfully launched DekaronServer.exe\n");. e& W( x' I' ?1 K
  63. 4 N, g& d2 m& Z* a4 G, l4 c- X
  64.                         //Write ProcessId and ThreadId to the DEBUG_EVENT structure5 a% u. T: }) u1 O& I% i" E
  65.                         dbge.dwProcessId = pi.dwProcessId;
    * F9 }  r8 v( E0 @
  66.                         dbge.dwProcessId = pi.dwThreadId;
    & p& A- p6 B5 n$ I! F% H) T" Y8 ]
  67. ( [3 O0 A0 K5 w& a/ x% s$ m
  68.                         while(true) //infinite loop ("Debugger")
    , Q4 y2 o& b% \
  69.                         {* q8 |, K: N. G: w8 y% [+ 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$ D; G4 M; G8 a

  71. 6 Z( ?7 Q' x: U+ _4 |" K
  72.                                 /*8 D& v, O* M; |+ {0 O: J
  73. <blockquote>通常,您必须在此处处理不同的调试事件(这些事件被写入dbge.dwDebugEventCode),
复制代码
& W+ P3 a- @0 P( z7 u, R
4 S( J/ d! O& n( Q5 D; j5 y& Q
1 O/ ]0 _" t9 q+ v, S( J9 y

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
商业服务端 登录器 网站 出售

8

主题

188

回帖

457

积分

中级会员

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

21

主题

375

回帖

776

积分

高级会员

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

0

主题

42

回帖

105

积分

注册会员

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

8

主题

188

回帖

457

积分

中级会员

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

2

主题

51

回帖

156

积分

注册会员

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

本版积分规则

Archiver|手机版|小黑屋|EGameol

GMT+8, 2024-6-18 11:25 , Processed in 0.081354 second(s), 33 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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