游客您好
  • 点击联系客服

    在线时间: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 编辑
6 m: ^( E: }8 h" W
. ^& H$ b8 J+ {1 W+ g" b
上面部分已经初步了解色彩设定的方式, 这个时候为了增加我们自定义色彩显示, 就需要在0 N6 \- I! }3 \* y/ U: J) {
6 l& q8 B4 {2 _. ?2 |- q5 E
    dll里面进行内存地址读写
6 M% C) Z/ D' I5 s( n' g

8 n0 ]# P* j3 P& U
    我是在
+ @1 N) ?( j0 g
    ! e7 f* q5 V* J, s! V
    0053BBFF  |. /0F87 41020000     ja      0053BE46
& S+ i/ J) S8 R8 ~" j+ C

1 `) t* T/ M+ z% P$ l
    在这个地址进行拦截 在delphi里面 可能可以dll初始化时这样写
0 J! f0 u. {/ P4 X; j& d" w

! B! F) R" h2 C$ K, V. T
    procedure InitDll();
+ q: r' N& L7 }% [) f4 Z
    var
+ Y& e; f3 n/ |: K3 C( j6 y) g) L
      p: Dword;
& s# j. x2 i( k0 K; a$ k! K6 H/ T
    begin
# U: p3 [+ \, d, Z) F
      p := $0053BBFF + 1;# D' x& j2 l/ ^9 E  ^1 g* P% u
      PDword(p)^ := Dword(@proc_0053BBFF);
  @) I4 e* W& y' d
    end;
; U7 B* L5 y/ F, h5 r: Y

8 {2 U; t, I! F
    在自己的代码里面写一个色彩增加的函数判断比如! S1 y  n7 H9 n+ C1 N
1 Y/ I  n0 j5 y" e  H7 Z: u; P7 B
    delphi代码:0 {& t5 |; q8 G; ~; }% r% Z
$ j) n+ v5 d  u9 A" G8 D7 D, ]
    var3 `* {2 `7 \0 K# U0 H+ k) q: \
      EndAddr1_0053BBFF : Dword = $004F470C;
( f/ l& N0 V* ], _( [$ @
      EndAddr2_0053BBFF : Dword = $004F44CB;
- }1 D2 ~+ U7 n  r) {0 P5 k
      EndAddr3_0053BBFF : Dword = $004F4736;    //色彩彩赋值结束跳转2 r1 d/ K. C5 a% `5 @6 {% {# J- Z
; j/ b5 M( N4 @+ k' ~
   CallAddr1_0053BBFF : Dword = $004611D4;
" o- v. F, ]1 g! e  \: g
      CallAddr2_0053BBFF : Dword = $004611D4;9 [0 h. H! {( I1 X0 g

. p5 H3 w9 s2 [/ O6 K6 B
    procedure proc_0053BBFF();
! x8 l: U# u& C" }# j2 `
    asm
! Y, @; \- y0 @& M8 l) D3 A
      cmp     eax, $10                        //与预先设定的 最大17比较5 k" P+ d! E" e* v' }9 a" R
      JLE      @OldCor                        //小于就跳转到默认16种色彩赋值& `1 I/ r! ^, _" C0 ~* i& U& q" m8 B

* e6 W. e: a1 C! W3 ?+ H4 M
      cmp     eax, $10                        //比较是否等于16 . L- |  k1 z# T' \+ w
      jnz     @Seventh                        //不等于就跳转到第17种色彩判断部分
1 e2 l9 e% C7 o6 H% \

1 U/ p: z/ ]5 O% l) _& e1 y
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试  `6 A- M2 k1 q6 F  Z$ t4 P4 a
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
) _, Q# D6 v+ c% \: B  D
      mov     ax, $A
  |4 C3 r# A4 z9 Y
      call    CallAddr1_0053BBFF
+ V3 e. {8 s4 [- h, w
      mov     edx, dword ptr [ebp-$14]  P, R8 ^" w( |& ~( ?8 |' H' i
      mov     word ptr [edx+1], ax
( Z$ N, o0 ^3 Q: i% |8 i" K1 A
/ E* F% w( M  K! P# W
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试- @' u5 `7 B' S$ C
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
: |* E% d% b% M1 F/ S* v
      mov     ax, $10
# E# R2 q% O) L/ k2 x
      call    CallAddr2_0053BBFF + y' F; u- Q( G/ g2 e
      mov     edx, dword ptr [ebp-$14]6 m7 U6 R" X- Z
      mov     word ptr [edx+3], ax
4 e; G& _* T3 g* L( o: b
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs# M  J2 P- d( `2 B
/ }9 ^7 a) {* w9 f: C+ k
    @Seventh:- T' B& w" N: s# v- Q% ~& C* O
      cmp     eax, $11                        //比较是否等于17 4 w4 E0 M: k/ G2 [
      jnz     @out                            //不等于就跳转到默认部分
& }. S* D! X4 ]- M

  z. ~# z) T  e$ `
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试
6 V5 M) k0 Q& [% t; Z8 i
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF, \% P: B- S% X, a0 X0 b% w' P
      mov     ax, $A* x! i9 D3 A$ }# C$ c. U/ y2 A- L
      call    CallAddr1_0053BBFF
3 u3 |& }+ c4 ^. I
      mov     edx, dword ptr [ebp-$14]! ~6 Q+ q0 W4 a- e6 Q, Q
      mov     word ptr [edx+1], ax( I! n& j" Z+ {/ x
: z! ]. q: ^2 G3 C
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试0 Z4 R& k9 r7 E* ]9 G6 r& }: K* B
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
; k5 h- {7 u2 j3 c; ~; v9 V" _1 G5 F
      mov     ax, $10( |: h* b! K" `5 j' A
      call    CallAddr2_0053BBFF : Z: }* T7 G( a& j* }% M: l
      mov     edx, dword ptr [ebp-$14]* i* Z, k' y2 r+ c9 z3 ]: f) A" X
      mov     word ptr [edx+3], ax
2 o: C; K' A1 j9 M+ j
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs9 R+ Y( ~4 W3 p3 U$ g$ s
                                               //
/ z, U* |% @' B/ Q) Z; J
    @out: 7 s% x0 {" r+ ~1 Q# Z8 I9 E
      jmp     EndAddr1_0053BBFF               //这个是跳转到默认的点
4 B: L0 \% K  Q) q, F0 M
2 G* E- n- K2 _7 s: u0 F0 {% V
    @OldCor:
0 T% B4 }! {$ l* U* ~, X2 a1 J
      jmp     EndAddr2_0053BBFF               // 跳转到原来16种色彩赋值
% r. y  M+ X1 T
    end
8 S# @: k4 _4 l% W3 w
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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