游客您好
  • 点击联系客服

    在线时间: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 编辑 : O* M: c7 N1 O2 l" d  z3 B

9 @* l7 F7 ?3 `' [& o# V
上面部分已经初步了解色彩设定的方式, 这个时候为了增加我们自定义色彩显示, 就需要在- E: A! M  k* y! c
* N' v2 n0 k. ^$ w* C
    dll里面进行内存地址读写8 r  R; Q$ G" o# A* q2 c% h( S$ [
) q- F7 G% R5 A- h9 l* S  }) ]
    我是在 ; j: P# f8 k  A! X4 {  b
   
& C; `" R% s% q
    0053BBFF  |. /0F87 41020000     ja      0053BE46$ v1 v. d/ K8 c$ I' q3 z

" ^1 d% ~- s  K8 R" q
    在这个地址进行拦截 在delphi里面 可能可以dll初始化时这样写
) l* k/ H# w0 {
: X+ o2 E- [! F% f8 {/ {8 r5 b
    procedure InitDll();8 W( A; h. `* E( ~" ]& d- j# N. a
    var
0 H5 }" \! s6 `1 F
      p: Dword;$ }0 n' U8 l- g0 r  W& O
    begin
; x/ [9 ?5 D- [3 ]1 @! E9 [
      p := $0053BBFF + 1;- `2 D& R" @. l" J/ F0 l& @
      PDword(p)^ := Dword(@proc_0053BBFF);
& \, E( c$ W$ z# U1 n- l& b
    end;
2 r$ x6 Q  q( _# G+ c2 q! @$ `

2 Z# V: Z# u- @3 [. C; L+ D
    在自己的代码里面写一个色彩增加的函数判断比如; Q0 l$ [& I: q, c4 f, M

0 Q) S5 V& D# U  w. L# ?1 W
    delphi代码:
" d) b. F* V2 t: z; p
$ ~7 {. Q8 |3 S; @5 l" X; H( ]
    var
5 Q% F" X" p$ A. q
      EndAddr1_0053BBFF : Dword = $004F470C;
% b* P+ ^: A! q
      EndAddr2_0053BBFF : Dword = $004F44CB;- E( y9 O2 D3 _7 {
      EndAddr3_0053BBFF : Dword = $004F4736;    //色彩彩赋值结束跳转
- F' s" [( C  b5 P( r
+ D; h' N& H  j$ q' p
   CallAddr1_0053BBFF : Dword = $004611D4;
* _( h2 @# h4 Y
      CallAddr2_0053BBFF : Dword = $004611D4;
6 d; K' k  k) w4 r# ]* H/ u
2 i+ p3 k3 X- Y3 v, r6 u
    procedure proc_0053BBFF();; c. A6 Y8 A. G
    asm
9 @$ |5 L- \3 ~8 t. y# z
      cmp     eax, $10                        //与预先设定的 最大17比较
$ ?* Y8 |! [$ o: |7 }
      JLE      @OldCor                        //小于就跳转到默认16种色彩赋值
2 g" B/ h; U- f2 }/ U% V
$ c( d9 J  n6 X1 D) i
      cmp     eax, $10                        //比较是否等于16
+ m) v3 }, P& U( V% c% E
      jnz     @Seventh                        //不等于就跳转到第17种色彩判断部分
1 C. \* g) M; {

. X. n3 p! N9 p$ C/ U  Y
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试
, T/ s3 P6 @6 ~+ s% [6 U
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
+ x4 W5 E  I. j2 j
      mov     ax, $A
- C! c, `6 b9 v. M5 }
      call    CallAddr1_0053BBFF
. `! M* c) g8 L+ u! ~
      mov     edx, dword ptr [ebp-$14]
9 k- o5 G3 z4 ]. b. b& E+ w
      mov     word ptr [edx+1], ax( ?+ B8 r2 _! J7 f
4 v) l6 q' V% j; a: f0 D/ G7 ?
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试* R/ G  M6 w% q
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
7 ^6 j3 G9 N* r( C* Q1 C5 H' z
      mov     ax, $10
2 f0 X0 S  B/ d, X4 A
      call    CallAddr2_0053BBFF
% G4 U; O3 M; m" E3 r& |
      mov     edx, dword ptr [ebp-$14]
) P  r; Q. T* b$ d. a4 |+ N1 z
      mov     word ptr [edx+3], ax
# v" a/ t+ r. Y' e! Z# ]$ D- K
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs: b/ R; h$ a5 C5 U9 B: ^

/ A- O' ?) d% C( q( X
    @Seventh:
0 r1 F; L+ `8 i* H- E2 z
      cmp     eax, $11                        //比较是否等于17 3 t' y! s; O& A9 g/ z$ s3 J
      jnz     @out                            //不等于就跳转到默认部分3 w+ l! G/ K  w- B3 m
( `4 [. i5 W! o" x' e
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试' }. }, A2 A9 i, ^
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF& s! a0 Q# A5 K9 Z
      mov     ax, $A
) p$ N% x: P" x) T5 \. K( _
      call    CallAddr1_0053BBFF
" \, ^/ i* U( j& |$ a, E3 J
      mov     edx, dword ptr [ebp-$14]
: T  `4 B  I. {
      mov     word ptr [edx+1], ax( b2 j2 I! C. m" V: [
) E! F/ D2 m( A3 x. |
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试9 |9 R$ h7 v: o4 }$ I
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
" ^$ `5 o$ m7 P( p: M3 P
      mov     ax, $10: G# Q4 c7 w0 ^+ \2 K/ _7 y
      call    CallAddr2_0053BBFF
: a# p: [5 N# _
      mov     edx, dword ptr [ebp-$14]
9 t+ [( N0 k# e1 \! F9 i
      mov     word ptr [edx+3], ax$ b  s6 |! _& u8 w6 Y8 T3 }& M
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs/ ^9 U. F& _% g& i1 }2 x2 q3 L
                                               //
* y! i3 P* C* c" m% G+ q. U/ R
    @out:
1 F+ J, [0 _2 R$ H( M
      jmp     EndAddr1_0053BBFF               //这个是跳转到默认的点# S" U- w4 y* n4 N* M4 X5 _) i) K

6 p1 C0 ^+ u! }: @
    @OldCor:
+ m* {! g; Z  A, ~3 \( x
      jmp     EndAddr2_0053BBFF               // 跳转到原来16种色彩赋值, z% g, i9 F' k
    end

1 y; @# e2 S9 [4 B
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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