游客您好
  • 点击联系客服

    在线时间: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 编辑 : x* U$ E2 u' E2 W1 ?) w% M9 s

0 N# b* M  {* y! t, C
上面部分已经初步了解色彩设定的方式, 这个时候为了增加我们自定义色彩显示, 就需要在
# D1 d  ?* B' Q! q  `& n) \8 h
$ q9 R" m* y2 H1 g. z
    dll里面进行内存地址读写$ U; g* o  {% k7 F8 u2 P
5 ~" Q) ?4 o  x& p
    我是在 5 l/ O7 A& I! |& ?& D, w% E
   
5 S3 T3 ^4 f7 K# G$ I
    0053BBFF  |. /0F87 41020000     ja      0053BE46
' J( t/ l* @, S0 ^/ X( Z
  G' ]) A  @# {! \
    在这个地址进行拦截 在delphi里面 可能可以dll初始化时这样写- y; ~* f4 q8 p1 E( T( |+ }0 `
5 q$ ^8 ~/ ]: T. Q% T( l
    procedure InitDll();
& \2 T2 k) H$ \" Y3 e0 N2 R) |
    var4 V' `% I, D2 j1 S/ G4 P: C9 O1 m
      p: Dword;
/ X6 \. a$ N; `8 k6 c$ E  q# O
    begin
/ |# w. s+ w' [  X+ H" z- n3 n( m0 o
      p := $0053BBFF + 1;
( O% g" t, X9 l: j; `: j+ W" y" e
      PDword(p)^ := Dword(@proc_0053BBFF);
$ q7 T2 k1 J9 k( U& L6 K
    end;' `# g) M  W9 C) W0 C% R5 \$ h

1 V" @4 a# @, F8 N0 u# R
    在自己的代码里面写一个色彩增加的函数判断比如
* d6 S4 V1 {+ F4 t

6 b# M% I8 o8 O3 z/ c
    delphi代码:3 K6 H3 v# O4 J/ A
. V2 u. a4 j3 h! u8 R/ n; F
    var+ g  y! C5 S$ m6 Z
      EndAddr1_0053BBFF : Dword = $004F470C;# f/ }9 q7 ^3 z4 C
      EndAddr2_0053BBFF : Dword = $004F44CB;
2 d. o3 r1 ~! l  j: E# G! k
      EndAddr3_0053BBFF : Dword = $004F4736;    //色彩彩赋值结束跳转: e9 ~# I% ]; l5 H) S2 Y) N/ a7 }
* |- u2 Y* a3 ^/ ^! ]# K) |
   CallAddr1_0053BBFF : Dword = $004611D4;6 ~+ Z' e' b* [
      CallAddr2_0053BBFF : Dword = $004611D4;' [  H7 P* r) p1 q" c, b3 n( K

6 q" D2 [! p  [' f
    procedure proc_0053BBFF();
1 y; l- F9 p" \' Z+ w" I, q
    asm
0 I% |4 A+ b3 h7 R/ q$ S
      cmp     eax, $10                        //与预先设定的 最大17比较. y/ h. q+ l: a9 Z/ w
      JLE      @OldCor                        //小于就跳转到默认16种色彩赋值$ S, a, ]# m2 v4 h
# }# _" ?$ ~2 |$ @4 r
      cmp     eax, $10                        //比较是否等于16
2 @: D& e3 \" R3 u% F3 \
      jnz     @Seventh                        //不等于就跳转到第17种色彩判断部分
- Z  l; t' F( I: r+ I/ W2 I) A; m
7 E% a$ |3 H3 j( I5 H/ ?/ Z) B
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试
. N& ~7 {/ ~/ u) _
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
9 M/ U2 d) O; m/ z
      mov     ax, $A# m# U- p3 ?5 j% \) V
      call    CallAddr1_0053BBFF * {! |( v1 ^, s( @. \+ ?! g
      mov     edx, dword ptr [ebp-$14]" _: b( p" s- D% x, g) Y0 d' b4 |
      mov     word ptr [edx+1], ax/ q0 E" S1 d* _  X

. Y) c, M: Y" o+ Y& Y' P4 |, k
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试
4 V+ ?5 p, ^) x
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
& g7 u0 `; r& U# u
      mov     ax, $102 {$ d9 s' B" J" v4 K5 J7 H& {6 e
      call    CallAddr2_0053BBFF , r7 _5 _9 n4 _% W$ i& t2 x  r
      mov     edx, dword ptr [ebp-$14]' j9 u. a: G) F+ p1 I
      mov     word ptr [edx+3], ax; Y$ P) O; N. u" \+ V, v! b
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs
/ {6 {* q# c# K5 {

5 R" E$ j* {! U# m+ F
    @Seventh:1 D* R% U' J* A3 ?# E2 Y& k
      cmp     eax, $11                        //比较是否等于17
0 D) Y2 l5 N0 `
      jnz     @out                            //不等于就跳转到默认部分' U) T8 j3 l5 H5 f" f( [! F

4 V. U* v! y8 B% e# J( ~( W% H+ {
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试! W6 r2 B! r0 W" H9 r* ?4 c. l
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF8 p( W+ I" ~* [3 a/ I" _
      mov     ax, $A& s) n$ A% J! E3 J
      call    CallAddr1_0053BBFF 2 k  v7 [  j* s& Z, M4 |/ v
      mov     edx, dword ptr [ebp-$14]
- f% W3 w4 ^4 L$ H1 b
      mov     word ptr [edx+1], ax
) C3 W( L( C$ |! X- e: w2 f
* o) A8 O4 y% g% O+ e4 T, V" @; T
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试7 g  c2 d% J# Y0 U! ^) {4 H
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
/ A0 O* t& V1 M& G
      mov     ax, $10/ q9 @7 }1 `$ o
      call    CallAddr2_0053BBFF
6 B5 _1 u) [' v& p3 T/ F1 \
      mov     edx, dword ptr [ebp-$14]
* L* W- w! M+ r# ^: b  c
      mov     word ptr [edx+3], ax
4 {8 |0 l2 k' t# o
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs; A0 Q$ _" \$ t6 W* d
                                               //; l% `0 m3 P- o
    @out: * c% N- i4 k& L% O$ o; X: d: x6 K$ R: w
      jmp     EndAddr1_0053BBFF               //这个是跳转到默认的点* @0 q( s0 |  B
, E8 P/ U$ y3 K7 f" y* v0 r! w9 d( a
    @OldCor:  D0 c8 s9 j7 l6 M
      jmp     EndAddr2_0053BBFF               // 跳转到原来16种色彩赋值
# V) x  {: p6 @! g' G  v6 E% N
    end

* {- U+ N) m7 _0 E) g
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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