游客您好
  • 点击联系客服

    在线时间: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 编辑
9 I0 y1 X6 f# M' U* d" M; f) c0 y
上面部分已经初步了解色彩设定的方式, 这个时候为了增加我们自定义色彩显示, 就需要在
6 D! F4 M7 c( H$ C

8 K  _: b: c+ Z0 f- U3 z
    dll里面进行内存地址读写
5 Q& Y( J6 T& w0 L

% A: L' f1 a) P5 c& i* X0 o  U7 S
    我是在 ' D% D6 Q4 M. h9 \3 f2 T( l) G7 D+ V
    8 w8 H8 y- J% V4 j+ S% X
    0053BBFF  |. /0F87 41020000     ja      0053BE461 g- M# T3 l3 H: J+ N3 S2 L
: Y# w- e" C. {! |
    在这个地址进行拦截 在delphi里面 可能可以dll初始化时这样写! h: Q! G6 ^* F$ D- m6 e- Y

" i, Y3 A, j. k
    procedure InitDll();
1 v! E0 m: Q/ ]/ w$ `4 B
    var
. ~  p  d/ D7 G5 C/ Y
      p: Dword;
, U* c1 W3 E# x$ V
    begin+ f6 m2 {! _2 z/ b3 f" W- N$ @+ ^
      p := $0053BBFF + 1;& U0 U5 g$ E0 j8 E. ~5 b$ T
      PDword(p)^ := Dword(@proc_0053BBFF);
+ N9 M/ X1 V) I# X+ j
    end;
9 _6 z( J7 i8 g" M, u1 F' T
+ [# z% m& u+ g0 \: ?
    在自己的代码里面写一个色彩增加的函数判断比如
3 y+ D' z( l* I$ c
, K3 a) S; \4 s% U3 ~
    delphi代码:
1 D9 `% K3 Z) x+ w' n# E7 o

0 j% n0 l/ t3 e. w( I3 D, K1 ^
    var
5 o8 D/ S& e8 P% Q$ Z
      EndAddr1_0053BBFF : Dword = $004F470C;8 M5 o6 Z$ Y; w( ?' k- L
      EndAddr2_0053BBFF : Dword = $004F44CB;
. Q: @# D7 _! Y+ H" L
      EndAddr3_0053BBFF : Dword = $004F4736;    //色彩彩赋值结束跳转9 \: H8 Z0 M# \# j1 ~; _8 F

; k/ w" s+ p( _/ a' m' X
   CallAddr1_0053BBFF : Dword = $004611D4;
& d- q$ S9 v% z' z  |
      CallAddr2_0053BBFF : Dword = $004611D4;
) E8 [& g: n% X6 ]3 Z5 s
# N  F; L$ T0 g6 q
    procedure proc_0053BBFF();9 h: ?0 O4 @& i' C
    asm  ?2 |# [# b: |
      cmp     eax, $10                        //与预先设定的 最大17比较2 w/ c/ h& k5 [! ^
      JLE      @OldCor                        //小于就跳转到默认16种色彩赋值
. S1 I( r4 }1 G1 Q& \/ \. m: t

) N' c6 T  r0 M; S( b
      cmp     eax, $10                        //比较是否等于16
3 T3 N. h/ f' X; E
      jnz     @Seventh                        //不等于就跳转到第17种色彩判断部分3 f; n7 ]  Z  G' Q1 d$ t
' {0 N2 V' O* z7 x; W( J$ x7 {
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试( |# j; H0 i& p+ H2 V
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF" M4 }- j% a& W/ s& t6 d
      mov     ax, $A! \1 K5 S4 ?( W4 F: I7 r! T: b
      call    CallAddr1_0053BBFF
4 M) Z( [; F0 R! i) x
      mov     edx, dword ptr [ebp-$14]* w% @4 K( R2 U- B& X/ }
      mov     word ptr [edx+1], ax: Z5 D% @7 H. K& h
/ Y7 x' j: s& [- S& x
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试8 B  w* E$ h4 m* x8 D6 q7 r
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF; f! f1 [7 v7 n) i+ f0 g/ F% o: ]
      mov     ax, $10
; E! q. R$ ?$ R: t* D2 L2 u
      call    CallAddr2_0053BBFF
* G, G2 A& T) v9 r; U- e
      mov     edx, dword ptr [ebp-$14]  D. D1 F  e7 ?: K, s# N0 d) N" G; z
      mov     word ptr [edx+3], ax
# H8 R+ U5 c6 \8 g2 F- x8 A( A4 L
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs3 U1 E+ a7 f# \) y
2 [4 I# ~9 A! \% S  b
    @Seventh:3 u) n# O$ e" n8 C  K5 r7 L7 u3 }
      cmp     eax, $11                        //比较是否等于17
! K. B0 L( F2 X8 l4 \4 i
      jnz     @out                            //不等于就跳转到默认部分8 l4 ~  t) B# T2 F" ]

( o8 r/ U6 h' a' f, G. ~% \& S
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试$ \" @7 r' i  l3 W+ w9 Y
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
0 ?9 t: M7 d/ J; f- v
      mov     ax, $A( |& K! [* G5 U3 @1 l
      call    CallAddr1_0053BBFF
, g5 A, }9 W& u0 J+ a0 n
      mov     edx, dword ptr [ebp-$14], ~, f" ?' _$ K8 K3 f
      mov     word ptr [edx+1], ax( v/ s7 I' ~3 p
# d5 @3 ^. S3 Z. J1 c. P- |* x% }' s
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试
  K) g+ H" K, Z7 p" k. W9 g) Y
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
% v1 F' A+ F# _3 P# S& N
      mov     ax, $10: r5 p: E4 Y, M' \
      call    CallAddr2_0053BBFF
1 ]1 V" K! @( X( |7 R% M
      mov     edx, dword ptr [ebp-$14]3 [4 V* [8 H! H2 B# |% ]- t5 a
      mov     word ptr [edx+3], ax
2 |* h7 @: R2 r  H% f
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs' ?& Y* S* o, n* E. i
                                               //
6 ]! B. p- D# J+ x; W9 q
    @out: ' ~" l) m4 `4 r1 F* x  m! ^
      jmp     EndAddr1_0053BBFF               //这个是跳转到默认的点
3 S8 N; B  K1 z0 E

0 r- w# Z( Q: ]* D3 u9 z) A
    @OldCor:: |8 Q" [. o2 f. E& c3 P* F
      jmp     EndAddr2_0053BBFF               // 跳转到原来16种色彩赋值! @2 z$ d! S* `/ \3 M' l
    end
: n% N; I2 I6 k1 \+ c' r5 ?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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