游客您好
  • 点击联系客服

    在线时间: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 编辑
. H4 s0 t. S- |% g
" |* m9 A) h3 v0 d" o
上面部分已经初步了解色彩设定的方式, 这个时候为了增加我们自定义色彩显示, 就需要在
- S5 L0 Q/ P: [0 K% C, l: h+ Y

1 B  P5 w7 I1 G: I
    dll里面进行内存地址读写
' a$ b, H8 j- G8 L' n

& o5 s5 b+ F  j1 P
    我是在 1 h" f3 A6 X2 S0 Q( g
   
  V/ S; A; V% G) r' s1 N
    0053BBFF  |. /0F87 41020000     ja      0053BE467 d- s; y; [8 c/ C# ~( \

6 T* m/ Z" z) a
    在这个地址进行拦截 在delphi里面 可能可以dll初始化时这样写
9 V! ]; i( b  G
" d; y7 W& |' v$ O+ g! ]
    procedure InitDll();
" L* b, R6 t+ n! }! O
    var
# f9 q6 P3 X3 N0 w
      p: Dword;
2 B! y+ R8 o7 C$ a- t2 t# ~
    begin
% \, L* t% m3 I% r( `  |, V
      p := $0053BBFF + 1;; P, t7 C, a. G
      PDword(p)^ := Dword(@proc_0053BBFF);: \& C9 }9 {0 @, U, Z* A
    end;
) D- R' e  A. h, `! e
( W9 k4 V- ]$ d0 Y, O  o; n
    在自己的代码里面写一个色彩增加的函数判断比如
2 K4 {8 q4 E5 m$ Y% E/ s

4 u! H/ C  [" f& U. T4 N' F
    delphi代码:/ d3 F' F7 t2 E2 D4 m
5 B5 O7 u- y2 `  r* N
    var- y) h" _5 Y" a5 T
      EndAddr1_0053BBFF : Dword = $004F470C;
* L/ _, C+ n, Z* H
      EndAddr2_0053BBFF : Dword = $004F44CB;5 X0 w4 [9 n& w5 n4 ?9 ?2 [
      EndAddr3_0053BBFF : Dword = $004F4736;    //色彩彩赋值结束跳转
1 ^8 |) p. p% `9 E& w$ z: E! |
: C; O; y$ f4 p1 ^$ r( Y0 q: f
   CallAddr1_0053BBFF : Dword = $004611D4;7 O# I" q- B" p* W' D2 `) e4 h
      CallAddr2_0053BBFF : Dword = $004611D4;7 V( d4 Y# @  x  X) d9 o9 F7 r
) k! s; U  f! q, k4 U" s* ^
    procedure proc_0053BBFF();
( A9 ^5 j7 P" ]: z" D" j
    asm5 @" o: }% p" p8 e1 k  k# i9 t; q
      cmp     eax, $10                        //与预先设定的 最大17比较! {, @" |4 Y. l1 f/ \
      JLE      @OldCor                        //小于就跳转到默认16种色彩赋值
2 S( z" k, M1 D# U$ y+ R# x
2 u; F) `7 d: Q* K+ c7 W( V  g' {% a9 b
      cmp     eax, $10                        //比较是否等于16 1 p& l" F& F7 @! [4 Z. R8 H4 b
      jnz     @Seventh                        //不等于就跳转到第17种色彩判断部分
4 G" M$ `* M* B0 \, Z" e
5 ^. R( r, t1 }* L( |3 Q
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试
/ R, _; P% R+ X2 |3 Z$ w
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF0 x8 P$ A7 ^: [: t) H7 M
      mov     ax, $A% r* _6 t5 }) Y" q' W
      call    CallAddr1_0053BBFF 8 O0 ?- f; T5 W$ m9 Z
      mov     edx, dword ptr [ebp-$14]& X4 y2 x2 }$ x7 ~7 R' r/ C
      mov     word ptr [edx+1], ax
& W4 B! N3 i0 |" x, L

9 I+ P' o  }3 n3 b
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试
% U2 w3 T& |+ [$ U: R
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
; B& G. C9 E/ x$ P) y! i6 v$ M* I
      mov     ax, $10, [0 G# \, r! c' z
      call    CallAddr2_0053BBFF
8 L2 r; u, r) V  C% f) T) W
      mov     edx, dword ptr [ebp-$14]
+ G4 Q5 L/ ]* N! W
      mov     word ptr [edx+3], ax
% X7 g6 n3 r1 K: Q9 j6 F& t# w
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs( l) b: r3 ~  q6 j0 E- Z
) N* ]  V5 m: v
    @Seventh:
# `* `" u; n8 r
      cmp     eax, $11                        //比较是否等于17 4 P/ Z, u7 E5 x- {: p0 \7 r
      jnz     @out                            //不等于就跳转到默认部分
- h1 ]- h/ h. M9 [& [! Y
4 s! I* q7 O& C( r- |; b' B
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试! a' q- }* ^& Y, A$ g7 ?
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
/ [0 K! g) Z( k- ^
      mov     ax, $A
' d& W" ]5 T* q+ d$ H
      call    CallAddr1_0053BBFF 5 J" S& Q/ J' k5 |- Z) h2 U2 u
      mov     edx, dword ptr [ebp-$14]
; \/ p7 r+ z) `" U9 V% H- F
      mov     word ptr [edx+1], ax* K2 a8 I- ^1 S8 i

1 v8 h2 E" P. r, O" f/ r
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试1 N0 i; i7 }' s6 y6 l
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF  p( `, a5 m, I
      mov     ax, $108 k" n7 w3 D6 p3 \* L* t  G
      call    CallAddr2_0053BBFF 9 v- q6 d/ [  a" r4 A
      mov     edx, dword ptr [ebp-$14]
3 x% z7 V- Y  f, z: E2 ~
      mov     word ptr [edx+3], ax
1 y* H- Z7 i7 \: v  k/ g
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs
# O! H+ T  Z/ v4 X" n6 o3 N
                                               //
( B+ [( M" ^: _. E
    @out:
) H. ]; P* v' J+ {& Q& G4 D  ]! n
      jmp     EndAddr1_0053BBFF               //这个是跳转到默认的点1 r7 n# f3 B- V3 g, H+ r

2 [6 [+ h  W5 H0 H' b: {' _
    @OldCor:( A8 j6 m1 S, x3 C& `
      jmp     EndAddr2_0053BBFF               // 跳转到原来16种色彩赋值
" o9 D/ I) F$ h! Q" E* B) c
    end
" e+ P- F/ B+ I, l% p3 N+ F* U
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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