游客您好
  • 点击联系客服

    在线时间: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 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
编写需求条件:
: s( |# U* Z( A8 ^$ J1 U4 Y
7 X; ^) M* Y! E9 }) T- a. I0 P
    od工具(看雪论坛有下), 程序编写工具比如(delphi, vc++)
3 L" t" p, {+ k0 B

0 \1 l* O7 v+ W

8 f; }. B/ z6 d* C' T  ~" p& |
编写过程9 ^' Y, N8 z3 j$ Q8 @7 c& s
' c- c: Y9 g( {$ N
第1步:# J: s, r3 B6 l$ j' Y6 \5 s

0 X: N$ p6 R7 R/ M; |. a9 f
    用编程工具写一个注入程序, 可以dll注入到tgs1000.exe 里面- F- f6 \' ^- c9 C5 ?5 ]
$ B. P( ~8 s% k; k  I2 b  u4 x5 {
, p6 @$ o# B5 g; j( O7 n8 M* ^
第2步:
" a- ^" D" p1 b# K3 k

5 b) e8 T8 g4 ?: s4 ~
    打开od工具, 调用菜单打开功能 读入tgs1000.exe F9运行程序
( Z& k2 z3 P: E3 F. {% ~
( }5 e9 I' I* j6 s
    启动客户端进入游戏(后面要用客户端)/ O' N8 m! C, a/ v9 g9 q/ H
& Z- m# T3 ~0 {- {  r0 W& }
    调用 菜单->查看->可执行程序 看到列表里面 双击路径是tgs1000.exe$ f: ?9 y- D1 i3 T( f. ~& Q
# Y+ z  G- v9 R) B+ g+ V
    在出现的界面上右键 菜单->查找->所有参考文本字符串  od 会扫描程序
& [' h1 F( i$ O8 F/ e* c1 \
; H& ]- a1 Y5 ?
    提取出参考字符串, 然后右键 查找文本 输入 <system> 字符, 这时可以看到% D  J4 M3 `2 \* J# ?8 K, {! M6 }
% F: l( v: C& A& }* w% A
    od停在# g. s6 [% x1 w1 w

5 y- M& @3 Q( a( W1 a7 p7 r
    0052A0C7 mov     edx, 0052FDD0   ASCII "<SYSTEM>: "
0 h9 K- O3 |/ X4 |/ _3 |
/ a/ g3 G& H+ B  u/ I' d5 J
    双击这一行 再次看到od定位在汇编代码显示页面
5 G- e7 O* p7 m
. V+ y7 `% [7 s+ ?/ q

1 b  A) _* x; x* p9 G
        0052A0C7   .  BA D0FD5200   mov     edx, 0052FDD0                    ;  ASCII "<SYSTEM>: "
# y0 ^" p/ M$ S" T% G5 u5 a: ^
        0052A0CC   .  E8 C7A5EDFF   call    00404698                                : ^. L5 m% w' o4 [, Q
        0052A0D1   .  8B95 ACDEFFFF mov     edx, dword ptr [ebp-2154]        ;  赋值edx 为中间屏幕显示的内容
' S$ \; P& m/ x) L8 m4 U' ]+ Q
        0052A0D7   .  B9 03000000   mov     ecx, 3                             ;  这里是色彩的选项 后面会调用7 F0 ~4 @" j) c
        0052A0DC   .  A1 70855600   mov     eax, dword ptr [568570]             ;  这个是UserList地址 参考侠中道代码可以知道        $ l' f- J) w$ S: F( D$ T+ q! _# A
        0052A0E1   .  E8 D21A0100   call    0053BBB8                         ;  屏幕中间喊话的call 0053BBB81 H( C7 s  n1 H0 o: Y# O3 e
+ D- S4 w$ I# n% i8 y# K( O& I
    定位在 0052A0C7这一行 在这里双击下断点, 在客户端用GM喊# ?????
" C; u8 F! Q0 n
    1 ~6 I( |' l7 P" Y3 s' D
    这时od会被中断, 断在刚才下的断点处, 这时按下F8 1 \4 g6 h* H- v$ V
$ L5 I1 K! p- v' H& E7 M
    到call 0053BBB8 部分 按F7 进入call里面 这里是根据ecx值 取得喊话色彩& Z4 K' S5 ?, M. u% J

" U: j  ^! J4 a( q5 b9 [
    同时发送数据给客户端% f) w5 \( ?# {5 H

6 `! J* t8 I8 E! {- U- ?2 p. f
   
! ]+ ]9 z! K- ?/ O. y2 b- Z
    进入call之后 一路F8 到下面这里 这里的 eax 就是刚才ecx值 在上面部分已经交换过
# M' O6 B+ \. R! R
  9 B/ N! ~( G) Y& X' A5 l
        0053BBFC  |.  83F8 0F       cmp     eax, 0F                          ;  Switch (cases 0..F)1 A8 b" D9 S# v. E0 W% z. k; @- _" z
        0053BBFF  |.  0F87 41020000 ja      0053BE468 k: l9 x, ?) Y' }) c; Z

0 h$ u+ W8 B3 Q% Y. \" @4 _
    eax 这里是3 一路F8比较下去到下面这里5 e. _/ L; x, w& J7 n2 n, X" T
; M& L* {) S% H5 E8 J
        0053BCD9  |> \66:B9 1F00    mov     cx, 1F                           ;  Case 3 of switch 0053BBFC
9 k4 \; Y, P' Y+ \
        0053BCDD  |.  66:BA 1F00    mov     dx, 1F
! e7 _0 u* |' G6 E
        0053BCE1  |.  66:B8 1F00    mov     ax, 1F
# s. s2 j) b6 ]9 d9 i+ m2 `) C
        0053BCE5  |.  E8 EA54F2FF   call    004611D4
( y: }; Y; W2 v/ o: _4 L+ ~5 `3 A7 b

; x' }/ ~3 A6 e, X1 z, ^4 N" v8 V7 b
    这里的 cx, dx, ax 看到过侠中道代码的就知道是 Winrgb(r,g,b:word) 的3个参数
3 Y1 H5 ?! d# ?6 n1 Z$ U" [) j
   
. I  W  q5 a8 y0 @3 b# }
    call    004611D4  就是调用 winrgb
2 S  x: B+ Q7 q9 v* ^
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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