游客您好
  • 点击联系客服

    在线时间: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 编辑 ( f! G% L# u8 ?1 x' b
) V$ e5 E! _- J! u0 y- R
上面部分已经初步了解色彩设定的方式, 这个时候为了增加我们自定义色彩显示, 就需要在" U8 W; ]+ `" B9 f

9 ?' @2 `- ~) a/ Y' A
    dll里面进行内存地址读写' h" x/ U4 c: |; n# S
6 ?8 ?/ |2 c4 y  G) Z! r
    我是在 7 G' m& Y1 N4 T8 ~3 E" ?. b( d, m
   
* p) A$ S7 K, m8 y9 ^  S
    0053BBFF  |. /0F87 41020000     ja      0053BE46
; U. U: L5 V7 _8 s
6 X( _+ z% j! Y4 i
    在这个地址进行拦截 在delphi里面 可能可以dll初始化时这样写, m, s3 I4 H/ y) O% x1 n

* K3 t$ l( b; f( Y0 Z# P
    procedure InitDll();
5 S# S# f  X' r9 \
    var
* B8 ~8 a4 v. a5 P3 P! p! ^* J
      p: Dword;5 J0 u6 l" u; y* m  K3 s; o
    begin6 O' y  M" {; N; O/ r& r
      p := $0053BBFF + 1;" z/ y' p/ o; `( M: ]6 g) K
      PDword(p)^ := Dword(@proc_0053BBFF);, g" y5 j; g+ u8 y5 r0 y
    end;8 s8 ?1 w2 Z: N+ l: {

, b+ R3 S5 o) y
    在自己的代码里面写一个色彩增加的函数判断比如5 O' H7 t6 B+ A# {5 P
0 {9 c- z* {( E1 w7 `2 }, ?0 B/ H: k
    delphi代码:
8 b9 x, b2 B5 U! v4 C0 r
( s3 y) t7 z3 \9 S6 r7 E
    var: s- j0 X( t9 [9 K# c5 U; `2 ]
      EndAddr1_0053BBFF : Dword = $004F470C;: P- T) r# f" l0 ~% q" |
      EndAddr2_0053BBFF : Dword = $004F44CB;
# h) U# f( N2 t
      EndAddr3_0053BBFF : Dword = $004F4736;    //色彩彩赋值结束跳转3 j/ @9 A& ]: m' }. a! c) u

- f* y2 t( `/ L5 a, ~0 {  j6 P
   CallAddr1_0053BBFF : Dword = $004611D4;
0 u) _) w  m. L. J+ O+ @. t  c0 l' j
      CallAddr2_0053BBFF : Dword = $004611D4;+ E7 }. o, }, d4 u% h$ c0 P! x& ~% l1 O

) v; j) C7 l" h, z4 A- G2 U' L5 ?2 `
    procedure proc_0053BBFF();: g1 }. ~* j: L( U; ]& t" j
    asm, g- z( q  d! e  v6 i  Y
      cmp     eax, $10                        //与预先设定的 最大17比较
0 X* R" D# p; B. s2 ?
      JLE      @OldCor                        //小于就跳转到默认16种色彩赋值
5 q/ Q8 a4 X& W1 B
3 W2 H* q3 x$ m. f3 X
      cmp     eax, $10                        //比较是否等于16
4 Z5 h+ N% D; J: d) _
      jnz     @Seventh                        //不等于就跳转到第17种色彩判断部分) Y& B: R& X+ z  c+ \0 }5 H

! M0 E! ?3 s7 n5 D7 f) |7 A
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试
" h( A$ O5 [0 m* w5 g* F. q
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF& @" g4 z  K! I# c% e1 u
      mov     ax, $A
! r" D  A2 ]. r7 x% p6 Y; i( w' q
      call    CallAddr1_0053BBFF
4 l- \2 s5 c2 W) m7 P
      mov     edx, dword ptr [ebp-$14]
6 F6 s& G" `. i, q6 C- {- C
      mov     word ptr [edx+1], ax& K" V$ \, F- z2 @- O5 S7 j/ T

0 U4 Y( O6 l) W. s
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试
& V9 O0 J! K- z
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF6 Y9 E( r* i# t# G; v' m" l5 d
      mov     ax, $100 c; i* R! o& X) `( v4 z+ K- ]0 N
      call    CallAddr2_0053BBFF
! b7 B: r" i  k. J2 K( y: S  b
      mov     edx, dword ptr [ebp-$14]
8 R7 j6 ?" c# @6 r. ~+ x" p7 d
      mov     word ptr [edx+3], ax
2 D5 A8 r; @$ c
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs
" F0 \# B, p% K: A7 ~7 r; s

' {$ ^/ M& B; h* p# a
    @Seventh:
- D8 Z$ _% u  e0 v
      cmp     eax, $11                        //比较是否等于17
' W* T$ ]" o2 s; l" x8 \* n
      jnz     @out                            //不等于就跳转到默认部分
+ D1 d+ @0 ^  W, q1 H1 E

- _) [" L" h/ P# X
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试) d8 j5 A7 ~; P( W. O5 `, b3 E% b
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
; c- h( H. p' d: p; l% x. u* G
      mov     ax, $A% ^0 A/ K8 g  o) `. `4 Z
      call    CallAddr1_0053BBFF
3 G5 ]9 b; L, [8 h: S; |! C# v
      mov     edx, dword ptr [ebp-$14]
" p8 ^& k# d6 v3 i3 _
      mov     word ptr [edx+1], ax7 s: R/ b, x4 q& l% G' L! N# J8 a, Z
9 k4 d$ z* T% b6 o' |
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试
  c0 \0 Q. U0 ~
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF! i; }- s$ S1 y) \
      mov     ax, $10. ^  f% w+ X0 y% ^
      call    CallAddr2_0053BBFF
& @7 m" x) f+ r2 h! p8 V' \
      mov     edx, dword ptr [ebp-$14]# z7 Z. W* C  \* t/ N
      mov     word ptr [edx+3], ax$ C' q7 S7 L$ x
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs, ~% K4 ^' K# b8 k& d* l, O7 p. Z
                                               //; ?2 }0 I2 B) E  F) Z% e5 o
    @out:
4 u  Q- v. u4 T; V: v% ^% m' E
      jmp     EndAddr1_0053BBFF               //这个是跳转到默认的点
8 |' R* q* N/ h- ?  i0 F4 t! H
# R7 p5 _, \5 i# I
    @OldCor:. m5 {" V5 |! I5 s7 i/ x7 \4 e
      jmp     EndAddr2_0053BBFF               // 跳转到原来16种色彩赋值
2 [4 }$ R1 ~$ p, a# K! W. ]
    end
7 |) b1 S$ n  Q  x& n* @) A
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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