吾爱尚玩资源基地

标题: 【千年服务端】初步了解tgs插件的写法(二) [打印本页]

作者: admin    时间: 3 天前
标题: 【千年服务端】初步了解tgs插件的写法(二)
初步了解tgs插件的写法()
上面部分已经初步了解色彩设定的方式, 这个时候为了增加我们自定义色彩显示, 就需要在

    dll里面进行内存地址读写

    我是在
   
    0053BBFF  |. /0F87 41020000    ja      0053BE46

    在这个地址进行拦截 在delphi里面 可能可以dll初始化时这样写

    procedure InitDll();
    var
      p: Dword;
    begin
      p := $0053BBFF + 1;
      PDword(p)^ := Dword(@proc_0053BBFF);
    end;

    在自己的代码里面写一个色彩增加的函数判断比如

    delphi代码:

    var
      EndAddr1_0053BBFF : Dword = $004F470C;
      EndAddr2_0053BBFF : Dword = $004F44CB;
      EndAddr3_0053BBFF : Dword = $004F4736;   //色彩彩赋值结束跳转

   CallAddr1_0053BBFF : Dword = $004611D4;
      CallAddr2_0053BBFF : Dword = $004611D4;

    procedure proc_0053BBFF();
    asm
      cmp     eax, $10                      //与预先设定的 最大17比较
      JLE      @OldCor                      //小于就跳转到默认16种色彩赋值

      cmp     eax, $10                      //比较是否等于16
      jnz     @Seventh                      //不等于就跳转到第17种色彩判断部分

      mov     cx, $A      //字色或背景色? 没有去详细了解请自己测试
      mov     dx, $A                        // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
      mov     ax, $A
      call    CallAddr1_0053BBFF
      mov     edx, dword ptr [ebp-$14]
      mov     word ptr [edx+1], ax

      mov     cx, $10      //字色或背景色? 没有去详细了解请自己测试
      mov     dx, $10      // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
      mov     ax, $10
      call    CallAddr2_0053BBFF
      mov     edx, dword ptr [ebp-$14]
      mov     word ptr [edx+3], ax
      jmp     EndAddr3_0053BBFF              //色彩赋值结束跳转到tgs

    @Seventh:
      cmp     eax, $11                      //比较是否等于17
      jnz     @out                          //不等于就跳转到默认部分

      mov     cx, $A      //字色或背景色? 没有去详细了解请自己测试
      mov     dx, $A                        // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
      mov     ax, $A
      call    CallAddr1_0053BBFF
      mov     edx, dword ptr [ebp-$14]
      mov     word ptr [edx+1], ax

      mov     cx, $10      //字色或背景色? 没有去详细了解请自己测试
      mov     dx, $10      // 可以通过修改赋值给ax, cx, dx的值 不超过$FF
      mov     ax, $10
      call    CallAddr2_0053BBFF
      mov     edx, dword ptr [ebp-$14]
      mov     word ptr [edx+3], ax
      jmp     EndAddr3_0053BBFF              //色彩赋值结束跳转到tgs
                                             //
    @out:
      jmp     EndAddr1_0053BBFF              //这个是跳转到默认的点

    @OldCor:
      jmp     EndAddr2_0053BBFF              // 跳转到原来16种色彩赋值
    end
(, 下载次数: 0)






欢迎光临 吾爱尚玩资源基地 (http://bbs.523play.com/) Powered by Discuz! X3.4