游客您好
  • 点击联系客服

    在线时间: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 编辑
# M" F3 Q! {; I$ w) I
6 s0 }5 p. e) _
上面部分已经初步了解色彩设定的方式, 这个时候为了增加我们自定义色彩显示, 就需要在. l) V' L  S  ~  _- q4 W- p- p
1 p" Z' q0 U& x, x: {" a( M
    dll里面进行内存地址读写
% A2 P4 _; ^* [/ e

( j2 J& ]0 Z/ e7 c- e: a
    我是在
$ v. Y0 u" }* A
    / ?- x3 j- W% u$ e- e
    0053BBFF  |. /0F87 41020000     ja      0053BE463 Y4 P: r5 l# J  o# k: {

  K" T- r: ^+ F+ ~7 {8 z5 e
    在这个地址进行拦截 在delphi里面 可能可以dll初始化时这样写
+ B" e6 Y9 P% G5 n* m
( `2 c9 d- c" ?/ M2 U$ x8 n
    procedure InitDll();
/ b+ M9 C/ P9 s( ^3 ^
    var% E) ~$ s! Y6 w& h, ?6 G( p1 `
      p: Dword;3 a9 U" M& j# N$ n4 q, y
    begin
& C- r& c* l. |- u8 R
      p := $0053BBFF + 1;
$ |& \3 ^$ }7 H1 w/ X1 e
      PDword(p)^ := Dword(@proc_0053BBFF);
) o1 J, k) n5 f3 R5 p
    end;
6 `! P! `: q% Q6 C4 `, X- G6 ~

7 I1 [2 r  K. x  ~" d" }+ w
    在自己的代码里面写一个色彩增加的函数判断比如9 w5 y1 k! a( Q4 u6 E) p0 r
6 T$ B( T" Z4 F+ q. z4 J* n
    delphi代码:
7 H6 N8 B4 t' ?. f
  S2 ^; ^4 a8 s  }: @% X" ?' m" k" f
    var
; [6 v- X' n9 M' H3 M. P0 {
      EndAddr1_0053BBFF : Dword = $004F470C;
( q; f( Y+ `6 I5 Q7 k. s2 P2 F. ~
      EndAddr2_0053BBFF : Dword = $004F44CB;! b2 ]" ~) D, Z8 x( E
      EndAddr3_0053BBFF : Dword = $004F4736;    //色彩彩赋值结束跳转& Y9 O' p" n* {  Z$ v/ F7 {
7 J7 }2 G* u' \: O; S
   CallAddr1_0053BBFF : Dword = $004611D4;
6 C: l- h2 _0 Z/ P
      CallAddr2_0053BBFF : Dword = $004611D4;. ^0 A# z3 k! n6 J1 p, m

9 u, J) m8 L( S
    procedure proc_0053BBFF();
6 b! o1 T- t- {5 D
    asm
: k( H  g+ a) Z# x- ]
      cmp     eax, $10                        //与预先设定的 最大17比较
: ~& Y+ R) P+ M$ ^: ^1 j
      JLE      @OldCor                        //小于就跳转到默认16种色彩赋值
) x6 z4 n2 {$ q' `$ f0 e

$ s' j2 f  Q6 k4 ^3 ]; A
      cmp     eax, $10                        //比较是否等于16 2 p8 M* X: w9 X4 M/ a
      jnz     @Seventh                        //不等于就跳转到第17种色彩判断部分' n  F- c5 ~9 w

4 }  B9 y! a4 ^) r! }! \  Q
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试9 y; f2 g  {  G# X0 e# _$ N5 N4 Z( }
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
: F9 p+ [7 X7 q+ [' o
      mov     ax, $A
; S0 y6 E4 i' ^8 ?% n2 n* D
      call    CallAddr1_0053BBFF
* h! X# W5 j8 F( \& |+ q: n! B
      mov     edx, dword ptr [ebp-$14]; n9 x( Z, [5 _7 v
      mov     word ptr [edx+1], ax7 o1 \$ U! O4 h/ N# n' l& b

" j$ e, O; M3 o: b6 Y
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试
1 G- n) u. F' V' O- C4 ?  s2 P3 H
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF! V/ N6 n0 m. v6 e% H- y0 ]& n# J
      mov     ax, $10
7 d$ h0 O- I  V' v& B
      call    CallAddr2_0053BBFF 0 E  `5 T& ]  S
      mov     edx, dword ptr [ebp-$14]
! b8 e$ b, o  E) u8 z
      mov     word ptr [edx+3], ax2 c+ O$ s! w% Z; |, Q
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs
& B; t  \5 b$ P- p

: J" n5 g7 q1 q% \  o* y! h
    @Seventh:
7 _. w- x& ~' h. E
      cmp     eax, $11                        //比较是否等于17 : \9 M( |+ ~, i0 H6 W
      jnz     @out                            //不等于就跳转到默认部分
1 N! f6 Q$ H. a, d+ c
% N) O8 Z' m" U
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试
- B% m/ \4 M; b1 S8 F( e
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
4 |! N' N; o$ s+ t
      mov     ax, $A
) z4 V* f9 f$ z0 W$ _& A( c; E
      call    CallAddr1_0053BBFF : \5 D7 _+ F) B4 R9 X/ v
      mov     edx, dword ptr [ebp-$14]
7 Z! f, Z4 o: m6 ~7 y
      mov     word ptr [edx+1], ax2 ~; d1 i# r0 g1 I: N, U  W  {

- q. L  `0 a( q  p- ^
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试+ H. I6 |* [- @* L* m
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
9 N/ S5 v7 O) C* q1 o9 x) E' G
      mov     ax, $10) T! g; j, i, z4 j
      call    CallAddr2_0053BBFF
8 T0 n2 L% x* M" t$ e- L- Q
      mov     edx, dword ptr [ebp-$14]
1 n) q* m& [/ l/ I
      mov     word ptr [edx+3], ax9 m& A9 z" ?) k0 {' K
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs' ?+ i: ?- q2 u8 `
                                               //
2 J* l- ], {+ S) B  H5 R
    @out: 5 ]0 y4 k/ ^; m3 f& w/ F; s8 M5 Z; U
      jmp     EndAddr1_0053BBFF               //这个是跳转到默认的点) r9 {, u6 o, T7 l( D

) I( H+ R0 X) Y; ^, ~' z9 v
    @OldCor:$ T' f% s# r8 C, R- s
      jmp     EndAddr2_0053BBFF               // 跳转到原来16种色彩赋值* M: _+ y0 o( q  f4 a7 g
    end

, R% t4 `8 I5 n& G1 o
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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