游客您好
  • 点击联系客服

    在线时间: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 编辑
! n; E6 I1 B" U5 v; E2 i1 u& E( e6 ?. Q2 v! T6 {+ B$ `. h$ p: F9 |4 n
上面部分已经初步了解色彩设定的方式, 这个时候为了增加我们自定义色彩显示, 就需要在
# T' a* a# `  f4 i& d4 U9 }4 b
' q' F* Z* v& c2 v* q) ^
    dll里面进行内存地址读写8 ]) r+ ^% f6 k3 ~3 u
# t4 y# R3 i2 [) g6 q4 Y
    我是在
# e! b! H& w7 Q8 n' K2 o% ~' w
   
, ^7 U& ?# j3 u; A7 e
    0053BBFF  |. /0F87 41020000     ja      0053BE46
1 l  F  {: P' Z+ {3 d. F2 y& X* @

) n7 m. T, }& O: I2 L
    在这个地址进行拦截 在delphi里面 可能可以dll初始化时这样写
- h3 d, l8 S: R) v4 E! v7 F- h. Z

/ Q; S6 Y$ h' p# k& h& A; `( X% j5 J
    procedure InitDll();
: ]% V9 Q. I  {5 B  s
    var' n! ]7 _6 |$ O6 N/ s$ q
      p: Dword;- ?. h6 z. Y: |9 |' ]# \! Z
    begin
, O( w5 B5 l7 M9 ~2 d* @
      p := $0053BBFF + 1;
: V4 q, w4 ?1 y8 d% l
      PDword(p)^ := Dword(@proc_0053BBFF);* z6 m) V. A  {5 K* X$ i  p, Y
    end;7 c- A0 H7 @; t: ~* D. a, f
% G# n2 _7 e' H8 E( U4 o. ?0 w2 Y
    在自己的代码里面写一个色彩增加的函数判断比如6 i; z7 u) q' @: I
3 m* [& s% u$ G0 N
    delphi代码:
  m& }6 R' Y* T% r

8 j- O4 t% l, B5 o  c1 R0 o
    var
% }! y+ Z2 p2 S4 I6 z3 k) ^6 y
      EndAddr1_0053BBFF : Dword = $004F470C;
& I8 l% q" H8 q, i& J7 r$ `
      EndAddr2_0053BBFF : Dword = $004F44CB;
& h2 h# @# ]- h, @- W6 F1 M4 ?4 Z
      EndAddr3_0053BBFF : Dword = $004F4736;    //色彩彩赋值结束跳转6 ]% b6 u& J* F
$ ^9 X4 h. g, u, l/ i1 l
   CallAddr1_0053BBFF : Dword = $004611D4;  E# S5 q" s8 M5 g
      CallAddr2_0053BBFF : Dword = $004611D4;7 K1 p# |$ d1 C6 a, g5 M) P0 N
. I8 g5 T. K! U2 _$ Q( V/ V
    procedure proc_0053BBFF();% Z# y: e" S8 l2 ]/ s
    asm/ }% f$ }' O( T  N* P9 [
      cmp     eax, $10                        //与预先设定的 最大17比较
8 i. ]. {/ t2 m! j1 ?) B
      JLE      @OldCor                        //小于就跳转到默认16种色彩赋值0 I" s4 l- z- Q- M1 V$ I& B( u

' f' i5 S1 [# _' I+ P: Q  _
      cmp     eax, $10                        //比较是否等于16
; O# w' V2 A; y$ D1 M" _9 b
      jnz     @Seventh                        //不等于就跳转到第17种色彩判断部分
+ @3 o  f- u! {5 ]; t8 O+ a5 y2 h

! b: K; I; r& s
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试* Q* M# z1 w: g# f
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
" Y+ X) `1 Y* ?. M9 {; C
      mov     ax, $A
- w- X' S4 h. x9 O2 o: ~- [
      call    CallAddr1_0053BBFF . B, ]9 i" F; q2 F+ z
      mov     edx, dword ptr [ebp-$14]
' N: ~5 G" I& O
      mov     word ptr [edx+1], ax
4 ?4 ~4 x- u) f7 i1 D/ t! @

6 h; ~% t( n- g# ]' Z
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试, \& f5 a. t+ C: r4 Q' r
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
, \  o0 R' c  l8 @/ u; l  M
      mov     ax, $10
% g  ~9 P; [  S# V& ^1 h6 }/ |
      call    CallAddr2_0053BBFF 5 ]# l. j, \5 {$ A$ B  r4 M$ `
      mov     edx, dword ptr [ebp-$14]
" b% |- B1 }* A  Z2 j+ y4 }( `* m
      mov     word ptr [edx+3], ax" b5 `" i2 Z; }; h, w' u* |
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs% Z9 W" F2 ^$ Q* {; D

8 y% {" b0 ^  T. G( b
    @Seventh:
9 Z1 ]- k% u# s2 I
      cmp     eax, $11                        //比较是否等于17
7 e5 z/ O$ ~  ~4 p
      jnz     @out                            //不等于就跳转到默认部分
1 R2 s3 I" l4 ^4 \# u

! F& [, a: u7 T2 Y0 [) L1 g# m
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试
! e# f: f1 I1 J# o, h$ c1 i! w( f
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF1 K+ |  s' b+ g' t! k+ d
      mov     ax, $A
, v' d$ z/ e; V  e
      call    CallAddr1_0053BBFF
7 N( x0 N5 a9 |1 |  L' ]
      mov     edx, dword ptr [ebp-$14]) G1 d3 E8 A; V: Q/ k! y" s% ]
      mov     word ptr [edx+1], ax$ o& b! }; b7 {+ y7 ]0 F9 N
" C, _" \+ V! C" _% R
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试
3 Z6 @6 P. Q1 e* s
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
3 w% I) t7 V* f* U8 V
      mov     ax, $10/ {# }+ O; w$ q8 {, }' R" S8 x
      call    CallAddr2_0053BBFF
: n/ h0 W, o: ]1 u* Q  ?
      mov     edx, dword ptr [ebp-$14]
1 Z* E# Z3 o# t( x
      mov     word ptr [edx+3], ax% k% J5 o( u2 L6 q# w8 W
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs! D* J& i- x# [# ?& j1 A/ F5 `. e
                                               //
, t% S- D) j. H
    @out:
1 g7 t8 I3 N2 ~, ^4 m* v
      jmp     EndAddr1_0053BBFF               //这个是跳转到默认的点
+ E( W' v) z: F& N
, n1 j5 W. ~, r/ D5 h, x/ u: c
    @OldCor:
: |2 S( _8 a3 {! e, T5 Y  _
      jmp     EndAddr2_0053BBFF               // 跳转到原来16种色彩赋值, t  w* |6 M0 V$ J# i' y/ t: r
    end
5 x. ?9 P* p+ V# Z& H& {3 z
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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