游客您好
  • 点击联系客服

    在线时间: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 编辑
6 ^; s3 b8 L( `8 a+ c6 n+ `8 c
5 ^% [9 Z: Q: Y! g+ |
上面部分已经初步了解色彩设定的方式, 这个时候为了增加我们自定义色彩显示, 就需要在
: j, r$ A9 U7 Y  H- t
6 u# f0 Y& o: `: }; {! H+ l
    dll里面进行内存地址读写6 E" d1 Z; Z" ?$ K$ `
- `5 ~8 k3 N2 w! a6 M- X( y8 w; l
    我是在 % C( {0 W' f! E4 Z) N3 ]
    - H: k! Z! U0 N6 y; \9 A( Q
    0053BBFF  |. /0F87 41020000     ja      0053BE46. @* @. B7 h5 h) `; O
' ]' P) _# \0 n+ p" h- |
    在这个地址进行拦截 在delphi里面 可能可以dll初始化时这样写  }% G& }' `$ ?* v- [3 H

/ ]  I# O) t$ M6 D2 D, L1 T  L
    procedure InitDll();
8 m' K8 }; S% b+ K. Y9 X6 d
    var
4 Q* U& c; h. c
      p: Dword;: l5 f  g5 j; c0 n
    begin
+ T" _5 D; b" e6 Y0 n7 ]" W5 _0 D. ]; K
      p := $0053BBFF + 1;: Y4 b" \4 s  E+ a) e) @
      PDword(p)^ := Dword(@proc_0053BBFF);  ]7 q/ O) h4 L3 v
    end;
! V9 w% r$ C" b1 W
" Y) `' p  e5 X  Z2 \- N, z
    在自己的代码里面写一个色彩增加的函数判断比如0 a+ ?5 g+ y3 V0 r$ B1 W# _1 V! x  `
7 |9 F, I0 B: }
    delphi代码:
; n; h' ]( S: ^- m* {, L

: n4 Y* G! l# k' S
    var
# p" |* D* D* G7 O4 t" x
      EndAddr1_0053BBFF : Dword = $004F470C;8 T: j" z# w: A2 I3 @# _
      EndAddr2_0053BBFF : Dword = $004F44CB;
" i. ?( a7 Q! B3 l9 ^
      EndAddr3_0053BBFF : Dword = $004F4736;    //色彩彩赋值结束跳转
. V2 L, f0 R6 Y0 X8 Q- J

! f% t( G& ~# Z6 N
   CallAddr1_0053BBFF : Dword = $004611D4;
% F8 r+ F# O1 A
      CallAddr2_0053BBFF : Dword = $004611D4;
. ?# f! r9 r& o" A

7 i% @$ }% g) }9 n2 n1 H7 F
    procedure proc_0053BBFF();/ K4 f  g& q, j: g. _
    asm
% J9 A1 |/ g1 y) _
      cmp     eax, $10                        //与预先设定的 最大17比较
# T$ J4 s' n% O% ^2 R+ Q! u7 W
      JLE      @OldCor                        //小于就跳转到默认16种色彩赋值( u; F  k! ~/ T3 d' D
! m  r& J+ F! t. h; c% S
      cmp     eax, $10                        //比较是否等于16 7 B, K; C  U7 q
      jnz     @Seventh                        //不等于就跳转到第17种色彩判断部分
6 D; D, a1 Z: j/ e7 W6 L, }
1 x4 A7 H6 C8 r: i; A7 u
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试) x  d+ h1 J- h& Z4 H/ K9 ^
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
( z+ Y  [/ _/ _5 w7 P! g; L
      mov     ax, $A
* s% y. _# r2 O: h8 \
      call    CallAddr1_0053BBFF
* }& m$ T  b2 L& s
      mov     edx, dword ptr [ebp-$14]) X; ?, G" s; G
      mov     word ptr [edx+1], ax
3 c* Z! }* F1 }* T' q+ N/ Y
" F* i8 g3 G# |' l  j8 E6 s
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试
: z' {1 t5 j0 u, t* M" N
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF/ l, C$ M7 r! @" d3 G
      mov     ax, $10
0 ^& W% J) D# ~/ m, C
      call    CallAddr2_0053BBFF
  D$ x+ G2 X& }. ]" j0 |4 Y1 E' c
      mov     edx, dword ptr [ebp-$14]
/ c; @9 h0 j$ @7 Z
      mov     word ptr [edx+3], ax; w- J# |4 q. X
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs
0 B( o8 x9 a8 N* O5 W, i

; D: d6 }' M( U* D1 W* ]$ B
    @Seventh:
; v: j% T- `: O- r
      cmp     eax, $11                        //比较是否等于17
$ J* R9 ]( I0 @6 g
      jnz     @out                            //不等于就跳转到默认部分' N/ {0 }  @) @* T

; y# N: l( t' y) F) k/ b* d: l6 p
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试
5 @8 N+ L" R% z7 ?5 u8 i
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
3 }/ C9 a% C1 e/ e
      mov     ax, $A  \+ r( J( O; B& K
      call    CallAddr1_0053BBFF
- Y( O; O% U3 l( R
      mov     edx, dword ptr [ebp-$14]. W  `3 b' I0 R/ [' R% T9 v* V, ~5 L
      mov     word ptr [edx+1], ax
5 Q! e( ^1 `0 `& K* L

/ q% t" ]0 Z9 L  C
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试
& t5 t( B/ D3 B
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
3 J  }" d5 _, Y- x, J
      mov     ax, $10
& b6 w+ `, q/ x* o" V
      call    CallAddr2_0053BBFF
7 `+ X  g5 L3 ~1 w) I
      mov     edx, dword ptr [ebp-$14]2 x2 {7 ~' Z) m; l0 |
      mov     word ptr [edx+3], ax
. D9 @% A2 ]: B7 I/ }+ Q7 P) M
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs0 y' g% a9 g1 w9 x' |" ?
                                               //! ^0 o; E" c) p# I$ L$ g  T
    @out:
, f/ m- p  |7 s# ^0 T
      jmp     EndAddr1_0053BBFF               //这个是跳转到默认的点
% V) A7 I1 g/ I$ c1 s$ Y

. U% y% S2 R) _! R( b
    @OldCor:/ }2 X6 _8 ?+ y) z# Q
      jmp     EndAddr2_0053BBFF               // 跳转到原来16种色彩赋值
5 {7 ~- B$ O- r( M% ?0 X0 R
    end
9 x3 f3 t) G$ p9 L5 ^
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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