游客您好
  • 点击联系客服

    在线时间: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 编辑 ' _# G, {& _) e8 G# B2 }

3 i9 B% W7 X. X% G, R
上面部分已经初步了解色彩设定的方式, 这个时候为了增加我们自定义色彩显示, 就需要在
3 G( o5 ?* n' M8 e: B- n+ P9 x) H3 o

. C: I2 ?7 p/ G6 y
    dll里面进行内存地址读写
+ w6 u& ]0 j7 n8 T  w+ b( q9 S
# ~6 u$ X) C: Y7 u# y  ?! T
    我是在
0 V- Q  o, _+ \, i
    0 m2 x6 v  y/ t
    0053BBFF  |. /0F87 41020000     ja      0053BE46
) g- `! p- X4 R: I/ u

0 E- W& c- g, J" P% u
    在这个地址进行拦截 在delphi里面 可能可以dll初始化时这样写
* G) M: `6 i6 I6 B
, l7 ?: p; \2 p( Y$ b: l
    procedure InitDll();
2 `. S% L" V' g& A9 t
    var) ?2 ~9 P. G; K8 x5 j7 M
      p: Dword;1 b  p, E5 b8 _- q8 D
    begin
/ d+ V" S1 ]/ h8 m, A2 l
      p := $0053BBFF + 1;
- ]  @6 ~4 t- x+ O) l5 L
      PDword(p)^ := Dword(@proc_0053BBFF);
* i. n" l( D+ D8 G" B
    end;
7 j* v' y# T9 M% P

8 \7 O: J6 q! h. M  i* r) o3 T6 `" W
    在自己的代码里面写一个色彩增加的函数判断比如. u8 @  }' f* N5 @+ L/ G+ B3 h8 [

7 b" B0 f# W5 \8 `8 Z; X7 Q! T
    delphi代码:7 B0 T. N. G8 S

  g8 S, c% \, r$ q
    var
, a, u% X7 W8 @2 C' F: g
      EndAddr1_0053BBFF : Dword = $004F470C;
6 [- ?- F! O+ B! b
      EndAddr2_0053BBFF : Dword = $004F44CB;* W; }* I" z3 k
      EndAddr3_0053BBFF : Dword = $004F4736;    //色彩彩赋值结束跳转
% \- [: J( w7 {; M0 o; \6 y
, R; ]: @8 I3 h& [
   CallAddr1_0053BBFF : Dword = $004611D4;1 U8 L+ g8 ?! q! W! e2 ?
      CallAddr2_0053BBFF : Dword = $004611D4;+ |: _' m5 U6 {9 M. I

- @8 Q( p3 X; D
    procedure proc_0053BBFF();
1 D6 n* s- ?0 X/ F# M/ |
    asm  Y- v2 q$ t- j. R
      cmp     eax, $10                        //与预先设定的 最大17比较% t+ t# F, ^% x# @6 ~
      JLE      @OldCor                        //小于就跳转到默认16种色彩赋值5 g- w, @! k& z# G

- {# O$ R* ]  R; F- I# @& ~" `9 X
      cmp     eax, $10                        //比较是否等于16 5 V. K* K0 |- e  U: z
      jnz     @Seventh                        //不等于就跳转到第17种色彩判断部分
. J- c0 |1 g. S9 }9 C7 \. z& S
* j% Z3 P9 e! N+ _, Y0 W
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试) L. a# Y+ J0 E- O) Z
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF' M9 Q6 f7 z1 m5 C) C
      mov     ax, $A6 a( d  |2 ~" Y4 A# X  H- W
      call    CallAddr1_0053BBFF
$ Y9 ^5 D) P1 ?- a' g- ?( _" S
      mov     edx, dword ptr [ebp-$14]( ?# ?( J& c  ~* D: W% y
      mov     word ptr [edx+1], ax
# R! v: Q9 U4 Q" r% z6 X. R0 P& k9 C
9 l* H5 l$ z4 Q. ^9 l
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试0 H) k8 }0 V, T( J
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
% A& y, X) E1 Z( {6 U+ e$ k2 [! J' j
      mov     ax, $10
# [) L1 V/ K1 s" J2 D* Y! w
      call    CallAddr2_0053BBFF : [4 Y# h3 f( `8 J: P# K
      mov     edx, dword ptr [ebp-$14]! z$ `' ?6 I( V2 ?
      mov     word ptr [edx+3], ax9 |- P& t5 i6 q/ G9 P
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs( Q" p! V/ z$ r% F# c0 G* J
+ d/ P  \' p2 X  r8 ~$ F. w
    @Seventh:( X, e% V9 o& b/ `9 i
      cmp     eax, $11                        //比较是否等于17
6 k6 O$ k9 @- x5 v
      jnz     @out                            //不等于就跳转到默认部分
/ R; A8 D1 o3 L" o* \  a/ P

: [8 K, u6 o2 |) O5 `
      mov     cx, $A       //字色或背景色? 没有去详细了解请自己测试
) N! G% H5 E; V& g5 x
      mov     dx, $A                          // 可以通过修改赋值给ax, cx, dx的值 不超过$FF$ r1 E; R; z( p2 c
      mov     ax, $A- ?% ~4 g9 O% ^) T
      call    CallAddr1_0053BBFF 0 \) J; |2 T8 O
      mov     edx, dword ptr [ebp-$14]  ^3 S, ]; Z% H5 M+ R/ }! W1 @& e& J
      mov     word ptr [edx+1], ax
# l6 c0 C5 X) `" B0 R) n
  l! T# _2 L- v
      mov     cx, $10       //字色或背景色? 没有去详细了解请自己测试0 Q; J- Y# A- Q: Y
      mov     dx, $10       // 可以通过修改赋值给ax, cx, dx的值 不超过$FF4 B- X/ h. Y- n5 c' e* E3 w( k- M
      mov     ax, $10
' V- I* t- x0 U9 h  `9 C) ^
      call    CallAddr2_0053BBFF
% [6 ?# h/ U, y8 P# J+ {, w
      mov     edx, dword ptr [ebp-$14]
1 ]& P9 }6 ^& w8 A% j$ @$ S
      mov     word ptr [edx+3], ax
4 v/ J7 G" F9 b/ D
      jmp     EndAddr3_0053BBFF               //色彩赋值结束跳转到tgs: }) T! T5 [- ?
                                               //
# r+ [6 u* A- @- F. m( \. e  m
    @out: " t5 t2 b( e0 ]" v
      jmp     EndAddr1_0053BBFF               //这个是跳转到默认的点
  T1 |& f. z: n) K9 L
: t2 R; W* U; }. J* Z8 V' C
    @OldCor:# N, A6 Q( Z& C1 M) o$ P
      jmp     EndAddr2_0053BBFF               // 跳转到原来16种色彩赋值
  h9 f3 b+ C% y
    end
6 z! ~: o% T  i; J+ d. r
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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