游客您好
  • 点击联系客服

    在线时间: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 K; y7 C1 n' k' D. a5 |8 t# S/ [
上面部分已经初步了解色彩设定的方式, 这个时候为了增加我们自定义色彩显示, 就需要在" ?: U% _. t9 r6 J* {7 z
) V: E" d5 u; |# v# t+ W, N
    dll里面进行内存地址读写" I: N# {5 U* P* \: Y4 `

/ s5 C0 o$ C& u% W) F. s7 ]- c: A
    我是在 6 f$ o* l! `; ?2 E! T
      y2 l. N6 L+ F5 F3 d+ ]
    0053BBFF  |. /0F87 41020000     ja      0053BE46
: T. r: `; _' K1 ~

" S+ R  y% X- s  j0 G1 q
    在这个地址进行拦截 在delphi里面 可能可以dll初始化时这样写
& c# q# F' C+ Y2 C- |6 o: ?/ A3 x

% U' O( r2 }( ]9 B7 T
    procedure InitDll();# {4 u/ T9 c9 g' D% Q' v; u$ v
    var
) ^2 w/ S" D9 D! n2 _
      p: Dword;( g& l  W* @% W/ h0 T8 p
    begin
+ F& O7 ~& n* Z0 I! M# Q* c( y* s
      p := $0053BBFF + 1;0 ]1 O) y" G2 v4 i0 s
      PDword(p)^ := Dword(@proc_0053BBFF);
7 b+ u# n# t9 D0 i2 r3 I. D$ T/ m
    end;# x6 e( J7 a# D. v3 n+ `

4 Z& h  U9 ^/ F$ V: E
    在自己的代码里面写一个色彩增加的函数判断比如2 r6 S  R: h5 b& o, S2 S

; i7 T# j9 }0 [  U6 C! o! @
    delphi代码:
! i& ^  r7 r- E4 M
2 J( d; e, G- q) R& C6 P
    var( y. \, X' t" M( g
      EndAddr1_0053BBFF : Dword = $004F470C;
6 I/ }* `% w: ]: d3 a# w9 n
      EndAddr2_0053BBFF : Dword = $004F44CB;/ {  f! Z1 r$ c" B5 _
      EndAddr3_0053BBFF : Dword = $004F4736;    //色彩彩赋值结束跳转
0 j+ d- m7 r3 P4 H, _

" K6 p2 k- E" E+ y. ]
   CallAddr1_0053BBFF : Dword = $004611D4;
& k' I% o0 d3 O2 W
      CallAddr2_0053BBFF : Dword = $004611D4;
& r: C  c* e- E

0 A7 p. A" {, {% u/ u5 H3 w: O7 v
    procedure proc_0053BBFF();
! S* ~' h6 `5 [
    asm- F2 `. G2 Z  N* n. I, v7 W, r
      cmp     eax, $10                        //与预先设定的 最大17比较+ w+ V) r% ^! T: ?
      JLE      @OldCor                        //小于就跳转到默认16种色彩赋值
0 T7 T5 E; a+ G. @: Y! D

. m/ L. i1 T# o+ k  P7 J! h
      cmp     eax, $10                        //比较是否等于16
# Q3 s: z5 Z, o# g
      jnz     @Seventh                        //不等于就跳转到第17种色彩判断部分
: X8 J6 G# Q& e- H
% L# q: f3 U  y( U9 K! p5 T
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试
( ?% g) C9 c2 S3 D+ A" r
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
7 X; K% F3 `& T; T- X  M5 H' W9 f
      mov     ax, $A
* C4 f( x% f- ]" m! t& x
      call    CallAddr1_0053BBFF 0 ]: R7 n+ `# J. O/ W3 Z
      mov     edx, dword ptr [ebp-$14], ~- p9 i* D) ~9 d* J
      mov     word ptr [edx+1], ax# v/ H! {  W0 @9 c- Z7 ]$ ^
. J  Y5 b7 P  C* n3 L
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试
' N- v2 |' ]! d- J. }2 [( K
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF9 ~* I2 C' V# D+ H7 U# H- }
      mov     ax, $10
+ P, R5 c+ z; E6 `! R0 w, }
      call    CallAddr2_0053BBFF 7 P6 A0 O! y! [% z
      mov     edx, dword ptr [ebp-$14]
1 I4 t- i+ ]) @( v4 ^3 h$ G
      mov     word ptr [edx+3], ax
' W: }& ]3 t- ?: B, N
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs
$ m" b7 ~3 d" L* g

2 b8 H9 j* _9 K; x6 \+ w
    @Seventh:
9 |: P  P9 W* ?' a/ C
      cmp     eax, $11                        //比较是否等于17
- @5 |- a1 `  {6 G# U* [% o5 z! ?
      jnz     @out                            //不等于就跳转到默认部分
; l9 m1 K, m# M6 u* M" n" ^9 ?
! A$ a. W+ b9 D4 ]1 b2 `# A9 r
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试1 E7 e5 b, p; e! y( M  a4 D& n
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF, y7 {) Q0 f& v$ `
      mov     ax, $A1 h' ^2 t3 K  J* m8 }" g
      call    CallAddr1_0053BBFF
) S! @6 Y. x2 x: \7 t* ?9 f
      mov     edx, dword ptr [ebp-$14]
2 d6 v: T9 z" U% B) r* {
      mov     word ptr [edx+1], ax
0 @+ v' i2 R% u+ X6 l6 L4 Z& y

- m, J2 H6 w& _  p/ x
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试  X- r% B3 S; f  q' p
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
) s+ b+ X3 G$ q! Z
      mov     ax, $10) _: F; a) m8 |5 ^
      call    CallAddr2_0053BBFF + G+ x7 n% y) @3 r
      mov     edx, dword ptr [ebp-$14]
( c1 b. [% u1 Z0 b6 T) u8 o
      mov     word ptr [edx+3], ax; z: D4 ]. r$ ]0 v/ m% U7 A9 m3 h7 H
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs  g3 l' [1 g# r: p) t$ i) U4 W
                                               //
; w( _  Y6 a; s% a. E
    @out: " o+ i& d1 j* W/ Q
      jmp     EndAddr1_0053BBFF               //这个是跳转到默认的点
/ Y# Y& v- ^. @$ o
6 k! P; n  d( `; J  V( f
    @OldCor:
5 e7 ~" A) d! ~& f# t; o
      jmp     EndAddr2_0053BBFF               // 跳转到原来16种色彩赋值& ^5 I0 T$ I: \) `& f0 s
    end

+ z# ]6 H$ _$ k' t4 L# D/ |
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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