游客您好
  • 点击联系客服

    在线时间: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 编辑 * @" M: U5 I1 b8 t* ]

+ `% {- H$ r) I6 i+ s$ l! v) \
上面部分已经初步了解色彩设定的方式, 这个时候为了增加我们自定义色彩显示, 就需要在
# O- C  L2 k+ [) w
7 z6 R3 r5 e% {: Z; J$ \/ M
    dll里面进行内存地址读写
1 M9 ?& n: m3 ]- O

- _9 e! E% T/ N: t0 l4 `& p( v* E
    我是在 $ k0 C! U4 j+ O' }8 j7 d
   
3 D4 Z5 V9 H& u; V" M+ H7 i
    0053BBFF  |. /0F87 41020000     ja      0053BE469 P& z- o3 `0 E. q3 v6 F
6 x# W4 H* j9 t: r3 Y' P  o
    在这个地址进行拦截 在delphi里面 可能可以dll初始化时这样写
+ |4 M) U, {6 @% h) q
1 [: m. c) b+ [) B% K
    procedure InitDll();
) o& W+ a* ~  ~1 m0 V( v5 A9 c
    var
7 H6 E' m6 c! ?4 r; \6 o5 a
      p: Dword;: C: w+ F8 p/ Q1 i5 Z$ c. c4 T
    begin% e' e' k: X9 @
      p := $0053BBFF + 1;
3 a, Y! b1 W7 [1 ?# R
      PDword(p)^ := Dword(@proc_0053BBFF);
* x3 m6 k; \; m5 f  a
    end;$ ~$ p$ _" G7 b- F

; {( X; p" G/ e, K9 P7 \. ?
    在自己的代码里面写一个色彩增加的函数判断比如- H" f% S! B1 E1 [

, e9 L/ ]+ f$ E4 Y7 J
    delphi代码:
  d* j3 ^+ g8 m: G
. F) W! J7 ?& W$ i  n& E
    var+ S, A* u- S  L' ]9 ?% E
      EndAddr1_0053BBFF : Dword = $004F470C;
6 d! L: ?& V- n/ t2 L
      EndAddr2_0053BBFF : Dword = $004F44CB;
9 O4 i. I4 d- z& a" o2 V6 O
      EndAddr3_0053BBFF : Dword = $004F4736;    //色彩彩赋值结束跳转
: K8 Z6 k. G: k; E! m
5 M3 C9 t1 U" V! Y$ G6 \- i
   CallAddr1_0053BBFF : Dword = $004611D4;4 m& e6 P2 X2 N4 A2 u
      CallAddr2_0053BBFF : Dword = $004611D4;7 |- u& z5 H; H, }; Y

  O4 z2 ^$ E2 E1 h
    procedure proc_0053BBFF();( B( S8 v* a5 J; X
    asm
) `# W( ^$ k. o5 s  ^/ p3 j
      cmp     eax, $10                        //与预先设定的 最大17比较- \0 {! K; R! b$ }2 ^' v( }
      JLE      @OldCor                        //小于就跳转到默认16种色彩赋值% v6 @( e; o  k1 J! i

+ u, H) s& z( S+ q
      cmp     eax, $10                        //比较是否等于16
+ `- B' n$ _) z
      jnz     @Seventh                        //不等于就跳转到第17种色彩判断部分: s, E7 J" L  [& g( y! k2 V: b
5 a: ]: B# U0 `7 p
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试0 U0 @- Z8 `5 P  ^8 i- _
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF5 C8 m# K7 K" N( D
      mov     ax, $A
1 J! d! |2 i/ ]* Z: B# [' f
      call    CallAddr1_0053BBFF " e& s2 U, ^* C
      mov     edx, dword ptr [ebp-$14]$ Z) P4 Z# ~9 e4 r- n
      mov     word ptr [edx+1], ax% I; G: {9 V% Y

7 G3 X* u, b( ?% J
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试: `$ c3 ?# ?6 p2 q9 R, i
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF( L3 ~) V% [  |7 h
      mov     ax, $10" B# v' E! C/ i2 M  ~. u- R
      call    CallAddr2_0053BBFF
1 V: y& t4 j: p3 d: Q( B# H
      mov     edx, dword ptr [ebp-$14]" L7 [/ e6 [2 J1 I! }5 l$ y4 y
      mov     word ptr [edx+3], ax, S& m8 ?$ X6 e, d+ q
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs
9 x+ g! F! }& f! G
2 [; Y2 N# f+ k& W( A; ~' `1 z
    @Seventh:
& U" f! A! \3 Z0 {8 ^- m
      cmp     eax, $11                        //比较是否等于17
* j6 D0 ~" `: K& Z( c
      jnz     @out                            //不等于就跳转到默认部分
+ X/ `- J! Q' v* L
1 r5 L6 l; E/ r7 g5 _
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试
: v/ [, X/ Z- ]# m
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
# w& x; @. G5 G8 k) ~
      mov     ax, $A( X1 [4 y) Q; x
      call    CallAddr1_0053BBFF
' o) i( A# g  E" c/ T
      mov     edx, dword ptr [ebp-$14]2 u/ G* Z; s+ \# o
      mov     word ptr [edx+1], ax# ?% ~3 q! c9 R) \+ {
- q2 n$ ^& [+ \" A2 v
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试
- l7 a3 P7 D- G" y$ A
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
# `1 Q/ A% R8 U, x
      mov     ax, $10: B7 l: R3 P5 G$ V. A1 _# f1 Z5 F
      call    CallAddr2_0053BBFF   T' F4 A( b" g& c3 H
      mov     edx, dword ptr [ebp-$14]
: u, k: Z* T, p9 `* E
      mov     word ptr [edx+3], ax
) Y2 q- f7 |( x& l
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs5 X  d( G* I9 o" a# _2 C
                                               //
' R. R0 \5 q$ v+ Z/ [
    @out: & K1 f7 s0 g# K7 p- G! X
      jmp     EndAddr1_0053BBFF               //这个是跳转到默认的点
* x; g4 \& ^/ H5 n, f- L5 E
( Y. o. z/ K) \+ c
    @OldCor:, M! @* n, f3 W" s, Y
      jmp     EndAddr2_0053BBFF               // 跳转到原来16种色彩赋值. H! q: I1 M6 C5 V) X
    end

: ^) w; P0 D0 z6 [) r
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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