游客您好
  • 点击联系客服

    在线时间: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 编辑
# q8 G0 y  }" ?+ M) B  o5 K% ]: Z! e) ]- C/ Q
上面部分已经初步了解色彩设定的方式, 这个时候为了增加我们自定义色彩显示, 就需要在, Q# Y* g7 K  t3 ]8 q- M$ c6 [' f
; N* @  {: m- A/ Z. y
    dll里面进行内存地址读写
+ }' P; f! I! O' [; e
- m" D1 v: f- p: R- [9 [
    我是在
3 n2 K9 @6 v8 @; ]' Q$ [
    ; x  w5 d0 R1 X# e* B1 H" D
    0053BBFF  |. /0F87 41020000     ja      0053BE46
- A; J. l+ h+ l' `
3 a8 z1 c" N' f) N6 [% a
    在这个地址进行拦截 在delphi里面 可能可以dll初始化时这样写) Z- \4 l+ r* G3 N9 x

& U$ S6 y5 P9 o
    procedure InitDll();0 g* o2 a8 f0 }$ G; O
    var
% n8 C2 x) [& X1 ^  A! V* V- I
      p: Dword;
) F+ y8 W2 L3 ^; A
    begin% s) h2 X, p$ S
      p := $0053BBFF + 1;  d( u2 a6 a+ L4 J0 d# q) |9 I8 h
      PDword(p)^ := Dword(@proc_0053BBFF);
7 p3 \- l8 Q' Y8 L
    end;$ `3 {; f7 M4 D7 l, B- A7 q; g

. G5 M; o- e" g3 Y* }
    在自己的代码里面写一个色彩增加的函数判断比如
3 b( V& x+ O8 Q( E& @, N

+ a6 F# i: Y. Q' p$ ]
    delphi代码:
3 S  V8 G) U# Y" ~$ ~  j

, o4 h  X- u8 k
    var
" Q" l6 j" S$ w
      EndAddr1_0053BBFF : Dword = $004F470C;
2 ^* o& m$ m  V; g  V
      EndAddr2_0053BBFF : Dword = $004F44CB;, M9 m' @! t: R  n/ X/ f* F1 F
      EndAddr3_0053BBFF : Dword = $004F4736;    //色彩彩赋值结束跳转
% D2 W' @# O5 _+ n3 c& x

# S. o; [) q* e  Y) O
   CallAddr1_0053BBFF : Dword = $004611D4;
9 p  H' i) A/ n" Z) k2 x% P% o
      CallAddr2_0053BBFF : Dword = $004611D4;1 w% H6 c9 Z  f& q0 k. ]

/ |. @- Q! {) p; {0 t1 i, s
    procedure proc_0053BBFF();
, P- l, J% L  Y7 F7 [: Z5 v* h
    asm% t' ?. ]2 ?% h6 t: P+ Y" B
      cmp     eax, $10                        //与预先设定的 最大17比较
# M& v# Q: ?$ [
      JLE      @OldCor                        //小于就跳转到默认16种色彩赋值1 `: {: g  a' I: j% a1 _

! a  K. `# I9 ~% Y/ r
      cmp     eax, $10                        //比较是否等于16 / i/ ^5 P( y6 M& _) g, k
      jnz     @Seventh                        //不等于就跳转到第17种色彩判断部分  M5 K$ Q5 [1 V' {

* p3 Z# W0 @+ t$ P  M. k! U
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试; X! I; k( o- L( T8 Q) j
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
; R' @" }: b( Z
      mov     ax, $A4 s/ `/ _5 P& h
      call    CallAddr1_0053BBFF ( p" ]) k3 r9 z
      mov     edx, dword ptr [ebp-$14]1 J- `. L6 E+ F
      mov     word ptr [edx+1], ax
" K# g3 L/ G/ t# N1 P

2 ^  f/ c& z- E+ M4 I# g$ }2 h
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试8 @3 I- K- e+ E" }. N
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF% ?( ?  H4 N0 H  W  Q
      mov     ax, $10
, |4 @0 e$ \1 s  f& S
      call    CallAddr2_0053BBFF " k! j5 s9 F* c+ `$ e. I5 \
      mov     edx, dword ptr [ebp-$14]! O' g8 E/ o; C! c
      mov     word ptr [edx+3], ax/ q1 y2 W& i% ^! i$ P
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs
1 Y$ \" O+ I! d, a1 U3 y% b8 j6 @
) t9 R; y" B5 S) q; v$ M( M. I
    @Seventh:
$ s+ p0 s! `& R1 R! @
      cmp     eax, $11                        //比较是否等于17
& J" {. r5 u, t, l% [' S" I
      jnz     @out                            //不等于就跳转到默认部分
) H) k! q# H, D: Y. o6 S0 n# I
" s; J8 |; Y% ^' K: W6 @& V
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试
  Z7 J* W3 t3 U- h2 y" c
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
- l1 D' A  W; e3 O& i* W
      mov     ax, $A1 |# t; p! D9 }/ }* A; m' ~9 Q5 _9 W
      call    CallAddr1_0053BBFF
" {4 m, ~& l: Q$ F$ d9 T
      mov     edx, dword ptr [ebp-$14]/ S' L# Q* o+ ]- c
      mov     word ptr [edx+1], ax
7 y. A4 E4 f7 K! N+ a. A% _

" Q  \% n9 d4 c8 C+ s' P
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试6 s: e+ L# g. X4 a
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF: z$ e- k! G" l4 v& _- k
      mov     ax, $10
& i( K) Z0 m; A1 g" W5 t  Q2 G, q
      call    CallAddr2_0053BBFF , b, X( V( M0 K2 j1 E
      mov     edx, dword ptr [ebp-$14]1 Y5 x3 M+ N/ ^6 H
      mov     word ptr [edx+3], ax
# x9 ?! Q0 |0 ?7 `- l* f) V( O8 v
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs+ M3 c! R7 C* }' X- ]2 s
                                               //5 E0 q9 [; Q- A% s
    @out:
9 a# Z! k. K8 n; J  b' b
      jmp     EndAddr1_0053BBFF               //这个是跳转到默认的点
+ g$ G7 z1 z- A" {& p/ L2 `
+ r# o5 J# X& C
    @OldCor:
9 X1 B6 |/ U: q- P# L
      jmp     EndAddr2_0053BBFF               // 跳转到原来16种色彩赋值
1 T% A1 l. Q2 r( A: T' k# v
    end
/ b2 R7 [3 Q' a* A: }
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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