游客您好
  • 点击联系客服

    在线时间: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 编辑 4 Z8 d$ J$ W8 J  n' m' D2 G

  C' \. e' E1 [$ B" w$ f/ r
上面部分已经初步了解色彩设定的方式, 这个时候为了增加我们自定义色彩显示, 就需要在. R: b: A4 j7 R, b/ ^

& T0 b& l6 ]) k
    dll里面进行内存地址读写
9 A6 F( G  n+ x! N, ]% P

/ N" M) C8 a- U- w. i
    我是在 8 A8 q! c4 D; Q& v
   
. `! J# w% B) Q" }1 T1 E5 |3 E
    0053BBFF  |. /0F87 41020000     ja      0053BE46
% @0 C6 s& _& t0 k5 O

  q7 |1 ?' y4 @' e' T
    在这个地址进行拦截 在delphi里面 可能可以dll初始化时这样写# q" f8 L. R& b2 u2 y
) b. a, L/ t& Z0 M
    procedure InitDll();
! Z1 ?4 U/ R# ?, H; J
    var6 D! Z) M* k" `# z
      p: Dword;
) m9 s9 K6 b$ ~% i' j
    begin
. Q) ~% I) N8 V. m, b5 f5 b
      p := $0053BBFF + 1;8 Q  J( g' b: ~
      PDword(p)^ := Dword(@proc_0053BBFF);9 U% _- ]% ]3 }& r
    end;
" o1 a# k$ s2 L( @, H

. c$ v/ [% \# t. h% w2 A
    在自己的代码里面写一个色彩增加的函数判断比如
* G1 p0 B! C9 H0 n2 ^9 o# _
5 W; G, J" e( H9 g5 Z+ w: F1 p
    delphi代码:
! r9 P  Q. F9 k4 h9 o0 ?
4 w3 S1 O5 Q  |
    var9 e+ E! D# x8 {
      EndAddr1_0053BBFF : Dword = $004F470C;
4 E" _) n3 [: r% h
      EndAddr2_0053BBFF : Dword = $004F44CB;
$ [2 y, O3 y, h0 k5 L
      EndAddr3_0053BBFF : Dword = $004F4736;    //色彩彩赋值结束跳转' b1 E' G& ?: X
- }1 o! m& f/ k  p, i# o# i
   CallAddr1_0053BBFF : Dword = $004611D4;
1 s1 ?, E, q  ?* B
      CallAddr2_0053BBFF : Dword = $004611D4;+ N& I" A( _1 R5 l
, {3 H, G& ?3 ?& ^
    procedure proc_0053BBFF();
- ]0 E2 b# t! d( S/ Q
    asm" O0 F  n+ `; R+ Y( m
      cmp     eax, $10                        //与预先设定的 最大17比较; ?) f: d0 `) w+ N* f: g
      JLE      @OldCor                        //小于就跳转到默认16种色彩赋值
" ~; E  {0 _; L5 @+ B* f

8 z% X1 {. t2 p
      cmp     eax, $10                        //比较是否等于16 1 {' P$ N* f  `7 j& ^+ F# L
      jnz     @Seventh                        //不等于就跳转到第17种色彩判断部分
  f9 k* K& ^; D2 b
  E! h% ?4 }$ Y4 \' N5 m' M
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试. o  H" f4 `3 v7 W1 @
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
6 d0 m6 f* E- q5 U1 G2 v
      mov     ax, $A( e3 ~$ V- ]6 `% f1 S/ |& Z8 l
      call    CallAddr1_0053BBFF / O: g0 N2 X0 f5 x4 p0 k
      mov     edx, dword ptr [ebp-$14]2 t9 j9 Z7 C5 S" Y& G
      mov     word ptr [edx+1], ax
$ M2 k# @* J6 ~; V! U% Q& S8 X( X

# |* l3 o# \5 J& H7 \# g
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试
3 K: V3 |5 q3 L* G
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
3 \$ q1 o3 c& o2 j
      mov     ax, $101 l0 V+ \- c2 S" j) q
      call    CallAddr2_0053BBFF ! |  L  y4 w4 z3 O% c3 G
      mov     edx, dword ptr [ebp-$14]
) s, c2 I, k8 d& a' R1 M! M
      mov     word ptr [edx+3], ax
+ F) E0 K7 W1 P1 p! x9 c
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs" V/ M" I4 v) s0 d

( m$ a2 }, Q, m
    @Seventh:
. e' B% t7 g5 G1 K1 s# F* ^' O9 p
      cmp     eax, $11                        //比较是否等于17
8 z# x3 n5 S* [& R5 K+ h) D
      jnz     @out                            //不等于就跳转到默认部分
! x( X* i9 `5 J) h" F. C! ^
, c  n/ @. a$ I( U/ k" N, P
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试
* N7 ?6 F" J6 j- K
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF0 n( i6 X3 H3 J- Z; E7 x
      mov     ax, $A5 ?$ `7 J2 L9 {: T" b( S3 C! g
      call    CallAddr1_0053BBFF 8 T. j* t5 y2 [( j6 e$ S5 J* j8 C- u+ b
      mov     edx, dword ptr [ebp-$14]$ P# h3 v1 a9 `5 L2 h, l
      mov     word ptr [edx+1], ax
; h7 d' U4 ~3 O1 T+ Z
; C, |1 [: i* E* U. k; F7 z  O3 j  Y
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试
4 U. N( T! J9 K" U% d
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF+ c6 ?+ |9 s) X! ~
      mov     ax, $10  m( q* p. E9 Q' R: y, O4 k4 U! G  f
      call    CallAddr2_0053BBFF
, K' b* _# G* ^7 S- E" L5 I
      mov     edx, dword ptr [ebp-$14]8 \; t, ~6 a, ]* o+ O3 B9 v1 Q  w% u
      mov     word ptr [edx+3], ax
) J+ h6 S' M1 d1 D
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs! H4 v1 K% E$ I% @' ?
                                               //
  Y( k& B' y: ^2 a. P  R
    @out: ) o  E% N" [+ n
      jmp     EndAddr1_0053BBFF               //这个是跳转到默认的点: y$ ^1 ^1 ?/ P$ |" n

& w. {7 `( d0 [# v1 N" [  u2 K
    @OldCor:
) B  Q; x. r# m$ N# F' Q3 F4 y
      jmp     EndAddr2_0053BBFF               // 跳转到原来16种色彩赋值
: A& k+ w% D3 f7 y# c2 {- ^
    end
% r3 k9 U; Z" F* A. r* s
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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