游客您好
  • 点击联系客服

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

    客服微信

    Wkr-3000y-kf

    电子邮件

    3000y@wenkeruan.com
  • 手机版

    随时掌握游戏动态

  • 扫一扫二维码

    添加微信客服

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

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

[复制链接]
快要发癫啦 发表于 2023-1-5 09:45:00 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
本帖最后由 快要发癫啦 于 2023-1-6 09:35 编辑
" \) [1 o5 c7 t- T; t" N
; n4 N0 O5 `' Y
上面部分已经初步了解色彩设定的方式, 这个时候为了增加我们自定义色彩显示, 就需要在
* T8 h% A, e# }' i

! Q! f( X; t6 M$ E$ N, E# X" z
    dll里面进行内存地址读写; ]2 L$ c! {$ H! ^$ Q
3 M* F7 h5 t9 C6 c, ]
    我是在 ( \) B$ y% P, U4 H6 d) N% C# ?. ^( G
    , P! H3 `+ b$ p
    0053BBFF  |. /0F87 41020000     ja      0053BE46, P* J" F7 P9 G

0 n* e9 _% R8 j3 w# a: D2 I
    在这个地址进行拦截 在delphi里面 可能可以dll初始化时这样写( a0 \! z4 w0 `
7 L" `: G0 T* r9 H' y
    procedure InitDll();) V7 I$ `# @# d/ f0 W3 Y0 g
    var& C9 N9 K! R% _  W6 G! j" s7 m
      p: Dword;! i( f4 r* Q6 K' V
    begin; w  S1 {( ]% e7 \- K
      p := $0053BBFF + 1;
0 u* i* ^0 c4 @/ p
      PDword(p)^ := Dword(@proc_0053BBFF);" n! B9 `+ `% n" M7 J6 Q
    end;
. _( d; A* ^. Q: M

% c: }' ?% S+ ~% h/ D; _/ p$ \0 x
    在自己的代码里面写一个色彩增加的函数判断比如9 {8 q0 e' [: g  g

  u$ T7 S9 w' \5 M) K
    delphi代码:: i: T7 O7 e. v9 Q0 S. S4 m

) i8 B0 n- o: R% O: @) n5 R! |
    var# B0 _/ b1 ]! |; J1 ?0 g, j) O
      EndAddr1_0053BBFF : Dword = $004F470C;1 c$ }% C  G% ~. L! T
      EndAddr2_0053BBFF : Dword = $004F44CB;
* \5 N3 h2 N# H% m* R: R) k
      EndAddr3_0053BBFF : Dword = $004F4736;    //色彩彩赋值结束跳转
( J" s; [* L: @' H& d* |6 N: m  N2 p

- Q0 R% O4 z$ @: v$ K- W
   CallAddr1_0053BBFF : Dword = $004611D4;
+ H6 b, N$ n* v/ E: m- Y
      CallAddr2_0053BBFF : Dword = $004611D4;: L6 ]+ `/ `0 x9 j

% ^5 P  E% c; j8 G2 k, \
    procedure proc_0053BBFF();
1 h& L' ~- u6 S! A6 ~
    asm
0 t5 t* S. D% {6 `, v
      cmp     eax, $10                        //与预先设定的 最大17比较' N+ h6 \3 o: i7 W  q* S
      JLE      @OldCor                        //小于就跳转到默认16种色彩赋值" Y# H, L9 X; `; U9 ]" f! T

5 R5 M3 X  m4 K4 `
      cmp     eax, $10                        //比较是否等于16
( r, s% C% p: t6 w2 n
      jnz     @Seventh                        //不等于就跳转到第17种色彩判断部分* ^# Y0 I) D- C" Q) y* z$ f* @  t5 f0 X
2 c7 H0 s; m) P$ \8 s
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试
* t* O6 @, m; a
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
' E* \+ G8 v4 u5 w5 ]0 _# N, z
      mov     ax, $A
, \4 F* t; X/ S4 {8 e( |
      call    CallAddr1_0053BBFF ; u9 Q( p+ m! C; K
      mov     edx, dword ptr [ebp-$14]
  h/ l8 q  g: @% H; Y
      mov     word ptr [edx+1], ax! \5 p5 |5 U6 _: |- z/ Y- E' U, X
- M; I  Q6 h/ g$ T
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试
8 ^- b/ q! w) d' U% v& Y5 s3 f' f% a- ~
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF6 a4 t8 L4 Y7 ^8 @2 S
      mov     ax, $10
+ P9 @. P; G4 A7 Y( n! f
      call    CallAddr2_0053BBFF
- L, S- v' F1 Z
      mov     edx, dword ptr [ebp-$14]% q2 v1 L: O& O4 q
      mov     word ptr [edx+3], ax) l- F- e+ O$ q4 S' K4 C
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs
: R/ e" y& `4 d& c$ r$ f. f% _

0 ~! |3 ~+ O1 A
    @Seventh:
6 B& ?/ w5 U" L7 Y: R& @
      cmp     eax, $11                        //比较是否等于17
" [$ ~$ \! h  w- j# |
      jnz     @out                            //不等于就跳转到默认部分
& R' N) W3 q% r3 z  V

4 Z' l& C# w. @4 Q- F( ?, k/ S
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试: ]; e1 ]' k6 x( W: w, T% q' h! b
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
  J  G% V# k+ @4 L2 ?
      mov     ax, $A
9 N6 L! u; H6 l. D" H4 z
      call    CallAddr1_0053BBFF
7 Z& D, g. K+ a0 s" J
      mov     edx, dword ptr [ebp-$14]$ e) ^+ j, {8 C! {( d
      mov     word ptr [edx+1], ax
( I) J1 s. r% C$ V3 g1 q5 Q
, ^; n$ h5 d, |- b0 F2 s
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试" d# S1 }6 s6 w6 U
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
. O+ m+ J) z8 K. L' T
      mov     ax, $105 n  z& e: ~4 K8 e) _
      call    CallAddr2_0053BBFF
2 X, q) _. t+ _5 b6 ^9 D; k/ v
      mov     edx, dword ptr [ebp-$14]% n, }% ~( C) q, \4 P% e; z
      mov     word ptr [edx+3], ax
5 \5 B; e/ S9 t1 e( ^
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs
" I6 B1 |9 a7 o: M( I
                                               //2 n9 \$ ?& g7 m$ i. z
    @out:
8 C. j1 X- Z- M  ]
      jmp     EndAddr1_0053BBFF               //这个是跳转到默认的点3 ]) y' V/ ~/ S8 v# J0 m& w- y

# c8 j6 k0 o; S& v9 ~: T! z$ V
    @OldCor:
- A$ x- V3 D, o/ y8 S; c
      jmp     EndAddr2_0053BBFF               // 跳转到原来16种色彩赋值$ Q! _4 t) g3 q1 C  u0 V: L
    end

8 X/ n" t0 O5 q; |4 J
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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