游客您好
  • 点击联系客服

    在线时间:8:30-18:00

    客服微信

    Wkr-3000y-kf

    电子邮件

    3000y@wenkeruan.com
  • 手机版

    随时掌握游戏动态

  • 扫一扫二维码

    添加微信客服

Lv.5 解脱境
277号会员,0活跃值,2022.10.27 加入
  • 207发帖
  • 173主题
  • 0关注
  • 0粉丝
这个人很懒,什么也没有留下。
独家推荐 更多>

[安全工具] 初步了解tgs插件的写法(一)

[复制链接]
快要发癫啦 发表于 2023-1-4 09:08:12 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
编写需求条件:3 Y0 U- j7 H% O
9 e: O4 \7 A9 l# [& @; |
    od工具(看雪论坛有下), 程序编写工具比如(delphi, vc++)
/ i9 `) y! d, {9 V% k( @5 X

* v2 X8 \  W; M" o  k' |" \8 G
+ r3 e2 |) L  Y, }$ S) b2 V* u4 `
编写过程$ i9 b* A4 R2 _" w- N) ?% p* K6 s
5 y/ s1 J7 Q& ?/ J
第1步:& p$ b$ A+ t6 X2 n7 {

- N' Q) c8 z0 T4 L
    用编程工具写一个注入程序, 可以dll注入到tgs1000.exe 里面
7 k0 h. K& B7 C, Y' `

+ F% \& m; Y: q! _$ f# Z0 S
+ O4 @2 m1 u- q3 I$ i- V1 ?
第2步:
. o5 t- |3 U5 U% w$ J$ p

) E( f/ i# L1 n
    打开od工具, 调用菜单打开功能 读入tgs1000.exe F9运行程序* [5 W4 g0 K8 ^& B; w1 U" K

' b- E0 X4 H# Q% \3 h- E
    启动客户端进入游戏(后面要用客户端)
% d" T; g% ^, z
# O- L7 k6 ^* w: Y1 k" f
    调用 菜单->查看->可执行程序 看到列表里面 双击路径是tgs1000.exe
3 a+ t; v% r! J6 h0 h8 P
6 E1 E/ A& w9 J' V. @5 I
    在出现的界面上右键 菜单->查找->所有参考文本字符串  od 会扫描程序
. y, m9 p/ e7 u. b: r" u* k

2 k" c1 y. v+ ~' S
    提取出参考字符串, 然后右键 查找文本 输入 <system> 字符, 这时可以看到: Y8 \- P9 i$ k5 I

. ^4 L* V+ e' Q6 }
    od停在
4 L! [0 B' u3 `' j

$ p. J+ z8 a3 M& y. Z7 q! D
    0052A0C7 mov     edx, 0052FDD0   ASCII "<SYSTEM>: "7 H3 m" H5 e+ S/ U7 L
; V  E, O- x8 K
    双击这一行 再次看到od定位在汇编代码显示页面
6 c( b$ ~9 c% N1 U
5 P3 A: U' N6 B! T1 {% L5 o0 S
, A. B! L+ _% @5 P
        0052A0C7   .  BA D0FD5200   mov     edx, 0052FDD0                    ;  ASCII "<SYSTEM>: " ) k% I% y  g! f/ m0 n5 N
        0052A0CC   .  E8 C7A5EDFF   call    00404698                                
5 A! \. Z3 J. {2 ?4 |: y9 j
        0052A0D1   .  8B95 ACDEFFFF mov     edx, dword ptr [ebp-2154]        ;  赋值edx 为中间屏幕显示的内容7 ~' |9 M1 }2 f+ p
        0052A0D7   .  B9 03000000   mov     ecx, 3                             ;  这里是色彩的选项 后面会调用6 V7 ?% G# G, t
        0052A0DC   .  A1 70855600   mov     eax, dword ptr [568570]             ;  这个是UserList地址 参考侠中道代码可以知道        
9 M( M' J1 d9 o+ M& T3 ^1 V
        0052A0E1   .  E8 D21A0100   call    0053BBB8                         ;  屏幕中间喊话的call 0053BBB8
- N( s. _& D9 H& J; }; {4 U4 ^

4 c1 I0 g9 x3 T$ W+ G
    定位在 0052A0C7这一行 在这里双击下断点, 在客户端用GM喊# ?????$ z* r" Q2 ^2 V: n5 E
    , j( g3 b3 G5 w" H
    这时od会被中断, 断在刚才下的断点处, 这时按下F8 4 w4 N  }3 Z% ?5 z1 Q3 q9 G
- N: |7 _( u, }2 ~" o5 H7 h( [
    到call 0053BBB8 部分 按F7 进入call里面 这里是根据ecx值 取得喊话色彩% `) N, {# U0 `' v/ G6 t+ `; }6 p
- D- m$ d- R0 \, X
    同时发送数据给客户端
' T, `$ n4 C& l+ t" U# K" W2 u0 F

5 R+ a* q; x4 s" |
   
6 N4 Y4 d3 l- R' X* q+ I
    进入call之后 一路F8 到下面这里 这里的 eax 就是刚才ecx值 在上面部分已经交换过
. V; R3 a+ ~4 E! T( }3 Y0 E5 a
  
+ n* |- R/ e3 a* ?
        0053BBFC  |.  83F8 0F       cmp     eax, 0F                          ;  Switch (cases 0..F)5 ?1 H/ i/ y( R) c6 K( q" H/ Y
        0053BBFF  |.  0F87 41020000 ja      0053BE46" ~/ D3 E# j7 D4 q1 ]; Y
/ t' u7 T4 ~; g3 I& `3 C
    eax 这里是3 一路F8比较下去到下面这里% N- b  h! F0 ^% s. ?

  i. a( \' A3 F" Q
        0053BCD9  |> \66:B9 1F00    mov     cx, 1F                           ;  Case 3 of switch 0053BBFC. y) {. E( W. C" i1 s$ D
        0053BCDD  |.  66:BA 1F00    mov     dx, 1F
1 I9 q7 b0 s6 U9 ?! ^, }& f+ [
        0053BCE1  |.  66:B8 1F00    mov     ax, 1F
6 O5 G5 F. w$ s- N' G
        0053BCE5  |.  E8 EA54F2FF   call    004611D4
" G7 y  F2 y5 h# D4 m

( [" p" G1 J9 d2 p7 \
    这里的 cx, dx, ax 看到过侠中道代码的就知道是 Winrgb(r,g,b:word) 的3个参数
3 ?5 f+ y+ V! J* U) T2 F
    0 T2 B( o- w, F. g2 E: F* P, \
    call    004611D4  就是调用 winrgb

! z* j3 R  Q  R- ?+ M/ \$ j" d
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

Powered by Discuz!X3.4 ©2001-2013 Comsenz Inc.闽公网安备 35099902000100号增值电信业务经营许可证 闽B2-20220593 闽ICP备2023014375号