游客您好
  • 点击联系客服

    在线时间: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 编辑 # u7 l) ]4 o+ c% Z/ e9 o
& D8 k' C- s9 j: C
上面部分已经初步了解色彩设定的方式, 这个时候为了增加我们自定义色彩显示, 就需要在- k8 f3 d) t3 H) B5 c8 _
* O6 c* f- `. w5 P
    dll里面进行内存地址读写- @6 w9 ?* Z+ ]+ B2 j9 z: t* q

9 h! _& }8 X3 P" X* f1 e
    我是在
4 T" H# n, o. Z5 }% f6 L
   
+ K! c/ x7 Q) p+ E
    0053BBFF  |. /0F87 41020000     ja      0053BE46( Y' `0 D0 D% [. h) A3 _
) F% R' I6 D) Z  ]6 x4 F
    在这个地址进行拦截 在delphi里面 可能可以dll初始化时这样写; J& Z) w4 p- B+ x
& O# j5 |! \0 g; k9 z
    procedure InitDll();
+ x0 b- z9 Z8 }' @' d2 H) e" m
    var
, U# b, H( ]8 u) G  v* w5 ~- T' ]9 ?
      p: Dword;& i$ A6 e" b/ S6 B* ~' q2 @1 _
    begin/ V: g' g& C, G. B4 ]" G
      p := $0053BBFF + 1;+ ~0 N6 o& i5 m& `6 i% o
      PDword(p)^ := Dword(@proc_0053BBFF);
' q. r9 I# Q8 j7 B) c8 \5 N  C- \
    end;; L/ ]& s& W& I: @
/ R, O: o6 e4 V$ c; t
    在自己的代码里面写一个色彩增加的函数判断比如
) I9 M- V" L( i- n* j+ A
  M" C+ s$ o* n! x' u1 P/ X, \
    delphi代码:
5 k: J! q. w, q6 g, s+ n
5 e. ^; A$ x2 e4 Z" b0 P
    var
2 E- I+ v; y- F/ P: c
      EndAddr1_0053BBFF : Dword = $004F470C;: m( ]; {6 x: W) J: B" ~
      EndAddr2_0053BBFF : Dword = $004F44CB;. D  c& ~0 q8 v/ t- e
      EndAddr3_0053BBFF : Dword = $004F4736;    //色彩彩赋值结束跳转
/ y- S9 J8 P( i# R: \% A
: v( C1 ^& R* S5 \" M
   CallAddr1_0053BBFF : Dword = $004611D4;
8 U, o; B1 ~: s$ U: s- j8 S  Q
      CallAddr2_0053BBFF : Dword = $004611D4;/ Y& A5 F' W  n  d( |$ w

, n2 K: ~. i8 Z% A
    procedure proc_0053BBFF();4 U% y* r$ o. I' U0 j* _
    asm
9 ?' L$ t! B, x4 R) W$ o5 u
      cmp     eax, $10                        //与预先设定的 最大17比较
/ f  ?% a9 c! ^, x
      JLE      @OldCor                        //小于就跳转到默认16种色彩赋值
7 T. v7 ~4 i6 M4 n/ y+ M( B* C
! L$ g# H6 S5 K4 _5 G, O, w5 a) @
      cmp     eax, $10                        //比较是否等于16 0 W: R' J! R9 |) T% M; W" S
      jnz     @Seventh                        //不等于就跳转到第17种色彩判断部分
& C7 L2 ^$ m& B" B$ b
# ?- t9 Y4 x& E/ @8 V, m; X
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试
! Q4 [( S% s/ ?. O6 i# o
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF5 d+ v2 _3 Q0 G# `: K' H4 \$ p1 |
      mov     ax, $A5 P3 p% t( l) J/ f! J1 q$ V
      call    CallAddr1_0053BBFF 3 U4 g! K5 U  Q7 [+ J1 X3 p6 R
      mov     edx, dword ptr [ebp-$14]
; i( m2 B* f( p1 b
      mov     word ptr [edx+1], ax  N( e* Q& {% A( f
  L. C' `6 o7 K5 e# ^
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试* `! S0 h/ o7 K+ _% f5 G
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
. M- o( g6 l  t5 X
      mov     ax, $10
% p4 i( l- F/ L0 X5 E' K
      call    CallAddr2_0053BBFF - @- ~. B! @( q
      mov     edx, dword ptr [ebp-$14]
- W6 v' I; a+ r3 ]* T0 l
      mov     word ptr [edx+3], ax
. _% l: j) Y) u4 }) g, t$ u" O
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs
4 F( O3 }  @/ O
& t, j, Z, W( S( _
    @Seventh:
) @- H2 `6 t* D! Y% M
      cmp     eax, $11                        //比较是否等于17
7 }2 `4 L( k/ T, L( ^1 j4 w) p
      jnz     @out                            //不等于就跳转到默认部分5 f4 W% b0 P# [& Y

; W! l9 @- ]" a
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试
2 d7 r: ?. R+ ^, ?( G- U& [& ~* `
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
: l0 I% S, p+ G( I8 I
      mov     ax, $A
% w1 I, ~7 J' R* V* Y
      call    CallAddr1_0053BBFF
7 P; y- A% X) k
      mov     edx, dword ptr [ebp-$14]7 U; a5 X) f9 w( W
      mov     word ptr [edx+1], ax1 k% ]  [0 T6 p) ]  n
7 i" Z  ?- i+ g6 g2 O8 G$ U4 k+ O9 u
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试
, {, Y/ i. _5 D4 N4 u. ^
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF$ V" q* A% r' ?3 t
      mov     ax, $10/ }! K: e& s- K( `
      call    CallAddr2_0053BBFF
$ ^7 f. Z, _0 P+ i  K- d) n
      mov     edx, dword ptr [ebp-$14]+ y" S- }  h! ?- t$ ~# N8 a7 A: m
      mov     word ptr [edx+3], ax
' n2 i2 t* l7 d: M/ q
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs2 X" ^+ i5 N$ J; Q$ l, ?7 M
                                               //
* l4 d2 B# I6 b/ b2 b
    @out: . ^  x' g& U8 \+ p( G/ W: b
      jmp     EndAddr1_0053BBFF               //这个是跳转到默认的点
9 Z6 N4 q6 b- v  E1 L
/ D7 l4 K9 x( a0 ^
    @OldCor:$ r; }6 C8 x$ L. K* |6 M# V' `. ?, T  I
      jmp     EndAddr2_0053BBFF               // 跳转到原来16种色彩赋值; X- \; D. M6 M. n& S( _/ P8 T
    end
: _0 r5 m  j* c) m# o" r* S
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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