游客您好
  • 点击联系客服

    在线时间: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 编辑 , x% [" q4 V+ G) r# d$ P$ S# ^
! r. `* j: s( `4 a% x' G
上面部分已经初步了解色彩设定的方式, 这个时候为了增加我们自定义色彩显示, 就需要在9 o# c9 k* d: ~8 Q. @- `/ g# F
! \1 q$ K3 |% N; C+ t* a8 C0 G3 S
    dll里面进行内存地址读写
$ O3 N( t2 a6 y# e! L# ^

4 n' q- z/ O) o( Z# v" l
    我是在
3 Q/ q6 x: x( T! A  D
    + `2 `9 F* A& K2 ^2 R1 _
    0053BBFF  |. /0F87 41020000     ja      0053BE46$ }  K( O& \/ Q1 t

, d! a& U/ q( F" m: v: e1 Z
    在这个地址进行拦截 在delphi里面 可能可以dll初始化时这样写0 p' [  x. P, U+ s8 e: p

' ]3 C" w1 t; c$ n5 V
    procedure InitDll();
- V7 o; S$ h& }' }3 H+ {5 m
    var
- |8 e( f" u: g2 w" u
      p: Dword;1 q; d2 _* E5 h. n5 p1 ?
    begin
7 Z' H7 E' B' f4 {
      p := $0053BBFF + 1;( j1 I  F$ m* k3 A1 j" \
      PDword(p)^ := Dword(@proc_0053BBFF);
7 ]' J0 D" B) L* z1 z! N
    end;
+ a+ ~6 C& A* @$ `

/ z  z  e1 \' z2 K7 f
    在自己的代码里面写一个色彩增加的函数判断比如3 C- c7 d. c* Z% v- G+ K

. R) k% b; O8 q5 B2 k0 f3 F$ }
    delphi代码:
# C6 s% A+ `0 W/ ]

5 X) b4 }% d8 M1 R3 B
    var
/ Z% x, Q$ `/ f& z: F' Y
      EndAddr1_0053BBFF : Dword = $004F470C;
6 ~, P5 [5 L' c/ U, P  E+ h
      EndAddr2_0053BBFF : Dword = $004F44CB;
9 f# c$ s8 k  f, N6 k7 ~$ t+ X( ~7 O
      EndAddr3_0053BBFF : Dword = $004F4736;    //色彩彩赋值结束跳转0 ]- P2 O* k: [( C8 d
8 M8 G' I) h2 q$ o; d
   CallAddr1_0053BBFF : Dword = $004611D4;
0 R0 z1 r% X. q5 Z4 ~, d: V
      CallAddr2_0053BBFF : Dword = $004611D4;
" A2 ~- [- T% V" B& O* }

# [( m8 ~1 _9 L6 @" S9 @
    procedure proc_0053BBFF();6 V8 f1 N4 ^7 d* b* I
    asm& P. C  |( |/ s" ?
      cmp     eax, $10                        //与预先设定的 最大17比较
& x5 [7 I* G. U4 n7 L1 v
      JLE      @OldCor                        //小于就跳转到默认16种色彩赋值' l" `1 k$ t8 l7 I% k
! n7 }! L" l: A' i
      cmp     eax, $10                        //比较是否等于16
4 p: ], L1 Q' M6 J+ G) x; W% s
      jnz     @Seventh                        //不等于就跳转到第17种色彩判断部分
: c5 U8 U5 k. d' o! v- z

  C& G9 C' _+ r" t# w0 h; \
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试8 q% W" _4 s6 h! ^. c
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF; b5 c5 C, U& m. c% x# v
      mov     ax, $A7 ?4 Z' l9 |" S+ D$ e
      call    CallAddr1_0053BBFF
1 v5 }% d1 v( S4 f- o" B
      mov     edx, dword ptr [ebp-$14]
% V2 Y+ K) c0 K  D4 _1 ^- s
      mov     word ptr [edx+1], ax4 l% z+ C( a- |  l2 \  O5 F  ^' g
& S7 w' ]' Q/ r$ ~! r; d5 a
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试; U- _0 q! {* A) o4 D
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF2 r; z# @- o. E$ y. o% j9 e
      mov     ax, $107 F5 f9 k2 X) `
      call    CallAddr2_0053BBFF : w# w5 e% V# o  q# X
      mov     edx, dword ptr [ebp-$14]8 b- e4 f5 H' d0 A% w- y7 {
      mov     word ptr [edx+3], ax
  _" m, @1 ?7 h6 }2 P6 \$ a
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs8 E1 r, X( Q; e& p' M: p# ]
* Q2 }% s; x" m& ~
    @Seventh:
' w# w* ]' W9 \1 r
      cmp     eax, $11                        //比较是否等于17 & h2 Q% Y$ c! m, E' Y
      jnz     @out                            //不等于就跳转到默认部分0 T8 @: H  V/ ]# @2 W: U
3 X  E7 q* p1 t; G4 D+ }; U, d3 z
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试/ r8 g* ^9 r4 ]. J, l
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF4 c) _+ u3 J4 z- D+ `, H+ o
      mov     ax, $A/ i3 T% z8 D) ~2 C, a3 \" G
      call    CallAddr1_0053BBFF 2 Q- K) t6 F' o5 Q- E
      mov     edx, dword ptr [ebp-$14]5 H% D$ v2 s# }! i
      mov     word ptr [edx+1], ax
( z% Q8 R  B. e- |) ?! g% M/ P

- H% d1 ]- V, g
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试  @; L6 }9 w. T, X+ H' h
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF0 B/ l' y; v; `! Z
      mov     ax, $10
7 J5 g$ g7 l/ T; i) K+ v2 j# {4 ^
      call    CallAddr2_0053BBFF
' S% l3 q4 j4 b6 {" x
      mov     edx, dword ptr [ebp-$14]
  m- F$ D1 \0 i" R; F' D
      mov     word ptr [edx+3], ax+ G, |7 u& H+ q3 s, f1 D" [
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs6 v( A9 M/ m+ ?7 h; k" @3 v  v
                                               //
7 D; a) q; C3 G& V/ ~
    @out: 9 N3 I& y& m. d2 g
      jmp     EndAddr1_0053BBFF               //这个是跳转到默认的点
9 U( x$ E' X# O  X" P

5 ~, a% z: y4 B1 H
    @OldCor:6 z( ]& b. k  A0 ?
      jmp     EndAddr2_0053BBFF               // 跳转到原来16种色彩赋值& ]7 a1 V5 N7 M" n2 {( s* I* D
    end
/ Y' m) h! E7 M& C7 c$ A
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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