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

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

[复制链接]

150

主题

299

回帖

5277

积分

管理员

积分
5277
金钱
1689
贡献
3139
注册时间
2023-11-3
QQ
发表于 2023-12-9 17:54:37 | 显示全部楼层 |阅读模式
SourceCode_Win7DKLauncher.txt (3.77 KB, 下载次数: 0, 售价: 5 贡献)
9 c2 _2 k0 [3 l: N5 x8 `+ j3 x& R$ B4 x5 `0 i9 x* b+ L# U. n
虽然很多朋友有了成品的工具,但是我发的是源代码。。。需要的可以拿去研究研究。。
) \/ H5 Y- \# j7 l' y/ j
$ K4 N' d) D% H& l
  1. // Win7_DKLauncher_v1.0 : 定义控制台应用程序的入口点。+ S2 D2 M3 s9 @! [2 n& n. R
  2. //# T% j+ @8 Y2 m
  3.   q" L3 {, \& u
  4. #include "stdafx.h"
    ; P) u4 `; d: ~4 f+ D$ |
  5. #include <iostream>
    4 f% i" G4 c, u. T  ?- B
  6. #include <Windows.h>
    % D3 h' [4 f: B( K; T
  7. #include <io.h># x. q; Z( R0 Y

  8. 0 E! l. q4 A  u6 B

  9. . ?, [) k3 V- {" y
  10. int _tmain(int argc, _TCHAR* argv[])
    ( T+ X; I' e  B$ |- q3 O
  11. {% v/ }/ t  p( C; w5 ?5 @3 [! {4 x
  12.         printf("Dekaron-Server Launcher by Toasty\n");
    : r0 P3 [* O8 s( K3 _) q- g
  13. % r( l& n) T7 _3 J
  14.         //查看文件“DekaronServer.exe”是否存在) Z( \, @% E/ }' X; |+ G2 W
  15.         if(_access("DekaronServer.exe", 0) == -1)
    , |) t# i6 Z, W5 A: N, q
  16.         {
    - G3 l% ?- @7 D
  17.                 printf("DekaronServer.exe not found!\n");- x" p# Q2 g$ s+ k
  18.                 printf("Program will close in 5seconds\n");
    & w. E* `0 U) _
  19.                 Sleep(5000);9 j5 J7 n& X7 J, @* W
  20.         }
    3 ^! T! H$ n1 A9 C
  21.         else
    - ]" }# |( `$ ^) N- l$ L" R% P. q
  22.         {0 a& @7 b0 y( m9 [- e, L
  23.                 8 n- I( b1 ^' ~- q& V* Y( T
  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
    % h& y- z1 C" x+ Q# F# \3 p) b
  25.                 STARTUPINFO si;
    8 Q. D) @' Y2 @. M

  26. ( p* \/ o; `7 F+ w; \" p
  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
    & L  d% P& w0 g6 g4 W
  28.                 PROCESS_INFORMATION pi;5 F) W) Q: M- V& [
  29. 0 [% c, L6 w/ X
  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).aspx5 e( f4 _' i' |) \: z
  31.                 DEBUG_EVENT dbge;
    : W7 p) g$ u1 U2 I
  32. / F4 R  S* X7 k1 Q
  33.                 //Commandline that will used at CreateProcess6 J1 T$ m/ H+ ~- U* w
  34.                 LPTSTR szCmdline = _tcsdup(TEXT("DekaronServer.exe"));- J8 `: Q: b4 q+ {  @  f& k

  35. ! o* }6 [9 K% `, I( o/ P( A
  36.                 ZeroMemory( &si, sizeof(si) ); //Set memory of the startupinfo structure to Zero (because no initialization was made); [0 C7 s9 U! r, \1 I
  37.                 si.cb = sizeof(si); //Size of the Structure (see msdn)
    2 a- z) w+ U- G) T5 J
  38.                 ZeroMemory( &pi, sizeof(pi) ); //Set memory of the process_information structure to Zero (because no initialization was made)
      o% E$ y6 w. P% B7 g

  39. 8 ^9 R4 g& s! B7 W: U4 v& V1 P

  40. ' r' E0 v* h  |. r0 U- O, d0 S
  41. % W3 \$ L# ^# T
  42.                 //Start DekaronServer.exe 2 C7 F/ g5 Y: ^
  43.                 //More info fore CreateProcess function at: http://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85).aspx
    # h$ _1 G  E" i1 ~1 w$ q7 n, c
  44.                 if( !CreateProcess( NULL,   // No module name (use command line)! T: U$ R8 L! [: |) K2 B
  45.                         szCmdline,        // Command line
    9 [' s2 n! ^& i. F& U
  46.                         NULL,           // Process handle not inheritable$ B! t/ H: D' ~/ y7 ~
  47.                         NULL,           // Thread handle not inheritable
    5 ?4 Z) T' ]/ P  {' n5 r
  48.                         FALSE,          // Set handle inheritance to FALSE
    4 k$ O2 `0 m# i; a! B* s' z; U; z
  49.                         DEBUG_PROCESS,  // Enables Debugging for the started Process http://msdn.microsoft.com/en-us/library/windows/desktop/ms684863(v=vs.85).aspx! Q. v% K9 c9 \: {* _+ o0 l. l8 h
  50.                         NULL,           // Use parent's environment block
    $ U1 C9 S5 Y7 W& a: K  S
  51.                         NULL,           // Use parent's starting directory
    5 i( x! o2 K: K5 g$ F9 `& {8 x
  52.                         &si,            // Pointer to STARTUPINFO structure
    + E' L* M$ X) n3 s& G
  53.                         &pi )           // Pointer to PROCESS_INFORMATION structure
    ) P- l1 h0 p- n# @& a) {
  54.                 ) 2 G: I" x( k& ?* ?8 N4 ?
  55.                 {
    0 {1 m2 [, b) u# s. M
  56.                         printf( "CreateProcess failed (%d).\n", GetLastError() );
      D5 `8 p3 ^6 p# c2 U% k
  57.                         return 0;4 L+ a. U0 m& {$ B' ~  `3 k/ @7 p: R
  58.                 }
    ! S1 N2 a* I2 V1 F% u6 l( Z, o
  59.                 //Creating Process was sucessful1 U9 O9 M1 D/ z
  60.                 else6 i, C  Y7 Y, d0 H; A2 m. {
  61.                 {+ @0 B" [: f4 J# |  l# F+ l
  62.                         printf("Sucessfully launched DekaronServer.exe\n");# v7 u3 m" s/ e7 |& ?. |

  63. # R* G, }4 N  k; J% i
  64.                         //Write ProcessId and ThreadId to the DEBUG_EVENT structure- i  Z3 r* U4 ]9 D
  65.                         dbge.dwProcessId = pi.dwProcessId;
    3 I9 z# J  l) U8 M8 f- V' m
  66.                         dbge.dwProcessId = pi.dwThreadId;
    7 M- v" }; {, _
  67. 0 {* p$ a- h' q7 J
  68.                         while(true) //infinite loop ("Debugger")6 h4 N! Y  D% P5 ^+ g* u
  69.                         {
    + h& [, A9 w7 V. k% |+ j
  70.                                 WaitForDebugEvent(&dbge, INFINITE); //Wait for an debugevent to occur http://msdn.microsoft.com/en-us/library/windows/desktop/ms681423(v=vs.85).aspx
    ' P& H4 G. S( B# G8 ^5 ^5 |, C4 ^

  71. ! l* b* j  W# l2 {7 v. A
  72.                                 /*
    2 r1 S0 L) Z2 f  Z4 e
  73. <blockquote>通常,您必须在此处处理不同的调试事件(这些事件被写入dbge.dwDebugEventCode),
复制代码

: {) B! f) N- u! c0 A) m1 e- D
* V  s  G) V7 R& U1 j1 {
$ j/ C) l+ H& u  R& S8 q
商业服务端 登录器 网站 出售

11

主题

246

回帖

1137

积分

高级会员

积分
1137
金钱
725
贡献
150
注册时间
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

主题

204

回帖

340

积分

中级会员

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

11

主题

246

回帖

1137

积分

高级会员

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

3

主题

97

回帖

4172

积分

金牌会员

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

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2025-10-3 09:44 , Processed in 0.060476 second(s), 27 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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