游客您好
  • 点击联系客服

    在线时间: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 编辑
; @$ y1 H- K4 h2 R# R  p, c  @0 c" r, r0 ]. h% r. p" Q
上面部分已经初步了解色彩设定的方式, 这个时候为了增加我们自定义色彩显示, 就需要在
( N' Z# f$ L1 L
7 o: Y+ o- r1 m  U% z8 H
    dll里面进行内存地址读写
+ J) b; s$ r& {. f" n! N

) M5 t' S7 Z' m
    我是在
& i( p6 Y0 F5 |% N# `
   
) c  j# }( ?1 Y- S9 }
    0053BBFF  |. /0F87 41020000     ja      0053BE46
9 `. Y% m5 z3 w7 a/ B
3 Z4 r, T  ~3 \+ w; J& g
    在这个地址进行拦截 在delphi里面 可能可以dll初始化时这样写8 ^# m5 Z: Q' I; N
2 N$ l: c) F: F" L" R( r1 g
    procedure InitDll();& v( U5 {# l% B3 Z6 @1 x
    var
# x! G% c4 l6 B4 y( H
      p: Dword;& ?7 V4 p8 D3 T4 ?
    begin4 N9 R/ @9 e4 k# \2 l0 p
      p := $0053BBFF + 1;+ \/ ~! n+ a6 K8 J( t
      PDword(p)^ := Dword(@proc_0053BBFF);
) g# W( p2 g/ I& D9 J3 e# M
    end;
& [8 K0 S6 U$ N. v. F5 H
# m3 y+ m5 Q* t$ @
    在自己的代码里面写一个色彩增加的函数判断比如
9 U0 l. ~/ A6 l' X" O0 i/ |8 R

: ^0 z! A# n, V, ^
    delphi代码:
  ^" ~* w6 |3 ~* F
9 Z2 o/ e1 K6 u3 n- K( N! n
    var
. z) A$ M: ^  f
      EndAddr1_0053BBFF : Dword = $004F470C;3 a! q! X5 i8 [: J
      EndAddr2_0053BBFF : Dword = $004F44CB;5 e2 }, q2 z- J% x( _* Z/ Z: U
      EndAddr3_0053BBFF : Dword = $004F4736;    //色彩彩赋值结束跳转& Y0 t5 m! ~' Y. ~+ A; P

: t6 e2 ]& N. E: Z8 ^: k+ l
   CallAddr1_0053BBFF : Dword = $004611D4;, [7 e, L6 R, B9 B5 q# O( k) ?
      CallAddr2_0053BBFF : Dword = $004611D4;
4 \$ O+ n3 M4 I+ X# Q

( u! E3 w& e/ ]& y9 ~$ y$ \
    procedure proc_0053BBFF();
$ Q: f$ q& z; _
    asm  V" I1 J  ?: L) L( a* L
      cmp     eax, $10                        //与预先设定的 最大17比较
* P0 ~- g% ^/ h* E( v
      JLE      @OldCor                        //小于就跳转到默认16种色彩赋值  j* n' Y0 S1 u% ?# x
+ c( |2 e6 k0 U8 P" m) J8 m7 D
      cmp     eax, $10                        //比较是否等于16 5 ]9 C! M$ @" X2 U6 E
      jnz     @Seventh                        //不等于就跳转到第17种色彩判断部分6 h1 ]( R' a. A% h, ^
# i7 R1 B7 o4 ^7 c2 w
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试( e( o% \6 Z6 y9 s  p/ M
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
' r0 |$ f- ^4 G. ]( m) {/ s
      mov     ax, $A3 g7 O* z! {" p) A
      call    CallAddr1_0053BBFF & ?; X( \7 f- B4 V2 f/ Y; P
      mov     edx, dword ptr [ebp-$14]
) x) C; q3 \  B7 V9 D8 M: l; V* w  @
      mov     word ptr [edx+1], ax" s! D  [7 A; D( C! i# S

5 j; c" _( A4 e* `; h
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试! X6 f& ~1 G" g* p9 D, Q; o, x8 m
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
$ w( R( A$ Y; I) }
      mov     ax, $10- X$ _" I, u3 m0 K/ N
      call    CallAddr2_0053BBFF 8 R0 i. M8 E2 @2 n/ {* X0 {0 p
      mov     edx, dword ptr [ebp-$14]9 j* Y) _9 e/ |7 u
      mov     word ptr [edx+3], ax5 z% Z- p6 k; O( t2 N# V2 O$ o6 A4 V; l
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs) ^8 i1 k. b1 I# D, w
- k8 g' ]$ ^$ v3 R1 R5 ]) j
    @Seventh:
. A( o/ r3 r  @9 Y
      cmp     eax, $11                        //比较是否等于17
% o7 n6 y7 Q3 Q0 I9 {4 K0 K
      jnz     @out                            //不等于就跳转到默认部分5 u% G- _, F( `: D
# m& l$ O! w4 [% _/ R
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试
9 l3 w$ _9 i) I9 C  l7 j! H$ R: X
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
+ v& O8 B& s$ B" `$ o/ b% I& b
      mov     ax, $A
7 G2 z- U3 T$ f/ W! }. o6 V1 |
      call    CallAddr1_0053BBFF
# |3 p; }0 l8 B5 C' ^# A
      mov     edx, dword ptr [ebp-$14]
1 f: ]! b8 g( F4 [- ]
      mov     word ptr [edx+1], ax
/ n3 c( n& P* s1 b
/ o. e4 V( R# e
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试, B& r, Y; \! @) f5 R/ `' O9 w
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
, o- u6 o6 N0 P9 @1 A( P) m0 N; C! i
      mov     ax, $10# S( H$ K. d# \" |# j
      call    CallAddr2_0053BBFF
! M7 A/ t, F# y. z; H5 `
      mov     edx, dword ptr [ebp-$14]
/ B! P0 T# |5 a1 y' i* T* D5 ^- G& P2 U0 [" A
      mov     word ptr [edx+3], ax# d+ |( m( ?, W" `; |8 u
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs
2 L4 i4 `  Q1 s+ |
                                               //
7 s; j" u: I9 T1 y
    @out: 1 X9 g2 v8 h# a' p0 T/ Y9 o7 c
      jmp     EndAddr1_0053BBFF               //这个是跳转到默认的点
; ~0 k) e% x: A: I3 K' {

) R7 g- ]3 b  x9 T
    @OldCor:
: r# A$ R6 G* p- {# _6 J
      jmp     EndAddr2_0053BBFF               // 跳转到原来16种色彩赋值3 E1 Q# T  D7 H: w. N
    end

, M( m/ U+ P8 X0 ]; R0 @
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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