游客您好
  • 点击联系客服

    在线时间: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 编辑 7 |; G- t$ l" A9 J0 E4 }
- G( a. [, P; x! [8 D) ]+ I
上面部分已经初步了解色彩设定的方式, 这个时候为了增加我们自定义色彩显示, 就需要在
+ o/ e* H5 H6 I6 ^2 @4 r. Q) y) c

5 Q7 k6 R; s% Q% G, g2 F
    dll里面进行内存地址读写
9 f) S6 I$ `" X+ a0 X% |

) `+ {' R$ a4 k2 W
    我是在
- ~% Y- ]. t1 o2 N
    . `+ ~, @/ ^1 ~, s5 n* _% V. s1 h
    0053BBFF  |. /0F87 41020000     ja      0053BE46
" x$ y4 X8 G, J; F7 s

- c! f0 d# ^4 r# h# x+ x! M" x% M) r* h
    在这个地址进行拦截 在delphi里面 可能可以dll初始化时这样写; z5 _: n1 S( R5 Z6 t8 E7 J

2 o* _" S# T' E$ g- e
    procedure InitDll();
9 D* s" z6 x9 B  D  D- N) i7 `  {4 h
    var
4 ?- x! h% D8 N+ c) P; f; i2 c' p7 c
      p: Dword;
2 \  [1 z6 }! O8 v
    begin" t2 Y6 C+ {3 z" u- V) f* y
      p := $0053BBFF + 1;! V8 F. S" n- x7 i' P) h% l* K+ v
      PDword(p)^ := Dword(@proc_0053BBFF);
) H4 f% c; A- P/ x0 m
    end;
: f* Y8 o2 t$ X- S6 v: g, |$ a

( d( r3 y: Q3 M5 S' v, T7 h& g
    在自己的代码里面写一个色彩增加的函数判断比如, a0 }/ N8 v7 _/ e5 ~7 g

  L1 P% H: Z; Z. o9 N( t/ b
    delphi代码:5 o7 j/ H8 S2 p8 j2 m! [1 T
# D6 @, v2 O) s4 ~
    var. T2 [5 D+ Y  p7 V: ?, h- Z
      EndAddr1_0053BBFF : Dword = $004F470C;
: ~5 G; ]+ g1 J, \
      EndAddr2_0053BBFF : Dword = $004F44CB;) E4 [' W* O5 V* [5 n
      EndAddr3_0053BBFF : Dword = $004F4736;    //色彩彩赋值结束跳转2 k  @9 D/ S: C* O. [$ Y1 M
2 u+ I4 Y) K+ Z* w* l1 P) x: L$ ~
   CallAddr1_0053BBFF : Dword = $004611D4;" U4 S- x+ i6 o# S% e' x
      CallAddr2_0053BBFF : Dword = $004611D4;
( a+ J: G4 \0 v5 R; ^  I" z
, x; P3 V, R4 i* U2 E( c
    procedure proc_0053BBFF();
) `; J0 B9 [8 s7 Z4 W
    asm
( l8 Q  _/ N* o. ~, V3 w
      cmp     eax, $10                        //与预先设定的 最大17比较
7 g1 a1 A4 P4 K( @4 Y! j
      JLE      @OldCor                        //小于就跳转到默认16种色彩赋值* p1 B/ N( w4 V

" [1 U  O6 |/ D- s
      cmp     eax, $10                        //比较是否等于16 ' a: P2 {" |0 i3 O4 I( j
      jnz     @Seventh                        //不等于就跳转到第17种色彩判断部分6 e! J, u4 o$ i2 D
; F1 R2 \: B& X2 n; l# D
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试/ W( J, |+ o# e3 }4 y$ c; N6 G
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF" W8 U7 x, y4 t
      mov     ax, $A4 R0 H% o' S6 N/ g; r
      call    CallAddr1_0053BBFF
+ X8 y, Q0 G5 P" i
      mov     edx, dword ptr [ebp-$14]! c5 }! R0 l. A( y7 {4 }& R. z8 U
      mov     word ptr [edx+1], ax
) P8 n) ?7 Y+ W, j! _# |: j8 Z) o6 |; j
1 Y3 R5 Z5 O6 D4 ]: v$ S
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试
% o5 \& y; s7 G/ H; i5 u
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF8 {! `( E4 c+ K$ v+ x
      mov     ax, $10- C$ O  D& X- M" ?! \2 u1 P
      call    CallAddr2_0053BBFF 2 l! I8 Y/ ~1 w' l
      mov     edx, dword ptr [ebp-$14]; _) Q; c$ j! ~' Z; ^& |
      mov     word ptr [edx+3], ax" c& ^2 M* b+ y3 j9 w
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs5 h8 D6 a) W5 `$ m

  `" }) w; B6 `' }2 U
    @Seventh:  J, [* t9 [9 @9 F3 T2 Y; b  y
      cmp     eax, $11                        //比较是否等于17 ( f/ Z4 f1 p6 d9 j# s- i5 o
      jnz     @out                            //不等于就跳转到默认部分
3 W: O  w* b0 S! m& I# y" b. i& @

; V5 ]& I9 Y7 t/ T0 _" f' P
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试% T2 s# [# K( T4 v! B
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
' s9 O+ s# C* S% G' N8 v
      mov     ax, $A; l: e2 y2 P! s+ b
      call    CallAddr1_0053BBFF ! A: t# ~, u$ W
      mov     edx, dword ptr [ebp-$14]; ~: Y2 T! {2 z. Q# ], }% i
      mov     word ptr [edx+1], ax% A  g% ]) E" v  `% D( Q! Q8 |' c

' D! z3 X) Y- p' P3 O& E# ?
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试6 V; p' D! q1 y  s8 g4 o+ A
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF  k& u6 b- N3 C3 t& \. p' G
      mov     ax, $105 d& U/ s1 y. t# W
      call    CallAddr2_0053BBFF
: c6 p; T1 F2 l* E) K* N# h
      mov     edx, dword ptr [ebp-$14]
" X  Y3 J6 m$ R' M: J
      mov     word ptr [edx+3], ax
0 J8 S; L! y; M2 ~4 o
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs' }% \0 }4 ]; p$ h) F! d- ?! X
                                               //5 ?) W" [0 x7 p$ q" g7 v" E  @( p
    @out:
, G$ G. N& {" q* o8 d3 d
      jmp     EndAddr1_0053BBFF               //这个是跳转到默认的点
5 V/ [5 x* l# v& R2 n1 Z! \

- x1 |4 Z' e: A! i' K' \/ ^' N/ s; f
    @OldCor:
' H. T$ z* y/ s) j& y: g9 D/ o
      jmp     EndAddr2_0053BBFF               // 跳转到原来16种色彩赋值$ a) r- c, R( o6 i6 U+ H, @3 x
    end
! v5 R3 A' v) r+ `0 `
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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