游客您好
  • 点击联系客服

    在线时间: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 编辑 8 W4 V% a% ~5 Z' y( _% ^
% ?2 }. _. t, Z" ]6 G- D
上面部分已经初步了解色彩设定的方式, 这个时候为了增加我们自定义色彩显示, 就需要在9 T( x4 {# J7 k6 ?$ v" }

$ a- o4 l6 h; n6 H" P- ]  a
    dll里面进行内存地址读写
( w1 Q1 |) ~: Y  \0 I5 p. M2 [

( o* C0 p6 B  l- y
    我是在
" g: N' q- E/ S$ a3 X1 |
   
/ @, O8 }5 ?+ n4 Y3 {
    0053BBFF  |. /0F87 41020000     ja      0053BE46
3 T6 ]2 O0 t+ s4 H0 Q$ S

- W2 T! _0 v: Z
    在这个地址进行拦截 在delphi里面 可能可以dll初始化时这样写
7 r) R% @8 i$ z! h  Q8 r  F
7 r+ \7 }& [* c* F! @% |: N
    procedure InitDll();
+ {7 K9 Y) E& b3 l; r' H& Z
    var4 C  |5 u  g5 y: m8 `- D
      p: Dword;* J6 a3 i8 A; |3 {
    begin
# t; B/ {) L  ~( T+ L
      p := $0053BBFF + 1;
: P2 U! K/ e3 X  j5 j4 Y8 N6 ~
      PDword(p)^ := Dword(@proc_0053BBFF);" r9 [7 @5 @# O( M  u1 S4 T, B
    end;6 \2 Q7 U' J5 K" J

3 Q6 V  R$ B' Z% b8 X
    在自己的代码里面写一个色彩增加的函数判断比如' ]5 S" _# `6 b3 g, d: f5 \4 W1 j

- h# L! ~+ ]2 s+ b" G
    delphi代码:
7 h2 O. n5 q5 P! N1 k+ [

; J) s6 C* }7 b2 H7 d) L
    var
4 a: o0 C* p' f7 w  F" G5 F
      EndAddr1_0053BBFF : Dword = $004F470C;. \" c5 N2 L4 ~8 q# }4 z* E( u
      EndAddr2_0053BBFF : Dword = $004F44CB;- D$ b* l( M, |9 J9 I2 k! I
      EndAddr3_0053BBFF : Dword = $004F4736;    //色彩彩赋值结束跳转8 x, f6 {2 E, Y" s: \& K  k

9 k1 Y. S9 f" s' o
   CallAddr1_0053BBFF : Dword = $004611D4;
! S. g: a/ y3 i/ y7 M3 ^
      CallAddr2_0053BBFF : Dword = $004611D4;* X7 P& |* x( R6 A6 a
7 w4 Q6 m( k0 B1 X  u
    procedure proc_0053BBFF();9 k' J+ p$ I# ^, b0 ~$ E
    asm+ a- w9 @  I. V9 I2 a
      cmp     eax, $10                        //与预先设定的 最大17比较
% ~# S" c) i& N
      JLE      @OldCor                        //小于就跳转到默认16种色彩赋值+ l( V1 i, x5 `/ t) O3 q$ t
& L* E8 m( W2 a4 Z" I# [
      cmp     eax, $10                        //比较是否等于16 - T* M. n8 {& y# H( {' `, Y
      jnz     @Seventh                        //不等于就跳转到第17种色彩判断部分4 w4 T1 v1 [) S

* b" G" ^( j4 e; W
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试
7 F3 B! x( a. N+ M0 j  {
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF' w& k  L/ C  A9 U8 F+ l6 y
      mov     ax, $A4 v: w0 U. W2 }: V/ S: y- L) l6 X
      call    CallAddr1_0053BBFF 9 @$ W1 E, d) Z- ]
      mov     edx, dword ptr [ebp-$14]
; f7 J) H* a1 Z) R( O* j, M
      mov     word ptr [edx+1], ax. Q, K/ K( G. Z& j

$ t5 c8 `6 o. Z
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试
+ O0 T0 s7 T, }: I0 i! Q
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF4 {8 J& o0 [3 |1 n3 H0 X! J( m4 R- R
      mov     ax, $10: C* m3 P) v" q* I" q' V
      call    CallAddr2_0053BBFF 8 ~4 ?) _5 F, l9 k! t; G3 w! d
      mov     edx, dword ptr [ebp-$14]
8 W  l7 `$ q: ~- `
      mov     word ptr [edx+3], ax
* a. o4 i$ h9 J4 k3 ?3 N  n
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs
$ l: ^& [! D( g6 ]+ I- i
/ K7 K3 M8 [. o  O( x+ ~
    @Seventh:
5 J% }2 I' M$ G" w5 b; ^
      cmp     eax, $11                        //比较是否等于17   ~! ^0 z" [+ y$ \" A# A( k* q
      jnz     @out                            //不等于就跳转到默认部分
4 M1 ^6 ]; f5 k  z& v( m/ w: b& o
. S2 G! Z: h. k0 v! C
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试
0 d# f+ j1 a/ A  G- _- m  b4 o
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF8 l6 g. O0 P* @) J$ N; t; v6 F
      mov     ax, $A& Y- ?8 D3 g3 l
      call    CallAddr1_0053BBFF
, n3 O7 _4 k% u1 b+ x, a
      mov     edx, dword ptr [ebp-$14]7 P+ F0 |/ P1 Z7 t
      mov     word ptr [edx+1], ax5 C' d( C3 Q7 C# Q. H9 U
1 Y3 s! Y' P& C2 _9 x( }) O& l3 K
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试4 I1 i* H0 K8 a8 m9 R
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF; o7 ], P# T( @, J) v: i5 y
      mov     ax, $10
! {6 Q9 E; f0 l! T- ~$ ]4 P
      call    CallAddr2_0053BBFF
! }% s( N% E' c- j" @
      mov     edx, dword ptr [ebp-$14]
% q# I6 y8 J5 m
      mov     word ptr [edx+3], ax
4 D* J* h8 `7 a( M: J2 W
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs& z5 B7 X* G, I
                                               //
: f' U7 a  Z  y. ~( G9 E
    @out: & z8 C6 R) z4 i( L7 G# b4 h" @
      jmp     EndAddr1_0053BBFF               //这个是跳转到默认的点
, ^1 L8 Y  k- X; l! U! ^
) }$ B+ f, k5 R$ T; G
    @OldCor:$ G# O- n1 X$ H, E# e3 K1 }( o. H
      jmp     EndAddr2_0053BBFF               // 跳转到原来16种色彩赋值
+ {, i: P( A8 r# {  K8 F
    end
1 [! k) d" Z" |" H
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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