游客您好
  • 点击联系客服

    在线时间: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 编辑
5 ?7 g. f( R: l" k0 e9 a4 e+ L
, J- F8 u' i) v( p2 d
上面部分已经初步了解色彩设定的方式, 这个时候为了增加我们自定义色彩显示, 就需要在% ?( A6 W; I6 t1 V$ l3 c" v
& m# z1 M1 d2 K* V
    dll里面进行内存地址读写
# R9 I  q! Q- z- C  P: X7 j
0 M9 {  q0 v# f* k. W
    我是在 4 P, _' s' F$ J' |# s
    8 b9 \2 E" g0 R
    0053BBFF  |. /0F87 41020000     ja      0053BE46$ W2 }# v; e+ P0 q: a- S

) J  ]) |* a6 G% e& l
    在这个地址进行拦截 在delphi里面 可能可以dll初始化时这样写% {+ ]8 s0 n( F

8 B7 r& p" P( ^5 c5 L
    procedure InitDll();
9 n9 F4 D  ]7 ^% @
    var$ n, ^8 J, A: l6 `' T
      p: Dword;* x% @9 |# ^3 R5 H: k
    begin; b, D9 x% H# A. i. q1 j
      p := $0053BBFF + 1;
9 K6 j- R) g7 ~8 l- g2 f. ?: |
      PDword(p)^ := Dword(@proc_0053BBFF);3 n4 G( n2 O6 P3 n% M( l0 u
    end;
  M  v3 I- o0 B9 r0 {

9 u! [& z/ r! K3 G; r3 b
    在自己的代码里面写一个色彩增加的函数判断比如" f# H9 |2 z! d

" R) p' x$ w0 Q# f
    delphi代码:
' [! b* E5 _5 X5 P- @" a' o
5 C3 l; T  ?, m+ d+ g- n
    var
$ `6 N% W5 ^, U. P( X
      EndAddr1_0053BBFF : Dword = $004F470C;) d8 M( W/ c% j& Z2 e4 T, ]% R$ d
      EndAddr2_0053BBFF : Dword = $004F44CB;5 V& Z  _3 B3 g
      EndAddr3_0053BBFF : Dword = $004F4736;    //色彩彩赋值结束跳转
. y4 Y* m7 g3 F$ x

& Y. P! i4 k2 D
   CallAddr1_0053BBFF : Dword = $004611D4;
2 X! z# W$ o! a/ X" ~& c0 Z6 d2 u0 ]
      CallAddr2_0053BBFF : Dword = $004611D4;
+ Y' v2 I+ x) ?7 v6 q$ j

& ]4 A+ r6 Z: f
    procedure proc_0053BBFF();% C4 T4 s1 ^/ K' ?& h
    asm7 x) s5 g  m# @$ Z* x' ]1 l9 z: [+ v
      cmp     eax, $10                        //与预先设定的 最大17比较% Q9 N9 t1 t! \/ v" A6 H
      JLE      @OldCor                        //小于就跳转到默认16种色彩赋值# U8 L+ u  d9 g3 @2 s3 N* i% h. G

5 L: l' B$ y& W8 [" @9 x$ r
      cmp     eax, $10                        //比较是否等于16
! s* Z  r& F; r
      jnz     @Seventh                        //不等于就跳转到第17种色彩判断部分
+ E. G' I% V8 I; W
5 o' H$ ^; @; {/ p5 c7 L& z
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试
- \- r. f" G. J
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF% M0 O! ?! [6 p
      mov     ax, $A) D! H8 \2 Z- k& R0 |
      call    CallAddr1_0053BBFF
* b% ]8 Y0 ^2 ]' f: h. t2 T# ~
      mov     edx, dword ptr [ebp-$14]
: j! @& J+ i1 I7 m
      mov     word ptr [edx+1], ax
& q4 q4 D1 p1 @
4 X* B& U( W: W6 L) j8 p6 N& t! _3 `+ d
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试
" K9 \) d; R& o) f. v& ]4 t
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
% n% e; W6 K/ J0 ~  X
      mov     ax, $10$ S5 R! R0 Q9 g' j; a/ s* P
      call    CallAddr2_0053BBFF
, c0 J) F' i3 m, c. |- H
      mov     edx, dword ptr [ebp-$14]
7 C) w7 j% l- o5 A
      mov     word ptr [edx+3], ax! \* _( n# N/ y( l
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs9 d/ I4 K2 E* {  O! S0 c" X" F5 Z2 A
) C3 F/ ?5 N' E/ J# a& ^- m
    @Seventh:
. r" r" a4 D1 Z4 R
      cmp     eax, $11                        //比较是否等于17
/ w5 L+ T! G9 t4 Z7 e
      jnz     @out                            //不等于就跳转到默认部分
% S6 [+ F  Z3 }; g: K

; H* z. W5 u5 p" s/ p: x, a0 L
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试; S) X* s7 e- L
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF) N+ f  R7 ^/ f# ?% ], |5 b7 E
      mov     ax, $A
+ k7 `2 n" O9 i9 |! d# O* f
      call    CallAddr1_0053BBFF ' o3 D* f* M9 _  Y; M  A6 V
      mov     edx, dword ptr [ebp-$14]
! ]+ Y% p! n; }4 u; u
      mov     word ptr [edx+1], ax
0 w  c" w7 |0 I) [, u2 z

- j6 G) _5 I5 x. @
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试9 W( T& ]9 b( v1 l8 x4 W
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
% {  f) i; t/ O6 F0 R. T/ [2 g$ l: }# u
      mov     ax, $102 e& _- }* u1 H, Q8 u. J( W
      call    CallAddr2_0053BBFF ) V  T* ]& t8 N: G: W
      mov     edx, dword ptr [ebp-$14]" n& v' S% ]5 j% c
      mov     word ptr [edx+3], ax; w; S1 W" y# q4 b1 e
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs3 W* t! L; ?% r4 N
                                               //
+ f& Z, \" H4 t: ^/ g( P& p; v
    @out: % c% g# z$ w3 s3 F: r. t3 v
      jmp     EndAddr1_0053BBFF               //这个是跳转到默认的点) q/ Z  a( ^- g; {& O3 D
" X& y- [6 I& m8 X7 r2 o% c7 r
    @OldCor:
- ?0 s0 r1 S  r; m6 J
      jmp     EndAddr2_0053BBFF               // 跳转到原来16种色彩赋值$ l# s* h1 \; w- c
    end

0 g% e. s% \, S% p
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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