游客您好
  • 点击联系客服

    在线时间: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 编辑 / M7 y# T/ y/ P! D

0 i& i5 v7 T+ p- p
上面部分已经初步了解色彩设定的方式, 这个时候为了增加我们自定义色彩显示, 就需要在. \$ A6 @- y- `; P) j; k

6 S7 v& n) r5 K  z2 F0 L
    dll里面进行内存地址读写" O: U( R$ T* }6 w$ v3 a
& F- `4 n- M; Q1 r6 O6 ]# M
    我是在 ) Z; v! g3 u! v* b- {" y4 M5 r9 i9 I' B
    ( M. @& `7 O- r% M5 }. C, I
    0053BBFF  |. /0F87 41020000     ja      0053BE46* y0 \' M# a3 I9 D$ Q" [4 ~

2 r4 h: X3 M! U' Q8 b
    在这个地址进行拦截 在delphi里面 可能可以dll初始化时这样写
) q5 a' S, ]7 I- k! j: o
  h# _  R7 c- o
    procedure InitDll();; N0 ~6 b. M6 `8 q  c
    var$ o& D- U' A  a# o
      p: Dword;
3 t$ [& @1 n' e: O
    begin
+ R- o" ~% ^  ~: I7 l+ N" [3 y! E' s
      p := $0053BBFF + 1;) U% m) W' o4 y9 H" O  u
      PDword(p)^ := Dword(@proc_0053BBFF);" p( p0 p7 T" @- e6 N
    end;. T- |* B/ q2 E
2 u+ E% U6 Q) F7 P5 k1 \
    在自己的代码里面写一个色彩增加的函数判断比如% Y0 R/ A# Z& H

1 s5 V! [& I5 g$ Z/ {
    delphi代码:
6 g% t$ J# c: C  _

4 d8 q* E; x$ @4 _
    var& @+ }  R' [: V9 R8 `
      EndAddr1_0053BBFF : Dword = $004F470C;) ]) `9 |8 m, b5 ~! [! C# [
      EndAddr2_0053BBFF : Dword = $004F44CB;
/ ~' ~# o# b8 L6 n5 X8 B% P; e2 y
      EndAddr3_0053BBFF : Dword = $004F4736;    //色彩彩赋值结束跳转6 U, X1 \$ l' ^( x6 ~' M6 X

( [6 B7 c6 B6 k, S( |
   CallAddr1_0053BBFF : Dword = $004611D4;
, D' I6 O: r, F% k& U6 H
      CallAddr2_0053BBFF : Dword = $004611D4;
  Y" s0 h5 E/ E3 G
, s- X1 m/ s  B6 [7 c4 Q5 Q
    procedure proc_0053BBFF();
# y* v7 I/ s0 {
    asm# R: ^$ `9 g, L) z
      cmp     eax, $10                        //与预先设定的 最大17比较
; n6 M2 I: W: w+ ]; v9 O; R
      JLE      @OldCor                        //小于就跳转到默认16种色彩赋值0 V6 b  I9 E3 x/ [- g6 @
) f4 Z! o  w: i0 c: R
      cmp     eax, $10                        //比较是否等于16 ' t* K# u( ~; _# \
      jnz     @Seventh                        //不等于就跳转到第17种色彩判断部分
9 s' j, P' k/ c( Y2 ]7 @5 j

- C6 Q; p- h+ q) `7 X
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试
1 x8 ^" ~6 i" c; d6 S
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
: |7 A1 ?2 g8 j8 x# t
      mov     ax, $A* Y0 U$ h  H0 p; r, P% R4 f0 z. i
      call    CallAddr1_0053BBFF
5 |0 D1 x# P! Z  J
      mov     edx, dword ptr [ebp-$14]/ g7 l) y' b, i( V* G
      mov     word ptr [edx+1], ax
& Y2 Y% M. a1 [' f3 J. P2 d; u

) r: m0 }& ?+ v$ X1 ~1 t- v, m
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试
1 x- ?# Z( _2 P8 E  o7 ?
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
/ p% Y$ o6 J; d" F
      mov     ax, $10% U) x% {! n( |, V. V
      call    CallAddr2_0053BBFF 9 D, X5 `* b' o3 h$ K5 [; f
      mov     edx, dword ptr [ebp-$14]2 G. m. p% J8 ~% m
      mov     word ptr [edx+3], ax' L" m9 s5 ~+ _8 H' J; ?! @3 z
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs
  A. i9 I  S' W) R
7 m! C# a% ~$ }9 z( o
    @Seventh:/ p% _; a9 o+ K; t- ~# }# T
      cmp     eax, $11                        //比较是否等于17 6 [3 g9 F# I0 e2 V. l6 z& A+ Z
      jnz     @out                            //不等于就跳转到默认部分
6 `5 I- K0 b9 x7 ~: i, @4 L2 {
, o* D( x, Z/ t% c4 P
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试; o- L& w1 T8 f9 |7 G6 G" @
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
' z' B  ~, p. |! R9 E( w  W
      mov     ax, $A/ O5 Y" q4 I( W0 D  K# V
      call    CallAddr1_0053BBFF
0 E% Q0 y& f( k4 A8 w6 k4 k
      mov     edx, dword ptr [ebp-$14]
; z) K9 B! H/ ?6 v- _# ^9 M7 f0 r
      mov     word ptr [edx+1], ax# H# ?6 T* G; E! h; a- r0 g% ^

$ d. ~% K8 a5 ^4 y! {: e
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试
5 A5 A# s( y  q0 u; y. m
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF1 g" g+ f/ n4 t4 ?6 d6 N* ?4 l
      mov     ax, $106 t/ [5 ?* P7 m/ L* C. _
      call    CallAddr2_0053BBFF
; Z0 t$ J/ L+ S+ n3 I. \, Y
      mov     edx, dword ptr [ebp-$14]
! q' n, v* J! o7 K, F  L4 Y+ @) c. U
      mov     word ptr [edx+3], ax
) Y$ Y% [+ j% f) m
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs
0 b8 b/ _! s4 k
                                               //
6 M$ v/ s- K; b3 g) {7 S/ E
    @out: 3 w) a) u3 I' w) a
      jmp     EndAddr1_0053BBFF               //这个是跳转到默认的点
8 q- P/ E1 L1 I' X( \

. O# M5 @! I- u' j  O  h% l! Y
    @OldCor:
4 ^5 K1 [7 O9 I) t* W
      jmp     EndAddr2_0053BBFF               // 跳转到原来16种色彩赋值% f" i& F. f1 f$ l
    end
, H/ r0 v& }# _+ _2 y$ z
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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