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

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

[复制链接]

157

主题

361

回帖

6836

积分

管理员

积分
6836
金钱
1941
贡献
4377
注册时间
2023-11-3
QQ
发表于 2023-12-9 17:54:37 | 显示全部楼层 |阅读模式
SourceCode_Win7DKLauncher.txt (3.77 KB, 下载次数: 0, 售价: 5 贡献) # h, ~; u3 ]3 E1 T6 A# Z; ?

; Q4 R& O9 @2 b) F! ^虽然很多朋友有了成品的工具,但是我发的是源代码。。。需要的可以拿去研究研究。。
) m  }; v; o; n% E  V, Y- ~3 ^6 s7 O2 u9 I3 L
  1. // Win7_DKLauncher_v1.0 : 定义控制台应用程序的入口点。
    * S2 e7 R8 {  R0 ?- q5 H+ X
  2. //0 S6 W6 `6 Y! _2 {
  3. 6 V# o- F# L. q6 T& F- P
  4. #include "stdafx.h"  L  ~3 |' f- g* m
  5. #include <iostream>
    , [6 Y- S! C! X# r) C" N9 f0 g* d
  6. #include <Windows.h>
    & t' q4 g% x* [8 p. b
  7. #include <io.h>3 V5 V! `+ j8 u  j4 ?
  8. & O! q" T6 ^$ s9 z( ]3 q8 Q

  9. $ s4 x: _+ K" n
  10. int _tmain(int argc, _TCHAR* argv[])
    % e0 ~# u& H2 W3 m- k
  11. {. U1 `: S5 \1 |
  12.         printf("Dekaron-Server Launcher by Toasty\n");8 T7 O4 J5 V% ?  t1 m+ z
  13. % M3 v6 u# e' J8 s0 ?. v7 A* H# |
  14.         //查看文件“DekaronServer.exe”是否存在) @+ m6 @3 B8 j, ?0 f2 x
  15.         if(_access("DekaronServer.exe", 0) == -1)8 b5 ^) k) d! T! T3 g* g+ x% C; j, F# Q
  16.         {- c0 U( c+ S9 ^4 [( U
  17.                 printf("DekaronServer.exe not found!\n");5 @* R: o, _3 S" @
  18.                 printf("Program will close in 5seconds\n");
    - w; T  a. Y* t6 \  j9 v
  19.                 Sleep(5000);1 B  Q2 D- R, q
  20.         }
    - ]7 H. S' P5 m! x; y3 J
  21.         else; H. {# Q6 [/ Q- J" d
  22.         {
    ) j9 f' z8 `( g) I1 i9 T% c
  23.                 : Q; k" ^, ?% \! Q) 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
    + z4 o1 V+ d2 `& S; S
  25.                 STARTUPINFO si;: {! Y$ p# n6 K9 J
  26. - C$ ?- X3 H* x5 B+ ]. h9 \: E
  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, d0 |  |1 {4 R5 B
  28.                 PROCESS_INFORMATION pi;
    % L' \# H( c9 d. {( d
  29. 2 D+ a  a& |' ^- E4 c
  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
    & L9 E4 J* E7 f+ o3 Z
  31.                 DEBUG_EVENT dbge;
    * Z- n  O6 e6 G8 W
  32. . Y% ]; R& N2 z5 q4 P1 x
  33.                 //Commandline that will used at CreateProcess2 S; G, F; O4 w" J0 f- w
  34.                 LPTSTR szCmdline = _tcsdup(TEXT("DekaronServer.exe"));
    % t, p+ z& G6 B

  35. * N' s- c- _: Z7 k7 O7 l+ v5 y
  36.                 ZeroMemory( &si, sizeof(si) ); //Set memory of the startupinfo structure to Zero (because no initialization was made)
    $ ^) i7 f; ]) H  n$ ?- s: s
  37.                 si.cb = sizeof(si); //Size of the Structure (see msdn)* D" Z% }) @2 t
  38.                 ZeroMemory( &pi, sizeof(pi) ); //Set memory of the process_information structure to Zero (because no initialization was made)
    2 D3 _- n  T( M2 L7 U9 r
  39.   V8 W2 ]  g4 e4 H3 E

  40. : C, X4 _( A2 J. y
  41. , y1 y- @% t' M) B
  42.                 //Start DekaronServer.exe   Y0 v# a+ Z7 C- j0 ]
  43.                 //More info fore CreateProcess function at: http://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85).aspx
    ( c+ I. k% O6 M" j% }3 E
  44.                 if( !CreateProcess( NULL,   // No module name (use command line)
    5 h' j9 w9 P' ]4 c2 x: F: c- B# e
  45.                         szCmdline,        // Command line
    6 l) F: Z* U$ `4 Y' c
  46.                         NULL,           // Process handle not inheritable
    3 k5 M  \0 _* P  K
  47.                         NULL,           // Thread handle not inheritable
    9 V# O$ j$ Y( d0 `4 q9 p- M. j
  48.                         FALSE,          // Set handle inheritance to FALSE: F5 p5 ]- r2 Q1 x1 \
  49.                         DEBUG_PROCESS,  // Enables Debugging for the started Process http://msdn.microsoft.com/en-us/library/windows/desktop/ms684863(v=vs.85).aspx# c8 n1 V6 Y- L4 }& v  s' q2 F
  50.                         NULL,           // Use parent's environment block4 K; m+ q$ z0 T
  51.                         NULL,           // Use parent's starting directory
    2 g8 I" U1 X( l* m
  52.                         &si,            // Pointer to STARTUPINFO structure
    # Y+ @" W0 y9 J
  53.                         &pi )           // Pointer to PROCESS_INFORMATION structure; {" [) C3 ^; L4 T, ^( q
  54.                 ) 2 u8 F  S/ p6 Z" o7 R
  55.                 {
    * D* Z, p8 _( u3 }) I% F
  56.                         printf( "CreateProcess failed (%d).\n", GetLastError() );- l/ ~" j: y; P0 x! Q. N
  57.                         return 0;
    6 \( x1 l6 }9 t* R* l
  58.                 }, c& x. j% N; N  J. R& g) @' K
  59.                 //Creating Process was sucessful
    " |* h# Y/ Q/ v  ^+ D+ k8 Q
  60.                 else
    2 ?; ^# g, P7 G# d! X2 z
  61.                 {
    5 b1 C/ ?2 \3 s& h4 U, X
  62.                         printf("Sucessfully launched DekaronServer.exe\n");
    $ r" ~; |0 x. o! D6 v% g

  63. 5 X: F: Q/ s: Y1 F4 `  e: `- G
  64.                         //Write ProcessId and ThreadId to the DEBUG_EVENT structure& t5 R0 a* v- `2 ?) K: s
  65.                         dbge.dwProcessId = pi.dwProcessId;- b( ?! \% Z, E7 D5 }
  66.                         dbge.dwProcessId = pi.dwThreadId;
    : L+ i, L/ g. Y3 t+ D
  67. ' r7 Z  L+ i4 F5 G% h
  68.                         while(true) //infinite loop ("Debugger")
    ' D- G$ R" [9 j3 d2 J; ~% T" F1 @: Z
  69.                         {
    9 f. i# F' \  N3 x
  70.                                 WaitForDebugEvent(&dbge, INFINITE); //Wait for an debugevent to occur http://msdn.microsoft.com/en-us/library/windows/desktop/ms681423(v=vs.85).aspx# `2 F: F: o0 N2 d* ~/ \7 T

  71. 8 J) j9 o4 I5 K/ t  i5 B1 Z$ ^( q
  72.                                 /*
    ' u8 X5 W9 H. g0 G1 ]
  73. <blockquote>通常,您必须在此处处理不同的调试事件(这些事件被写入dbge.dwDebugEventCode),
复制代码

% W7 z9 \( V- M) O' t: A& O5 X$ e4 d% V1 A; ~

. Z8 D2 m$ e8 }* Y2 K& Y
商业服务端 登录器 网站 出售

15

主题

256

回帖

1268

积分

金牌会员

积分
1268
金钱
871
贡献
121
注册时间
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

主题

207

回帖

352

积分

中级会员

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

15

主题

256

回帖

1268

积分

金牌会员

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

3

主题

102

回帖

6521

积分

论坛元老

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

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-2-15 08:24 , Processed in 0.061752 second(s), 27 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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