游客您好
  • 点击联系客服

    在线时间: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" ]* W* {- H$ W7 t  X  ~
9 ^' U6 a& t0 |' x9 n; N( F
    od工具(看雪论坛有下), 程序编写工具比如(delphi, vc++)$ o7 `7 I% ]4 ^0 d$ d, }" c
) A( ]) ?+ e  \/ t

! F8 m" B# t0 g& f
编写过程
8 l. ]4 e3 ~4 {% Y1 f) L

5 \0 Z& n& g1 S4 `
第1步:: @4 m) j) _5 }- \- O( s$ b
% m) r+ y( K7 x& ]2 ?, ]" m
    用编程工具写一个注入程序, 可以dll注入到tgs1000.exe 里面
6 r9 d7 G" M8 S+ e# g! z

+ {' a2 ?! m1 d1 K
/ `* p% J6 G; L. d
第2步:
+ E9 j, g6 T: A- ~

+ h( |9 @/ s3 p' M$ w% t
    打开od工具, 调用菜单打开功能 读入tgs1000.exe F9运行程序
5 j4 k+ O, ?% ~

) |# ~7 b* P1 T  \6 g
    启动客户端进入游戏(后面要用客户端)
. w# P' v  S% r  @: s- D

1 U7 h2 l; o4 d4 {3 `, m. Z9 s
    调用 菜单->查看->可执行程序 看到列表里面 双击路径是tgs1000.exe, p4 p5 D' C$ ~, c. U! F0 c. b  ?% t

5 N  G$ n6 H: C# h, F
    在出现的界面上右键 菜单->查找->所有参考文本字符串  od 会扫描程序
: n+ `9 e5 a4 d' @$ }: S
* x- j! A# n7 I  Z4 Z
    提取出参考字符串, 然后右键 查找文本 输入 <system> 字符, 这时可以看到
% c$ q7 q$ T" E4 a' b1 y, l
  p& J1 c' S( \; J1 U7 I- w
    od停在$ ~. r: P, T. l! h6 V
& F0 P( {; D2 f4 _) D
    0052A0C7 mov     edx, 0052FDD0   ASCII "<SYSTEM>: "
2 a9 M! K8 E; P; U7 r
5 }, t6 P) O, L  _; `6 [
    双击这一行 再次看到od定位在汇编代码显示页面
% A' R* u- Z; S! j9 ]7 I% F" P9 y$ E
! [2 O4 _) c  @$ Z

' {1 M$ z$ \5 h- L/ t* S
        0052A0C7   .  BA D0FD5200   mov     edx, 0052FDD0                    ;  ASCII "<SYSTEM>: "
0 b$ T0 v, e. G7 }% f
        0052A0CC   .  E8 C7A5EDFF   call    00404698                                . ]7 R/ @& b5 o6 b! q% ^4 D
        0052A0D1   .  8B95 ACDEFFFF mov     edx, dword ptr [ebp-2154]        ;  赋值edx 为中间屏幕显示的内容/ E4 s% U9 b- L# }; v
        0052A0D7   .  B9 03000000   mov     ecx, 3                             ;  这里是色彩的选项 后面会调用
' |/ M! K# U! e, M% @6 {( P
        0052A0DC   .  A1 70855600   mov     eax, dword ptr [568570]             ;  这个是UserList地址 参考侠中道代码可以知道        ) ], A/ ~) @* p0 Y" h* _/ D
        0052A0E1   .  E8 D21A0100   call    0053BBB8                         ;  屏幕中间喊话的call 0053BBB8
7 j& {' d7 [7 y9 L' p7 Y3 L

# ~7 t3 J- ^4 ]9 D) [( d: \: {
    定位在 0052A0C7这一行 在这里双击下断点, 在客户端用GM喊# ?????# `9 u( f; W+ r) w% C" z# O$ J
    * w; U0 m" p, v. {  i' }& k
    这时od会被中断, 断在刚才下的断点处, 这时按下F8 8 P  q7 T; F2 u) K* f# v0 _! b+ c
; A. \' }1 P* z0 p
    到call 0053BBB8 部分 按F7 进入call里面 这里是根据ecx值 取得喊话色彩+ y& V8 l/ X# X" R3 ~/ w5 U9 _

/ {, v9 G% g! w. E+ c4 @, I9 J
    同时发送数据给客户端. L1 ?7 t0 v% V( g, `0 Z
6 o0 i8 L2 R- |/ |. W/ `5 b2 T
   
! z, Y# T3 F0 Y. m% A5 o4 k
    进入call之后 一路F8 到下面这里 这里的 eax 就是刚才ecx值 在上面部分已经交换过+ I+ n$ |8 Z! {( G- }& z- y
  
; A5 H9 Z+ p3 }% }4 ^
        0053BBFC  |.  83F8 0F       cmp     eax, 0F                          ;  Switch (cases 0..F)
/ `7 q6 \: I. M& [2 k: s$ V
        0053BBFF  |.  0F87 41020000 ja      0053BE46
0 K. I% s1 O! D  P, X, U
4 D, W4 U, ^, A* l6 H" y0 u! Y
    eax 这里是3 一路F8比较下去到下面这里
) C  Q& L6 Z" U: x: G2 N! _
/ m/ J) ?. n' |8 n# V; ~
        0053BCD9  |> \66:B9 1F00    mov     cx, 1F                           ;  Case 3 of switch 0053BBFC: M) ?8 L- ~1 p& |3 g$ D
        0053BCDD  |.  66:BA 1F00    mov     dx, 1F
2 ]5 L/ z! u2 K- ?3 d! t+ P4 r
        0053BCE1  |.  66:B8 1F00    mov     ax, 1F
4 a9 u2 _% K2 k2 G2 W3 i/ ]; a# C
        0053BCE5  |.  E8 EA54F2FF   call    004611D4
6 G% _3 {2 c: h3 Z7 N0 [
( K; @4 Y) g* G- O. i
    这里的 cx, dx, ax 看到过侠中道代码的就知道是 Winrgb(r,g,b:word) 的3个参数 8 f+ T2 T$ e: |/ [! L
    ) j- d) m! L7 G+ h
    call    004611D4  就是调用 winrgb
# f5 a! A+ q  [  H; ^
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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