游客您好
  • 点击联系客服

    在线时间: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 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
编写需求条件:) F% ?* Z( I) _1 e7 O- h  _
3 E7 \' o7 a& U9 i$ y( d7 t
    od工具(看雪论坛有下), 程序编写工具比如(delphi, vc++)
9 h) a7 J' M1 m" L
$ P8 V9 L1 Q. g( l4 d, I

7 K, b+ ^' s4 W6 ^& Q( s
编写过程* ?4 a! E. A  M/ Z2 h: H+ N
. F/ c  }: T* ^9 }% w3 F' o3 o" ^
第1步:6 f7 f" I2 X( q) ?8 d2 t
7 \4 v& A* Z) W3 c
    用编程工具写一个注入程序, 可以dll注入到tgs1000.exe 里面! S/ G, W# J& C- t3 _) V2 f( x

2 g0 y* S) C" r% v& z! A
+ e5 P- q3 B$ }  J) u
第2步:' o8 p+ i3 P4 p, H  U/ e0 _/ N- Q

$ L0 }* P7 N' g* H+ O1 b& i+ W$ {
    打开od工具, 调用菜单打开功能 读入tgs1000.exe F9运行程序
. E$ `) O1 b0 f5 e

3 f6 @. S" \# J7 m
    启动客户端进入游戏(后面要用客户端)
; f2 x7 A4 s5 t6 T) M

) _+ e& y- I0 n
    调用 菜单->查看->可执行程序 看到列表里面 双击路径是tgs1000.exe4 r; T% D4 o% y* D' w* x+ }
: z7 m8 ^/ V# ~! c: J  _
    在出现的界面上右键 菜单->查找->所有参考文本字符串  od 会扫描程序
& n6 Q9 O: f# X

' f+ S) J" C1 z" @1 d+ T6 @! H- `
    提取出参考字符串, 然后右键 查找文本 输入 <system> 字符, 这时可以看到
* A4 h7 ]7 E' A$ ?

. [& Y$ t: @- r! \. f- K
    od停在, d9 w5 M  y8 ?. s& L4 F

% d& ?  j: Q3 s9 ]4 G$ x6 {% @* Q
    0052A0C7 mov     edx, 0052FDD0   ASCII "<SYSTEM>: "
' C3 y& g9 k, [8 G- o

( U% E% N' v  I* I6 a. T0 @- g
    双击这一行 再次看到od定位在汇编代码显示页面
% q  n/ ~3 ]) |+ Z4 Z
6 M1 F) U8 t$ a1 R- u* \

) F8 R# w$ @( G
        0052A0C7   .  BA D0FD5200   mov     edx, 0052FDD0                    ;  ASCII "<SYSTEM>: " " i9 [; |3 z5 w, R  a- W! ^
        0052A0CC   .  E8 C7A5EDFF   call    00404698                                
0 ~1 ^' G$ e% ~3 ~1 g9 W9 M7 `$ S
        0052A0D1   .  8B95 ACDEFFFF mov     edx, dword ptr [ebp-2154]        ;  赋值edx 为中间屏幕显示的内容
% {& z! {- {, W1 W
        0052A0D7   .  B9 03000000   mov     ecx, 3                             ;  这里是色彩的选项 后面会调用$ _6 \, T6 B4 K0 r( U1 D" m
        0052A0DC   .  A1 70855600   mov     eax, dword ptr [568570]             ;  这个是UserList地址 参考侠中道代码可以知道        
" S, F5 G9 V- ~! E$ E
        0052A0E1   .  E8 D21A0100   call    0053BBB8                         ;  屏幕中间喊话的call 0053BBB8+ U( g: h6 j, Y! @

6 ]' E) h) t0 A2 ^( O1 l
    定位在 0052A0C7这一行 在这里双击下断点, 在客户端用GM喊# ?????: s0 B+ U2 \5 z0 W! j9 `2 v
    0 B4 T( y1 M9 K5 {3 X  r
    这时od会被中断, 断在刚才下的断点处, 这时按下F8 $ J2 C( l1 @. `( k5 B" _

, k# O. [3 T6 s% I" Y) t
    到call 0053BBB8 部分 按F7 进入call里面 这里是根据ecx值 取得喊话色彩7 D% V% ~4 N& G
3 W8 W" l- b! P7 A! y5 S- x$ a
    同时发送数据给客户端1 F5 ?: V' s8 Y+ d
2 ^) w/ W& E) e9 H! ^5 C% v
    6 p* p# D& }% C/ |: h( M) a
    进入call之后 一路F8 到下面这里 这里的 eax 就是刚才ecx值 在上面部分已经交换过
7 G' I2 t0 ]4 t5 T3 C
  
  W+ b4 n4 w7 `, [( u4 p
        0053BBFC  |.  83F8 0F       cmp     eax, 0F                          ;  Switch (cases 0..F)
0 a* c+ A9 p# {$ }! K/ p
        0053BBFF  |.  0F87 41020000 ja      0053BE46
! w, C. A4 r4 I8 z% W; ^5 u

! v. D" q- E4 G
    eax 这里是3 一路F8比较下去到下面这里
; x. O1 O2 L7 K' S1 {; F$ T/ ]
& b- l- U0 m; H/ \- q) ^" H% F
        0053BCD9  |> \66:B9 1F00    mov     cx, 1F                           ;  Case 3 of switch 0053BBFC
3 ]) ^3 z2 k+ C2 L9 e7 }
        0053BCDD  |.  66:BA 1F00    mov     dx, 1F4 I. H- t7 W4 S$ a" o0 q6 ]- o  o9 T
        0053BCE1  |.  66:B8 1F00    mov     ax, 1F
, D" \2 `% ^1 X
        0053BCE5  |.  E8 EA54F2FF   call    004611D4
$ _$ r- {$ W) |) z9 {

8 E, t0 |' E/ e" Q
    这里的 cx, dx, ax 看到过侠中道代码的就知道是 Winrgb(r,g,b:word) 的3个参数
( g$ b# d1 c" o; O8 B4 u
    : A% z* j, ^: W6 h- H& _$ J7 E
    call    004611D4  就是调用 winrgb

4 M$ V/ O$ |) W. Q1 U  N0 Q2 C
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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