游客您好
  • 点击联系客服

    在线时间: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 编辑 . }2 h3 K! H/ p; r# _

! g. U! m+ o* D" _, k7 U
上面部分已经初步了解色彩设定的方式, 这个时候为了增加我们自定义色彩显示, 就需要在+ x, Z( A( x. T0 ?5 H0 I# w

! _+ S4 Q! i9 D' U! e
    dll里面进行内存地址读写
- n2 m: p- D5 M. @) w
% ?. v+ h8 m7 i; f. m! v  ?1 |
    我是在
  Q* W" O% q3 C' [% J* g' ^! ~
    3 n0 l3 V7 h; e
    0053BBFF  |. /0F87 41020000     ja      0053BE468 K. e. Q- r1 X
% `5 B6 W* P& j3 ?
    在这个地址进行拦截 在delphi里面 可能可以dll初始化时这样写$ B  k( i- Q; @" j+ X7 |3 Q
4 F3 y& T5 v2 g# `2 o
    procedure InitDll();0 P# n9 c3 z& n
    var
8 a- R; C' @- I4 X0 d( I
      p: Dword;& N/ \8 [& `' p
    begin6 j: H  ?: F) s6 I1 d5 Z
      p := $0053BBFF + 1;
9 k( E7 P* H2 Q; j& P! g
      PDword(p)^ := Dword(@proc_0053BBFF);
- c, s* n+ Y* m- Q+ _
    end;9 w: F7 I0 J" ?3 h
! X. H( n# O% K( K; P. V
    在自己的代码里面写一个色彩增加的函数判断比如
+ b7 e; a: S0 l' Y/ d
! K( L! F  `" y' o/ Y5 S; D9 `
    delphi代码:7 J9 N4 F# U* Y# P9 @2 E: M1 ^
" ]1 \4 j# [, X+ I5 A' H( F
    var1 |0 E: R( _% ~  C; R" F
      EndAddr1_0053BBFF : Dword = $004F470C;/ z9 X  X( T5 G
      EndAddr2_0053BBFF : Dword = $004F44CB;" y* v$ ~- s3 f) B% G* u$ b, u- e8 d
      EndAddr3_0053BBFF : Dword = $004F4736;    //色彩彩赋值结束跳转- ^( ]* e0 Z/ d6 i: q
) n- W$ B, _/ u9 N: M
   CallAddr1_0053BBFF : Dword = $004611D4;
; b8 T2 o9 b: W' r0 g& H
      CallAddr2_0053BBFF : Dword = $004611D4;0 D0 _8 D) [1 ^4 j

2 y' i, ~6 }  {2 E* |& C. f8 S) X7 h
    procedure proc_0053BBFF();
( r* E* T3 D. B$ K' }
    asm  ^  C! [9 `) h: W7 ?  w
      cmp     eax, $10                        //与预先设定的 最大17比较# H: m& v; |7 ^# ^+ A% k
      JLE      @OldCor                        //小于就跳转到默认16种色彩赋值
! K1 \) m* h5 X

: Q" h$ R4 G. c2 H9 t
      cmp     eax, $10                        //比较是否等于16
+ B4 `! F/ P# ], r8 g
      jnz     @Seventh                        //不等于就跳转到第17种色彩判断部分
/ K+ X* ]$ M( i

3 K4 T5 p( G2 K4 G- d; M% S3 B
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试
) f. L( a2 d( O- a1 S
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF8 X/ M7 U( ?- e" B0 c
      mov     ax, $A
# Z/ k/ d6 t; r; M; q( L( @, A
      call    CallAddr1_0053BBFF
$ ~9 y6 x$ B. x% h
      mov     edx, dword ptr [ebp-$14]
+ C, O3 U" x1 d
      mov     word ptr [edx+1], ax
9 a2 V, K. [6 O% I  [% ^
5 @. a" r/ P2 ?
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试( Y" a  v$ {3 {4 _! ^4 i& `
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
) r' I4 L4 ~+ L1 Z
      mov     ax, $108 J* z( J( N2 x' U
      call    CallAddr2_0053BBFF
% B- t8 R1 J# `8 d$ F
      mov     edx, dword ptr [ebp-$14]
4 H# r; j: I6 c  i# i
      mov     word ptr [edx+3], ax5 U) ]6 w0 _+ ~
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs
# P. @3 |+ n; @7 v2 T
0 w8 ?8 j1 o, O* i
    @Seventh:+ p, G' L  v$ j; Z7 z! T# j, l
      cmp     eax, $11                        //比较是否等于17 3 S5 R4 I, h  D" R% Y
      jnz     @out                            //不等于就跳转到默认部分
4 t; Y7 S8 o/ f2 c
0 i% m3 i- Q! c) ?* X( ?+ j
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试/ F1 R: A( u9 h3 T5 J2 |
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF8 V% A+ s6 S( f: F' n8 A
      mov     ax, $A
) O. v# F4 |1 ?! G1 E  i+ U. z
      call    CallAddr1_0053BBFF
- Q9 y$ `5 r6 d4 {0 M& L5 r! Q2 F% f5 m
      mov     edx, dword ptr [ebp-$14]4 H) k  w( w* h  {# K* X' u
      mov     word ptr [edx+1], ax. N0 V  o1 i) N
) e3 s& _3 x4 W( e  k
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试
; e" E1 O7 H% z: m# D/ Z
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF+ G1 V/ f* E0 d7 M
      mov     ax, $10
1 ]1 F$ @1 E1 l
      call    CallAddr2_0053BBFF
! H* t5 ], d; f* J4 y  T& g
      mov     edx, dword ptr [ebp-$14]+ A* U7 R9 C" j  I- g
      mov     word ptr [edx+3], ax0 w# [/ r) `/ B# ?8 T6 K
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs
' ^" `- G6 o; ~& Y
                                               //: ^4 i% k+ L: c. |2 z) [5 Y1 W
    @out: $ }- t  j- }1 K( b
      jmp     EndAddr1_0053BBFF               //这个是跳转到默认的点
- D) j& e) M# U% }

0 ]/ B- }: I6 V$ ]% T
    @OldCor:6 f1 j% f  h, Q' o& X# S, j
      jmp     EndAddr2_0053BBFF               // 跳转到原来16种色彩赋值& N( h" p! O0 A3 D
    end

3 g- [- H: c: D& `9 b! ?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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