勋章不随时间减少而减少持久的方法
以前一直在找,没有找到(没有用心去找),今天看了下程序,从特性开始分析,结果找到了地头了,如果要使你的勋章不会受时间减少而减少的话,只修改一个字节就可以让勋章跟正常装备一样,在受到攻击的时候才减少。
下面发一下汇编代码给大家看一看:
:004C75E2 8945F8 mov dword ptr [ebp-08], eax
:004C75E5 8B45FC mov eax, dword ptr [ebp-04] 经典取当前的人的指针
:004C75E8 0FB78056040000 movzx eax, word ptr [eax+00000456] 取勋章的当前持久
:004C75EF 48 dec eax 自减1
:004C75F0 8945F4 mov dword ptr [ebp-0C], eax 放到ebp-0c里去
:004C75F3 837DF400 cmp dword ptr [ebp-0C], 00000000 比较勋章的持久是不是0
:004C75F7 0F8F80000000 jg 004C767D 大于0的话则跳转
。。。。。。
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004C75F7(C)
|
:004C767D 8B45FC mov eax, dword ptr [ebp-04] 取当前人的指针
:004C7680 668B55F4 mov dx, word ptr [ebp-0C] 把减少后的持久放到dx中
:004C7684 668****6040000 mov word ptr [eax+00000456], dx 把dx的量放到当前持久里
下面的就是以后的操作内容了。。。。
好了,看上面,有个自减1,再往前看看,是个call调用的,跳到那个call,哦,有时间的哦,不管了,先回到这里,找不到地址没有办法,找到了就ok了,那么就有两种修改的方法:
1、将自减的地方去掉,不减少,这样持久就不减少了
2、将jg的跳转跳到处理持久下面的段上去,并且去掉自减的语句
第一种方法修改的东西少,一个字节就搞定,把dec eax修改成nop,就万事ok了~~
第二种方法因为去掉了某些语句,能使程序运行得到效率上的提高,如果是原子钟的话能看的出来提高那么点吧~~
所以第二种方法会汇编的人可以去重新写一下跳转和去掉上面的DEC,这里只给出第一种方法的修改:
查找:488945F4837DF4000F8F80000000
修改:908945F4837DF4000F8F80000000 dedecms.com
或者在UE里按ctrl+G,然后到绝对地址:0XC69EF,将48修改成90就可~!
注意一点,这个call的上面是一个时间的判断,那里有个jNB,不要修改成jmp否则砍了人后名字始终是灰色的,因为这个call里计算时间减少人的灰名的程度等等运算,如果改了的话时间可真静止了:)