游客您好
  • 点击联系客服

    在线时间: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 编辑 ! o- U  r; V, M- Y

( b! C- ]7 K2 O
上面部分已经初步了解色彩设定的方式, 这个时候为了增加我们自定义色彩显示, 就需要在
9 C# x/ ^$ x- M

2 n3 a  w7 d. ~$ j
    dll里面进行内存地址读写
( t. e% [& ~. p- I- e

9 G( y% v6 i# ]4 R
    我是在 1 F# y; F5 m6 }# B. }6 d9 n4 O. A
   
1 e" H9 h& G; s; P9 o, I! y( W
    0053BBFF  |. /0F87 41020000     ja      0053BE46, Z2 n- p7 v5 n& @) o, t
. _: H( l3 F  N) E
    在这个地址进行拦截 在delphi里面 可能可以dll初始化时这样写! I) w- t3 w& W# D
* m9 v6 p* ^9 p1 U+ H) Z
    procedure InitDll();' f( i$ N% B+ l" M
    var
% {' o7 b" r, ~$ C: B( G  J
      p: Dword;
8 g, U: E1 ^8 y
    begin
" h6 W) K, Z8 T# P/ A/ B
      p := $0053BBFF + 1;" E' v# g4 q5 q
      PDword(p)^ := Dword(@proc_0053BBFF);
3 d9 M" E1 ~" L) m% W
    end;& ^9 E1 ?; V2 I& D2 g

; u% ~6 ?0 f* m( e& P* M$ D
    在自己的代码里面写一个色彩增加的函数判断比如7 `3 u8 E' ]' e7 Y% r

7 s" Q0 m! L0 {* f$ q. `( h9 `; d
    delphi代码:1 Z4 F" x& c; o2 @) a

' h4 g) ?$ i5 q* ]9 g3 O, J
    var
" A( ^7 u$ o0 i) u- o
      EndAddr1_0053BBFF : Dword = $004F470C;5 R. c) S0 s2 L& {0 ]% c& t% n
      EndAddr2_0053BBFF : Dword = $004F44CB;
& h% I8 h# V  Y( v2 ~6 N, b
      EndAddr3_0053BBFF : Dword = $004F4736;    //色彩彩赋值结束跳转
- M6 Z4 l# e% P1 R/ b$ ^  u+ e& r/ @7 `

& f5 D+ x! e, j3 E4 [. R/ p
   CallAddr1_0053BBFF : Dword = $004611D4;# s" _! a' S+ G& @+ W5 M: W
      CallAddr2_0053BBFF : Dword = $004611D4;
7 P% B* }( O: ^$ f
, h* v2 i$ }% z2 Y
    procedure proc_0053BBFF();3 W/ F' P: ~. @# @& e/ V. Z+ v# E
    asm  _, R; M7 q& q1 W' ]) J
      cmp     eax, $10                        //与预先设定的 最大17比较
" J6 w& b: g- A. ]" h- K
      JLE      @OldCor                        //小于就跳转到默认16种色彩赋值, H: o. I. r1 L- ?

( X0 \+ ?% S% G
      cmp     eax, $10                        //比较是否等于16
; n$ _, v# j# [
      jnz     @Seventh                        //不等于就跳转到第17种色彩判断部分
( ^2 [8 T2 ?+ U4 E+ H- v! i

3 q" ]$ f  N9 K! n
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试5 S* O' @+ f/ V% g
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
% L; P, B6 P6 ^1 ~- Y
      mov     ax, $A# S/ S5 n9 N' g) O! G
      call    CallAddr1_0053BBFF
- |+ F) j0 u& r: c
      mov     edx, dword ptr [ebp-$14]3 x# [+ M: d$ f  h# l! Q
      mov     word ptr [edx+1], ax
8 S+ {  X, F) A$ g8 b' |

' e! m) u8 V/ K  d
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试, M7 x. A0 a0 g4 u& A
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
3 U$ Q  r) ?5 Y" S; n
      mov     ax, $103 o% E* i' b, L4 _7 @$ y* R
      call    CallAddr2_0053BBFF , m9 i% `; \) I* v# P) |$ N3 m
      mov     edx, dword ptr [ebp-$14]
3 _, E: o9 U) `7 B& h' ^
      mov     word ptr [edx+3], ax
# Z0 b# t1 c: y7 j2 P
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs
" ?0 M( L9 p# s
( |4 D3 A* n% J
    @Seventh:
6 G1 \( D& \  T( G# ]
      cmp     eax, $11                        //比较是否等于17
7 x* v) F) f& U1 H3 V$ E
      jnz     @out                            //不等于就跳转到默认部分
3 f' [/ f) ?  d  N
+ w4 j% N% L! y1 ~- @$ s' ~( m$ C
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试  k0 H- Y1 @; Q" P
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
+ e5 c' c- v3 Q$ w$ [5 K4 X* Q7 l4 g& _
      mov     ax, $A; Q" x) J; R: _: N8 n
      call    CallAddr1_0053BBFF - Z5 d. p- v# }: Q
      mov     edx, dword ptr [ebp-$14]
. t8 C4 S& {# G; C' x
      mov     word ptr [edx+1], ax
# O% Y2 d- p9 C# c- e8 u

( K0 r% K3 n6 |" c8 ^( U
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试
, ~7 A' b9 V! h
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
4 T1 u* |) T6 I' U0 N/ R
      mov     ax, $10. }+ c5 V1 V2 ?- H1 s
      call    CallAddr2_0053BBFF . n5 g  ^6 w$ w3 W( n2 Q- N
      mov     edx, dword ptr [ebp-$14]. D/ S: Q  R3 M1 @7 v6 e
      mov     word ptr [edx+3], ax
) S# Y  ^/ K) g/ x
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs
- l5 d* p5 Y7 H7 `( [
                                               //
" m7 A, X; q9 [  i$ w
    @out:
- L( |& L% o# T) x( z
      jmp     EndAddr1_0053BBFF               //这个是跳转到默认的点
1 `2 A# {- T( y7 a5 _

! @6 b; K' D4 I9 U
    @OldCor:8 z; G" v5 p* b4 a0 @( l) S
      jmp     EndAddr2_0053BBFF               // 跳转到原来16种色彩赋值9 f. p7 H" U7 L, w- o
    end
8 J; ]1 u# F- [
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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