游客您好
  • 点击联系客服

    在线时间: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 D) Z& w& s/ N4 |" j' _  s+ ^. Y5 H/ q, G* n: J
上面部分已经初步了解色彩设定的方式, 这个时候为了增加我们自定义色彩显示, 就需要在, n" P3 ^8 E" i8 g& k3 V
$ K6 _: f% c6 ]2 n' l4 H, ]
    dll里面进行内存地址读写
7 d; d3 |5 ?. j

+ g. Q$ E3 T& `' W/ f/ A% u
    我是在
8 G2 v  ~  `  b1 N  J- z
   
+ J1 A. B; ^" p3 L, t( Y% A8 F
    0053BBFF  |. /0F87 41020000     ja      0053BE46: q( g$ V1 y8 D, j
) l2 R' L4 H! F4 K# u& P
    在这个地址进行拦截 在delphi里面 可能可以dll初始化时这样写
7 K+ ?1 Y, ]4 V; k1 D, \4 s+ U. ?( d
' I* X' U- j0 R- \
    procedure InitDll();
0 |1 \0 F9 S$ J! e0 [
    var
; z+ _8 W5 m( {; T7 P' a
      p: Dword;
% P; |9 m+ s/ e8 P, J) w1 ?
    begin6 V2 d* W, J5 m! r2 [9 O
      p := $0053BBFF + 1;
& B2 G2 `# l( p7 G  v9 @
      PDword(p)^ := Dword(@proc_0053BBFF);
* s" w, c5 f6 l1 J5 t: G. Q
    end;
0 |+ V9 a; `, j6 J5 a. z" m9 k: P" k

& X2 y' U; a/ S. d/ b
    在自己的代码里面写一个色彩增加的函数判断比如! p  ^2 T! B" H) D) p

- S! t% \1 X8 Q6 T2 N
    delphi代码:4 R! T4 K, K% j! z$ b: j2 F

, c# i4 V+ Y' M5 u# t
    var; V# Q$ c. f. S- p  |
      EndAddr1_0053BBFF : Dword = $004F470C;5 B4 s  \- Y. i2 [' ^. C
      EndAddr2_0053BBFF : Dword = $004F44CB;
4 s9 q8 T5 n3 d  S  P
      EndAddr3_0053BBFF : Dword = $004F4736;    //色彩彩赋值结束跳转
2 K% c  q) u' c2 |' j5 U% t3 `

7 e+ @( ?* O" {1 X7 @) }, V
   CallAddr1_0053BBFF : Dword = $004611D4;7 i: n" S2 X+ I( J
      CallAddr2_0053BBFF : Dword = $004611D4;
# {: g5 `, x' a$ z: h' z

- x* J4 \7 X' _6 f5 d. r$ p8 I7 i
    procedure proc_0053BBFF();
; D) X" u( _7 R; B, I3 F0 D
    asm
& \8 C/ B# X" f% Q
      cmp     eax, $10                        //与预先设定的 最大17比较
% q& L0 a* L2 I( m" B7 N% `# Q
      JLE      @OldCor                        //小于就跳转到默认16种色彩赋值
- r3 ^: c/ ]" [6 J  x! I) R

. ]3 {( n* T; b3 \" b
      cmp     eax, $10                        //比较是否等于16 5 K' {: K# S  {$ R5 w! ?7 @
      jnz     @Seventh                        //不等于就跳转到第17种色彩判断部分
) w8 c# p( D$ b8 N9 K
5 h# q& b8 {0 @1 m4 _" J# z
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试
6 K& V6 n1 u/ Y8 r. \9 T
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
+ }, q% ]' u8 n3 l
      mov     ax, $A
& C+ g2 E$ D3 [* B
      call    CallAddr1_0053BBFF + e! ?, N; Q; v9 k
      mov     edx, dword ptr [ebp-$14], Z+ N7 O" G4 \
      mov     word ptr [edx+1], ax6 d* t: j: T6 ~5 }
: O7 m6 [0 X# @0 J3 \) f
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试
5 G: }4 k" b" F% p- Z. w
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
* m: u$ ~( y3 `0 U( T1 o8 y
      mov     ax, $10
2 Y* X& W/ a: i& Y( |, L% @/ u
      call    CallAddr2_0053BBFF
# _4 |7 `6 r9 @/ L2 b" b
      mov     edx, dword ptr [ebp-$14]
& E$ t8 s# z9 o# Q, R& i
      mov     word ptr [edx+3], ax; c7 y7 Q1 o8 P4 a6 }
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs
0 X( p- q0 O2 }1 g' Q

! K, J* l3 K* B; O
    @Seventh:
: G9 o: W1 p# ~) O
      cmp     eax, $11                        //比较是否等于17
0 q- E, u9 H% J& P9 N( l$ l; }+ h* L
      jnz     @out                            //不等于就跳转到默认部分
9 r0 l7 N  b% ]  I# F6 z
% _# z2 u6 [" J
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试
7 r0 Q! j5 A: K8 T, M1 h
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF; \9 g/ O6 s2 ~
      mov     ax, $A/ E  m/ N7 `/ U8 R) F- z* j
      call    CallAddr1_0053BBFF   l  t- X8 Z, h4 L
      mov     edx, dword ptr [ebp-$14]+ {3 f7 A" f+ a6 T7 }4 N
      mov     word ptr [edx+1], ax
6 ]* j7 H3 _+ f3 y7 u0 V
8 b7 k( z% [7 r' _2 }: ?& a* F
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试8 d7 d$ C, ^, i& Q5 m5 S
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF+ ?$ }. a& |& l1 ~
      mov     ax, $10
5 w4 C. h8 X" W& Z
      call    CallAddr2_0053BBFF
$ A, _, H) y/ I- X/ M1 c$ C/ t6 j( U6 Z
      mov     edx, dword ptr [ebp-$14]
# T- |# j9 f: A% c' {$ [! ]2 G
      mov     word ptr [edx+3], ax6 i& J7 H' ]2 u1 L; e) X
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs
! W% c/ \3 r7 j
                                               //4 H8 k/ a- C- \6 @
    @out: & G; m9 w9 R, b& Y1 z" v; z
      jmp     EndAddr1_0053BBFF               //这个是跳转到默认的点5 \1 a2 W4 _+ F! O9 }
/ v3 e9 O% ?* P7 N1 g4 @+ c
    @OldCor:. y: b0 n5 |- X! b6 Y5 w! u/ R* b  Y
      jmp     EndAddr2_0053BBFF               // 跳转到原来16种色彩赋值
3 L- F2 E. b! R9 Z: _
    end

) ]1 g8 b% |9 B
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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