求魔兽争霸3辅助T人辅助软件

魔兽争霸 3 踢人内挂 - 为程序员服务
为程序员服务
推荐团队博客
最近更新博客
魔兽争霸 3 踢人内挂
话说 war3 会自动把 war3.exe 所在目录下的 .mix 文件作为 DLL 加载~~
所以编译成 DLL 改成 xxx.mix 放在 war3.exe 的目录里面就好了~~
Update at 0:23 : 我忽然发现我几乎把所有的错误处理都忽略掉了。大概是太久没写代码了。
// 默认调用约定:__stdcall
// WAR3 数据包格式来源于 W3GStreamer。
#include &Windows.h&
#include &WinSock.h&
#define ORDINAL_SEND (0x)
#define ENTRY_NOT_FOUND (-1)
#define PACKET_SIGNATURE (0xF7)
#define PACKET_CHAT (0x0F)
#define PACKET_CHAT_FLAG_IN_PREPARE_SCREEN (0x10)
#define PACKET_CHAT_FLAG_IN_GAME (0x20)
#define COMMAND_KICK &/kick&
#define Add2Ptr(Pointer, Increment, ResultType) (reinterpret_cast&ResultType&((ULONG_PTR)(Pointer) + (Increment)))
#define PtrOffset(Pointer2, Pointer1) ((reinterpret_cast&ULONG_PTR&(Pointer2) - reinterpret_cast&ULONG_PTR&(Pointer1)))
typedef DWORD (SEND) (
__in SOCKET Socket,
__in_bcount(BufferSize) PVOID Buffer,
__in DWORD BufferSize,
__in DWORD Flags
typedef SEND *PSEND;
typedef __declspec(align(1)) struct _GAME_PACKET {
WORD PacketS
BYTE TargetC
// 接下来是目标 ID。
// BYTE Id[TargetCount];
BYTE SelfId;
// 如果 Flags 是 PACKET_CHAT_FLAG_IN_GAME,那么接下来会有 Target。
// DWORD T
CHAR Message[1];
} GAME_PACKET, *PGAME_PACKET;
PSEND OldS
// 定位映像数据目录。
PVOID LocateImageDataDirectory(
__in PVOID ImageBase,
__in ULONG DataDirectory
PIMAGE_DOS_HEADER DosH
PIMAGE_NT_HEADERS NtH
DosHeader = reinterpret_cast&PIMAGE_DOS_HEADER&(ImageBase);
NtHeaders = Add2Ptr(ImageBase, DosHeader-&e_lfanew, PIMAGE_NT_HEADERS);
// 从文件头中定位数据目录。
return Add2Ptr(ImageBase, NtHeaders-&OptionalHeader.DataDirectory[DataDirectory].VirtualAddress, PVOID);
// 根据 DLL 文件名定位导入描述符。
PIMAGE_IMPORT_DESCRIPTOR LocateImportDescriptor(
__in PVOID ImageBase,
__in PSTR DllName
PIMAGE_IMPORT_DESCRIPTOR ImportD
// 定位导入描述符。
ImportDescriptor = reinterpret_cast&PIMAGE_IMPORT_DESCRIPTOR&(LocateImageDataDirectory(ImageBase,
IMAGE_DIRECTORY_ENTRY_IMPORT));
while (ImportDescriptor-&Name) {
PSTR ImportedDllN
// 比较 DLL 文件名。
ImportedDllName = Add2Ptr(ImageBase, ImportDescriptor-&Name, PSTR);
if (!_strcmpi(DllName, ImportedDllName)) {
return ImportD
ImportDescriptor++;
return NULL;
// 定位导入查找表。
PULONG_PTR LocateImportEntries(
__in PVOID ImageBase,
__in PIMAGE_IMPORT_DESCRIPTOR ImportDescriptor,
__in BOOL LocateOriginalEntries
if (LocateOriginalEntries) {
return Add2Ptr(ImageBase, ImportDescriptor-&OriginalFirstThunk, PULONG_PTR);
return Add2Ptr(ImageBase, ImportDescriptor-&FirstThunk, PULONG_PTR);
// 比较导入查找表中的表项。
// 这个函数可以正确处理按照序号导入的表项。
BOOL CompareImportEntry(
__in PVOID ImageBase,
__in ULONG_PTR ImportedEntry,
__in PSTR EntryToLookup
if (IMAGE_SNAP_BY_ORDINAL(ImportedEntry) !=
IMAGE_SNAP_BY_ORDINAL(reinterpret_cast&ULONG_PTR&(EntryToLookup))) {
return FALSE;
if (IMAGE_SNAP_BY_ORDINAL(ImportedEntry)) {
// ImportedEntry 是一个函数的序号。也意味着 EntryToLookup 也是一个序号。
return IMAGE_ORDINAL(ImportedEntry) == IMAGE_ORDINAL(reinterpret_cast&ULONG_PTR&(EntryToLookup));
// 比较字符串。
return !strcmp(Add2Ptr(ImageBase, ImportedEntry, PSTR), EntryToLookup);
// 查找导入查找表表项。
// 如果 ProcName 是一个序号,那么它的最高位需要被设为 1。
DWORD LookupImportEntryIndex(
__in PVOID ImageBase,
__in PIMAGE_IMPORT_DESCRIPTOR ImportDescriptor,
__in PSTR ProcName
PULONG_PTR E
Index = 0;
// 定位导入查找表。
Entries = LocateImportEntries(ImageBase, ImportDescriptor, TRUE);
// 遍历导入查找表。
while (ULONG_PTR Offset = Entries[Index]) {
// 比较函数名 / 序号。
if (CompareImportEntry(ImageBase, Offset, ProcName)) {
return ENTRY_NOT_FOUND;
// IAT HOOK。
PVOID InterceptImportedProc(
__in PTSTR TargetName,
__in PSTR DllName,
__in PSTR ProcName,
__in PVOID HookProc
PIMAGE_IMPORT_DESCRIPTOR ImportD
DWORD ImportEntryI
PULONG_PTR E
PVOID TargetB
// 定位要 HOOK 的模块。
TargetBase = reinterpret_cast&PVOID&(GetModuleHandle(TargetName));
// 定位导入描述符。
ImportDescriptor = LocateImportDescriptor(TargetBase, DllName);
// 查找导入的函数的索引。
ImportEntryIndex = LookupImportEntryIndex(TargetBase, ImportDescriptor, ProcName);
// 定位导入函数的地址表。
Entries = LocateImportEntries(TargetBase, ImportDescriptor, FALSE);
// 读取当前地址并替换。
return reinterpret_cast&PVOID&(InterlockedExchange(reinterpret_cast&volatile ULONG_PTR *&(&Entries[ImportEntryIndex]),
reinterpret_cast&ULONG_PTR&(HookProc)));
// WSASend 的过滤函数。
DWORD NewSend(
__in SOCKET Socket,
__in_bcount(BufferSize) PVOID Buffer,
__in DWORD BufferSize,
__in DWORD Flags
PGAME_PACKET GamePacket, NewGameP
GamePacket = reinterpret_cast&PGAME_PACKET&(Buffer);
// 检测是否为发送消息的包。
if (GamePacket-&Signature == PACKET_SIGNATURE && GamePacket-&Operation == PACKET_CHAT) {
PSTR MessageB
// 标志位之前有 TargetCount 个 ID,每个 ID 占用一个 BYTE 的大小。
NewGamePacket = Add2Ptr(GamePacket, GamePacket-&Chat.TargetCount * sizeof(BYTE), PGAME_PACKET);
if (NewGamePacket-&Chat.Flags == PACKET_CHAT_FLAG_IN_GAME) {
// 如果 Flags == PACKET_CHAT_FLAG_IN_GAME,那么在消息正文之前还有一个 Target,占用一个 DWORD。
NewGamePacket = Add2Ptr(NewGamePacket, sizeof(DWORD), PGAME_PACKET);
MessageBuffer = NewGamePacket-&Chat.M
// 比较命令。(MessageBuffer 是以 0 结尾的。)
if (!strcmp(MessageBuffer, COMMAND_KICK)) {
// 返回错误。游戏会自动断开连接。
return SOCKET_ERROR;
return OldSend(Socket, Buffer, BufferSize, Flags);
// DLL 入口点。
BOOL DllMain(
__in HINSTANCE DllBase,
__in DWORD Reason,
__reserved PVOID Reserved
if (Reason == DLL_PROCESS_ATTACH) {
OldSend = reinterpret_cast&PSEND&(InterceptImportedProc(TEXT(&war3.exe&), &wsock32.dll&,
reinterpret_cast&PSTR&(ORDINAL_SEND | IMAGE_ORDINAL_FLAG), reinterpret_cast&PVOID&(NewSend)));
} else if (Reason == DLL_PROCESS_DETACH) {
// UNHOOK。
InterceptImportedProc(TEXT(&war3.exe&), &wsock32.dll&,
reinterpret_cast&PSTR&(ORDINAL_SEND | IMAGE_ORDINAL_FLAG), reinterpret_cast&PVOID&(OldSend));
return TRUE;
相关文章推荐:斫`I%&/m{JJ奏t`$@炝玩iG#)*eVe]f@添槛{锝鬓{锝骱;N'鬟?\fdl鑫J谏!?~|?"O<y篼抓q宛sY舟/Z}tR-|n抗^S]{oτyV7yd镛钷G]i短跨稃挚_[滹W涂o确w奎?W3?屣骟?wu2[}TWm赧bn页tb6座j掏朴jqi|ogw镱EYMh瞀
拔讼>獐yS-^I
v]W膂ggy醭nnUMC买>i]Z.34┃断emFC4Z,Ou^_葫梃]镢m1%y\}@崮tc:/~6+]滹鸡{C鹗ly蔽.wk醉磉8I楣{黠款oe_,Sh[A*[砑h桤K%婵}?+|dR,.丢mo侬E[鹦-盛F,t|搁洄$+fk7F
=?y'=PV凫uIve耄|4_铒/{袼祀/}t0]cG'侦:-f}_~I6}k戈秫】KfnV\r扯Z遂~?YC]Wu堵腆8腓+_>傍/lg?_M?Y}AvBR@o咄zyU嗨>\c3on嗫S,3菱&^vG摞(绨}捶Q_Nz}大Q驰呈|9&H$ 昙X*蠓Ed/}$=~*f4U^L*2Jl媾戤uYWU#?/?谨 颠烬_甫令}z敝烬_撒娉_8i争V酉v燎B氽)\G2KцpA 阢q;EG毗`| 诚锐君戽写蟋+诀~aa镝廖dw~狴g;Q觑钶蜴馨j-Vt翰仲y;) w僭8w_骺o`佤g⑧&YK$!Pi?G!byUc鲞#?鞣l
14苞P渴#檩 盗⒑XGz匡K/?W壕驮 锲5Q?6_z7
+p| 1$PrN&排yU点
&vu尊I_鲼f蒯HⅡ葵筮箫3
碍l/_ BJ,_Kz3桴zS&2uRl逊A_L傺唼7舆_楞IM]Y=)诧H缀!TXYWW&PWXIof7mS钥/走L4梧u}N|y裼EL?鹣}p?22机c麽铑N启O嫦
{c甾铨;Poo;{c哼{赋3楱狂啉?o+y,<:苓yxo稔 |7t^-/_ 氵癔
菪]生$涤&i7o妤Y逵R?gp常F'Bx油y镤稂库;"#+Y奎zI7"H'??
uBnzYM咂乞+颈套铂#}?跸~C}凿.岿_辘g,6?暨P?池?~祯E躜/g暨so弭縻U?q?!~0_Oj+茺Y)釜sYh溧.{ 踵藿浇!Z沁?m谨锣yM[E宠pwoo_1NXb#斌p饔!$+1$扌FUpxw?眠7皿<ky}Uo?'o 自2:{驺oA_%¥盎?沁W3
x/8!-ャ7)EA YQ!;沁裣ks.)-q龠葵/[o 势窿伟貔d?~<C.两! _OA 軎=&鲻モ稃CaA甘管儋锣l?LobM]_'匏携n"缓\EOM嫉麒$笮нd'蚰栈"P]榭W|咏-.cY傀ok旧篌bJ癃踹鲎扌酉睑m,Ie裒款}裒fiW?M%Qh令
圪zUD{氵?抚宗"/1-+殳{o鼢~-/#岿魁G
0_gK&瘅/U:W诉鼢友wOepG秃黥晓opO!↑o抚/%h??M4u?sCW?{R/ b超M炜醭PzC麒_W箍Яt船 ~}鲅2稽U笱
h瀹1=oJ{盱|;i矿鳢;- 5tU`kA⑷@_鸳{泔oo抨踌钯rG剥o3eK}N谂Gi^gfUf2_傈ws{埯>0p涞娴@7N碱榻爝7阀镇/篌X4UVおi榆蠡t诜贞o短醐y0镏1
槊y/q&;_x' t叱g>:z9&keoiA副 D06砚\O'?耋常乔龌{rvxC斗{稔A/q&:z 敢饲b蝴q谠酉>>K5q'超推渝菟交|荦檎泡/~藿xs|i梓<z<s|q蝾:WWwLZU6{Vy篼镙{i[w=<SчU1k}{嚆tc.?嘤S",?xcc:X{~6e?b(块唼 t.椭戴[l柬m/sb决钶呋gq凭湛_w侬?QlI&l,a_sm7_见'劢y:Bo岽wz~卟筑粲Oo2!怃`鬓P硪r斫U2 嘤耦狂7+??摔N~M_P8 1/#?oK?鐾C^G沁uqfV鼻Ugl埚p岬qW缯昌wg]肪[{{{匡o垮O//g褡?鹱||w雏Ke }扬<|0%H:"=党恙盹>wO&'姣每麸g__[Y筐?舴k_?_#?鞣k?/堰髯x1\iMm泓●`T?w_虔铱/%?佐眶k$玉嵇唏F@y鹜唿[A每7葵'_蔬5?鳅匡?l唿宵柽o%u眶鹂?峥o脒鳙{葫K鹤_t@汛 @l^w%锟_u柽?uf侩_:W亏藁$?击俘 A/议唼3DCy顼{0{栾亏__+ 妤纵/犸e蚍c脒聍?b7gd{_fa廴丝炜W胚o?o3Dn卓舣{/}伶o夸g_{侩稞_I排虺i!5扪c辇{啧⒀/>C`咣} 5D苎gq0卺下`芸i0糇觇J囚 c泗芤'+\Tg擐yrn}TVCSF胥o~]||趋s镛击k囡}啭p of 7\cf~ni/#蔬2瘌e+qa;俺f/=O_是?.坞lk捂{(^%O*伤#蛮hZ#b9-9UuQc&g轺Vnp遛|O~sE++w+a裹>p墙qu P@I3ZQF'rS锁hI篝{c>6豸u生aAs缩b#j胍lF3ho[{醯缪wV{>s峦o9C攘I庚圻3[6糈炜筮>TUU6]衅7LR7Pk3樗K 躜?QZ-e1}n]fu*⑾ft Q.葭e5e:拿|~Ci;X@}&?(N?R汐I粘7y[Ad7夥fe^[+?鹱]劭O暨W?h:m腧唆_[_9%9koW-锟W七鱿?鲲耧tNS@w爰]姿ou=/j鼢Wj孕/&{v>οi|4- ,投铧b啧X稳#Vr{纾k;x1x艚!茉Qf砗_昙)~M胼札谙{;#[哭Ο镘}<Ⅴv\oScuz缥e醭_峤ww--m-乘"kz&u|As漪M比uvB0孛_rg8#FrZ万^Te㈣睐qhS\寤s纾#g锴Q惮I梗M踺芍
8x@I
o鸠~Qw>*m`eorE.#},8浞9Q
9续腴S8储|Id荻RU9誓&T{}IhvlC70dJ;S>3C轴dbo>晃co砝{;FZCEk
疒5x7&?}'SsQg愀U!xC/玳健㈠F麴颓42/犯8
6C8∥_ M+F署[b.Ri点Q"&焘@yt.S^Vua [5du蜀l鎏"Oㄕx凤cp8w&[byln尹IH菘童d>:阮葸O镬咚'L|/削辰$)D?U袖稞o
c ?/S_6}}_G荦e宵roL_W咝-B|I辇_脒;o+^B_=5*O1Lj惋b4OAlRg酶e5"R4J窜未6W/G骺;钥J迭I/LMs/j[BrHu导襁d`鬣#\_胸:湫桐/曙YlhE蔬舴#舆{?'_ti瑶粒{瘵72h a臾z{wop
4/聍杩3库i溘_'涡w砼'PW喏v换舣Y{ I鸠;冗O_oK/+眠诌3羞_SGgl=Hww>-t_;翥1|1荀镉;?fqB?L8$色_eK擐粲O窄5-Dl撵c颍 J~|{贿7ヴ孜aU ~@f刊艇:呖GGAb固o岿9T "//a裉`?ㄠb ^fu绋啻倥E仗UV7蓓g峁蛇匮*闪,~e-h檫u<蝶邕ws葸醴g/{3/~$ i[,#}?i蹁n }yΕY^H凿'oG旷_:_d"峥W淇?蛳/荜jF狍/Zg储魔Z?踝?/望N 7QKoC肿蘸ぁE:G姣g罂W_N35>倮?E1q71述.WsS歧羁f(?{_G煽匡W6啡t.L鹩$$嘶8(跚Ov铹jW0t9邗_Tug稞檫+o肯L蛲#@F哆肟麸?跸?涌蚍?虔}w{{\,烫~L)佥Zw敖$em6.筵巫奢^]}'暇(~鹋映嫠?|6线6_蓟~鹫蛰u庄Vee撄{~铑禁;c赆c潺爬妪b怄Y^鲴吻G铩,误b& Ks7 ]0跸}o邀f7虞'唿钴呋亏27gZD";_t?*{换~zGw?s*6笆_^进骓念禁麸`w;&/o箍罱=gLf叙I*邬7有o_螫镒?圬 C&Шh%娱 颍jI 巯>ZUM@颦;KCw谦ャOo>+喁[攥Cq 7诃符埯fG锌>F拂击 78|钷{n?/gop荥{铪73缚7捺疳7:耕9O笼-锟褡筷_'z4_lR7b1m阄X翩(r(睚
pk_溺_W\┘融%xq甾瞌M?蛇GvsxR绱{eUn
1K@fDX践W<{x朕围"G窨l$锏!U+ 3G7zU悴9z瞳/_|nzn]杩慌w慢剽咔g:络跛hhW太思&]嘘\?邵7dcj躐hww纾?7=^?J}({捃7木殂G@O`现C9=K栎vB^~-4瓣)Z3倩坑]NP O眶/v
~李稃埝0酿咏#LI刮{富pw@唿C?鳙铱侩v^6e纭m陔g_>?}ニjIg仅>z巫C"b`F1/[~?踝vD鹩蔟O|U1逆!主oP4Ob]祜临b_?7?舴c!Ⅺ;蜃懦!LDVvjow|q|7筮框稔?w?j流_^?mj奉葸翱5暗6"[奈赁牺M贡_g峡篦OJ[G唼Cu傥aL?;CL;蝻溥钸氵W>犬;wd齄唧?魁 葸?耧_w踢g镞/m赃wU]郾M~_G_S泔 墀羁g|Qyo\┛鲞7荠7O_窨7c?3F_g7\;洛0vp蚩蝼 蛳涌#倪O
?O5+{?Sh镲铋{D{Pw$士_O7kw羞盅> t喳@lhd勰哭q_!7*G瘌iFk#lm谕*4?}o?蒹w7E雏篷g]w褒jUV凫YQ嫱锟w镝鲻&N51T萸蔫滠; M慨7D_羞=嘛{g
L鬻
>漕P馄 |ige鼢[f'痣蓉懑埝W_觑e_
j匡?滹芴_;{{nM3H钇 O溟れ兽围哞 ~] ?暨o3诌徇鲎S邕?7蛇噙暨'墀=u8 7u淳I^贱钧击|蝴N葑%堰#龠S?o?Ok库快稔?峥g+o铱/睃Q=z炭O?d>e誉}帱抽;v簏{H偎t伎骺|笈79镱|痧eG】Y1t>_裤_ok醯 逗田^7!r捋}э蕈{{^阌)rr"? 喻u2jRo?w3砜鲎3?蜻窥嵇鲲K绨犏(I2OX捱qN^ 肤祸]gv=谫蒉蒂[
{`饔K蔬?^_K块Э氵~c?篦芸W#O阵\tpボ臊蔟恸齄t
叁S羁快~阮?蛟㈦_K馋6T?蟑库框_/m忒=6{p lP-/49ぞd 襁o酷囡gx/>乇茂,`>=ks?+趴__鱿'穹c逻丽l8P氵渲p 7:07x ?宵'鳌u度U?椿丑6雍*I]|鲅产辱(Q释UiD秘J0w蕃fN@$匡8hO{;_D"*~j鞯e刭ro=?楔迟.u@w逻=_乜O蔬+瓶酐p扪`*r@c.Vm^h!叩w:惶溆|O~su麽们w+mfo?N0YG!]]w祜誓#4?:?!nv舾ikRc9瘁 匡__Ghㄜ&:TF=!
レ璃}ZfM{N漯yE*c>P v
Pi~v<瞰?cy%B'毙XA杠郜(?'%3:x_WF晴瘅磉 ooe1鉴OC瓤^眈i(^1妞矿/{t~3'y}J]召*&0^7xft饺眸&举雌禳fzUMo燧m4mYz{L缳r=X散O<<缚 y}~嫠i5丝zu鄂?瘅}哌+?_?_s!W糇?鹱|z纾_H漉bB!{/秣5\]"$qM\-聪榆g
o7_olЕy g?Ygo_岿嵇?&/{<Ui4ln寺~*@yj督イS7[hT粞ctZ榱lO?搦[_;屣;b
v?蝶侩;屣w聱+窕eq5p瞽!{S翱{9M驴BYo渠oe?貅铱U?/ /W爝[跨057‖d< ]Z[襁a7E翱?7娇o;膺0t修]TEVs+!锌7?褡邕7?踝?oo婵o~x簌?Ma2Kbwu_6丑\= |p!vW/+矿_oP/?屣_蓐/ZM勖SZ氖走7?/S噙o
_wk?w瓤5QQ铒磙髁n=yoK/蚩磉Ya峥?_G_蠓/_=[]ee6+}(y1(荥_?貅?^Y;想2OY1_哙dNAcK!骒B'gO窥O?)S.v耄}J燔 !$;qWQ7㈢aemw4%?恚EV,?+>|F"k?y炯E??~8M虹?粝
6C}皑1O
?蠹iH軎蟑W匡稃渠M~G清t/c w7衙2mE;Tj裤oz镝o~K湟x'走L'误:匏啐7阉3j桥,遗喵77E30D_x?o啄P]M?}]l璇@鸫 0M}tU{匡7旗/谒vz#"蝤詈y嫁叻YeCZ{3{og纭,K恺.笙>*f睃Q榱贻佶4b=┶ZG;畛Z=rMe攵:VX?Jbsb澹tc溅Kd龙?踝e'唔蘅帐|斛沙o铒~]M琪?] 2捱 c>A⑦>|咎.q|*缯]侈]%WWeY]QB脒W_GI爸_修 ㈠?w鲼h_Mz簋
昕O疬鲼糸旷_'/[n蜈亏?[q0七_S?_9([m骡磺/泔"6_?|纯丑轹讹)@耔s臾q^$'We|Q]~Wpv蝌ovvv黯|{齄0nGmwoggw6箴春^.卜W=e魁奎7W??蹩ouwQ均葵房o{;{;v鲻v韫O 茵GG'贞V%5怀QOSVXIUGqYΟ挟I_迥)ZLf酮坍ニjn莠3沅22/^U[vN?K范停>Kgt =.)9^i;轱~JS,>铱鹎眠8o^Eoy3d字G葵奴┃}QIO茭5O|惋~镔O镧名嘤J匡?蘅黟崦lo'X迄qg铟NK5羟Gw^>)硪q呈]w)(mk2ヘ附{zUy-_x鲷O<<缚QJH!A''(<烷?}c彻q.A2sM悼1?$`稔茎?_怀L5GB厚j劲/f葵涧{檀G题eAC9e)娟zbwow/)_赀W-堰鏊k~Owv扪o逶{螯娠Ot缚鏖Gsae+HL`宙w哌M#=谙V淳哚I5绘_`咿N[B=.Ao祢glMB3l胥魔兽T人挂下载 _Dota T人挂/真三T人挂 - pc6下载站}

我要回帖

更多关于 魔兽争霸t人 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信