游客您好
  • 点击联系客服

    在线时间: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 t) Y$ p, J/ J6 }2 U0 t
% P  M5 g+ }- m6 s
上面部分已经初步了解色彩设定的方式, 这个时候为了增加我们自定义色彩显示, 就需要在
6 |% T: |! j+ H9 q. D- p; v
, b4 q: f' r4 y& K. u: ^& D8 E
    dll里面进行内存地址读写
4 |( S4 |% }% ~& o
- S: O0 Y: w* u0 W) }
    我是在
, h& d" u7 x# X" E) `6 a
   
5 J6 s4 H$ j- _3 g: \
    0053BBFF  |. /0F87 41020000     ja      0053BE46: Z# [9 F  H0 @
. Z4 U  V3 f2 Y. n( q
    在这个地址进行拦截 在delphi里面 可能可以dll初始化时这样写6 }) S7 E$ }7 D- C3 ]( b9 `

6 V: z# M1 N( G1 v  H2 H( ^
    procedure InitDll();
. }1 R! V  ]" M  ?5 D3 f
    var) O* n* m9 q/ e( B2 G% s
      p: Dword;8 w$ Q3 P; u) n* c2 F* F8 k
    begin8 t* b4 r. J; Q7 m7 T
      p := $0053BBFF + 1;/ D( `8 H0 g( r; s+ e
      PDword(p)^ := Dword(@proc_0053BBFF);
. x! S$ W! D4 J
    end;
5 @+ R4 s6 G8 j* \

* n; E+ B( I6 x" W8 b
    在自己的代码里面写一个色彩增加的函数判断比如
+ X$ q1 M' e! n# l  f$ z

# p: `( _" Y3 Y) i6 G4 i, }# f  M
    delphi代码:
2 E  `) H! U% a% A$ R! |3 A% `! S
( o1 ]/ b& `0 F& q' S/ n9 y
    var: L% G9 _: t# h$ M5 O
      EndAddr1_0053BBFF : Dword = $004F470C;
' j4 V* p1 U* B  y+ R) f7 \! q
      EndAddr2_0053BBFF : Dword = $004F44CB;" g6 E( t5 E  W. s- ~5 H
      EndAddr3_0053BBFF : Dword = $004F4736;    //色彩彩赋值结束跳转
. ^7 r2 S  M- X& M2 V2 X- g
: I. [% ^* N' [" X
   CallAddr1_0053BBFF : Dword = $004611D4;9 c* l, r/ O. J3 ]: _$ e0 N
      CallAddr2_0053BBFF : Dword = $004611D4;6 [, Y% M' g5 }8 h7 ]2 \8 H4 O" ^8 d
/ G  {5 I, o6 B7 O' l5 s" H+ v
    procedure proc_0053BBFF();7 B. l/ K$ r1 S+ h/ I2 z
    asm! T3 E" t7 Q! Z3 e* u2 U( ^  [
      cmp     eax, $10                        //与预先设定的 最大17比较
- r' @% P& ?8 W% `' v$ t8 z0 ]9 j
      JLE      @OldCor                        //小于就跳转到默认16种色彩赋值
1 E0 Q9 v0 J6 d" O# P' ?
) n1 _6 k, X3 D( r' l
      cmp     eax, $10                        //比较是否等于16
% x& w# L/ T  B- W: ^4 b- I
      jnz     @Seventh                        //不等于就跳转到第17种色彩判断部分
! d9 @. z! n+ n) N

. M* L  ~9 K  C( n
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试
5 w' N1 e- `! M' D
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
$ C% q- q8 Q7 l- e5 |8 i3 q
      mov     ax, $A
/ D( K$ n) m% s) p4 z' R! g+ V! F; K5 L
      call    CallAddr1_0053BBFF 1 \2 K' |' K8 `) Z6 C" M8 d
      mov     edx, dword ptr [ebp-$14]
* q0 q3 s! P$ F, P" O+ Z+ _6 a
      mov     word ptr [edx+1], ax, L7 i6 `" A0 b: [

% c/ P1 m' A' P" ~) B3 w
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试
2 l4 \! l# Z' D, w4 z- Z7 x$ _
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF+ J+ E6 I, M8 P# Z1 [: Z* o7 d
      mov     ax, $10- J+ O; U0 J5 A% |6 b
      call    CallAddr2_0053BBFF $ G& [& q/ I) M( K* v% t
      mov     edx, dword ptr [ebp-$14]
  y/ `; `* g. T
      mov     word ptr [edx+3], ax
% `6 N0 T2 P! q, O6 Y. ?
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs
: ]* x$ z. p) O

; E1 @( a4 m  W
    @Seventh:
* a) V! D. o: W
      cmp     eax, $11                        //比较是否等于17 ) c& _- D' c6 ?% ~2 Y# b$ x
      jnz     @out                            //不等于就跳转到默认部分3 M$ ?/ T8 t  N* X# g
9 y$ t* l) i3 Y7 v9 G' e
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试% b# h, B5 l1 Z$ y' y. r
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
2 _1 U" E) Q& C8 S, @4 r
      mov     ax, $A
* R4 @* I- w8 x/ Z4 M8 x/ U4 d
      call    CallAddr1_0053BBFF
  c( r2 `, E  Q3 S
      mov     edx, dword ptr [ebp-$14]
. ~+ I: @  n: ]7 G& p: @1 s
      mov     word ptr [edx+1], ax
2 N. d; r$ o& E

; k5 i% ]+ L9 u9 |; Q
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试
  j; ?8 `/ [2 B. G# J, S* H% ?
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF2 l+ C6 P, |( @7 n3 j7 s
      mov     ax, $10
# g8 o2 W1 V! Y! E3 ?
      call    CallAddr2_0053BBFF
# ?$ A0 l$ O4 b$ [
      mov     edx, dword ptr [ebp-$14]
9 c$ F3 e% q5 _( q2 T
      mov     word ptr [edx+3], ax
6 C$ i( w9 s7 [  P$ V
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs7 D2 r+ Z7 k  A3 I' s
                                               //% w! |- y$ ?3 n6 [; O# n
    @out: $ d/ e  o) [7 q: f6 O! J/ P7 d
      jmp     EndAddr1_0053BBFF               //这个是跳转到默认的点
4 W+ z  f+ _8 ~7 Y" r
$ W5 y. z7 z9 |1 l& ~& f( n* _$ Y$ h
    @OldCor:2 w7 p( N# h; Q6 U9 X: X
      jmp     EndAddr2_0053BBFF               // 跳转到原来16种色彩赋值0 M4 E! D# {; {: E& c
    end

7 J  g. a( }- b) b8 |+ j% q
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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