游客您好
  • 点击联系客服

    在线时间: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 编辑 5 S$ C* }; C+ ]' F

. O0 i; ]* e8 e! N- f) p
上面部分已经初步了解色彩设定的方式, 这个时候为了增加我们自定义色彩显示, 就需要在; m+ n3 k( S7 Z' I
# E, B& t. ~$ }+ ~# u  u
    dll里面进行内存地址读写
4 k) Q+ X! h1 t6 Y* A) o$ V- U- e4 T

9 `2 L6 x/ _; i
    我是在   i4 T5 ^: i$ }: P& Z1 D4 O
   
; v- h) ^' X$ I$ V7 j; q
    0053BBFF  |. /0F87 41020000     ja      0053BE46' ~1 G# @' _" Q

# j0 X' j, F$ D+ h- I* V: D
    在这个地址进行拦截 在delphi里面 可能可以dll初始化时这样写! c& b" _) y$ t# b8 Y: d' q2 `

' v7 Q8 d; m* Y' j/ m3 R2 U
    procedure InitDll();
# G# E3 W$ B7 v7 @$ ]
    var
# F! P8 n+ q& ^
      p: Dword;
7 A, l' S- _  o0 }: M% W
    begin0 _% ~0 J2 }7 r% ?0 {: M+ x
      p := $0053BBFF + 1;
+ N- V* Q# A4 T- m; C4 E
      PDword(p)^ := Dword(@proc_0053BBFF);1 l9 X2 l1 [) J' q! J
    end;6 M0 S) Q$ B4 Q  ]
. i/ |- V% l3 q$ h$ e2 z& F* x
    在自己的代码里面写一个色彩增加的函数判断比如) o/ D7 M/ q- A9 O

3 z/ t; C" u/ B# S: X' e) i
    delphi代码:
( l1 Z5 p! L8 g2 F) o% s
7 T- C6 f$ W0 D# H
    var
3 S* U: E6 e% R+ c# |
      EndAddr1_0053BBFF : Dword = $004F470C;
; T; ?  A& c  z# `3 o, {) _
      EndAddr2_0053BBFF : Dword = $004F44CB;! U1 i- \4 I. E% S# w
      EndAddr3_0053BBFF : Dword = $004F4736;    //色彩彩赋值结束跳转
% _2 r% K4 c# ]/ ?: n
' f7 k% s  K# B3 w# s* f
   CallAddr1_0053BBFF : Dword = $004611D4;
1 X9 [# w9 M" V& a# |  w; a* R
      CallAddr2_0053BBFF : Dword = $004611D4;+ f$ A5 {; V) o6 l8 |5 ]
( r+ S: \7 I- a
    procedure proc_0053BBFF();
  `: F$ Y' O( Q5 A
    asm1 _# J) n& a. `' |! q
      cmp     eax, $10                        //与预先设定的 最大17比较2 S* l5 S/ P8 A
      JLE      @OldCor                        //小于就跳转到默认16种色彩赋值5 |8 X& ]2 Z: |! s5 P, I
- @" N! d9 R! n
      cmp     eax, $10                        //比较是否等于16 $ i) {7 |5 ], |# W3 d- m
      jnz     @Seventh                        //不等于就跳转到第17种色彩判断部分! g' V/ \/ M  u, j
" }" O) K! n. @
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试
$ S- D4 G* D3 n9 z
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF! A% c* `  [+ E+ _
      mov     ax, $A
  V0 l" W; C" C2 |
      call    CallAddr1_0053BBFF
- S9 }$ ?' g! \
      mov     edx, dword ptr [ebp-$14]
2 P" D5 C2 s) r2 |
      mov     word ptr [edx+1], ax# @6 Z* ?3 L; b* f9 _/ f+ c$ P

, p1 M; x6 x+ X% R
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试& q& b- b) @5 J1 I0 D. R! Q. L
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
: d) g. C7 y, ^5 N, u7 E0 L) t
      mov     ax, $10
! U2 f6 n: e% G. h
      call    CallAddr2_0053BBFF
" t8 H. ], Q+ k6 M. E: J
      mov     edx, dword ptr [ebp-$14]/ N* S! w- c- R0 T+ m( L2 O
      mov     word ptr [edx+3], ax
/ Q4 l% O. d% e! O/ @; T- P
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs
0 T8 B9 ^) N: j; C0 ~

* l) g$ [* F- |! \7 @
    @Seventh:4 j* j3 o5 w- J1 b
      cmp     eax, $11                        //比较是否等于17
9 @2 v* V2 M: {
      jnz     @out                            //不等于就跳转到默认部分
2 _$ f, T/ q) b; A

& @$ x: l! Z" k- o: }& e
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试
, r6 Y6 \% f( J5 R
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
# `5 @3 l' N; T5 L
      mov     ax, $A3 T9 v2 s6 w  p7 x9 o' K) R
      call    CallAddr1_0053BBFF ) Z- ?3 }$ b$ A( |! y( S' {9 q
      mov     edx, dword ptr [ebp-$14]$ z+ P+ ^3 p. l% t* S/ J! [% s
      mov     word ptr [edx+1], ax1 _( ]- I! i( W
* m" x: Z- Z% c) i/ s* p" x  V: u
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试
* Z$ d9 q: v8 \5 A- j- [
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
. }) y8 w# C; A
      mov     ax, $10
4 N; N1 t2 y& ?% L% E9 b# ~
      call    CallAddr2_0053BBFF   V  X  ~$ c# z5 H% P9 y& F
      mov     edx, dword ptr [ebp-$14]
5 y0 A# A  z7 h* \  @' b  V
      mov     word ptr [edx+3], ax9 V1 k3 N; J* [( w5 I5 n
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs
* L3 E  Z+ _/ m- Z5 o) y
                                               //: u) Z+ S# d% r( k4 H- l7 i/ I
    @out: # y# b( O; \+ K, B% [& y# Q1 p" I
      jmp     EndAddr1_0053BBFF               //这个是跳转到默认的点
! k* w) ]0 v$ K! D9 P9 d
  e& z( g  h6 @7 |# u
    @OldCor:
, }5 C, b: {/ }+ Y" y( Y
      jmp     EndAddr2_0053BBFF               // 跳转到原来16种色彩赋值
. k+ i  z7 X6 @% c
    end
' m5 K+ J3 d: j, [- b
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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