淺談數(shù)據(jù)的加密解密
這是在"BackMir修改"吧里,573650245大佬的“【教程】關(guān)于多倍主屬性的修改”和“【新手教程】100倍經(jīng)驗制作?!?個帖子里的內(nèi)容,我不過是借花獻(xiàn)佛.
直接上圖說話吧。 第一張圖,是存儲人物經(jīng)驗的代碼.

以下是我對代碼執(zhí)行流程的分析。
1,新得的經(jīng)驗如果為0,則置為1?
mov?eax,00000001?
test?edi,edi?
cmove?edi,eax
,2,判斷人物數(shù)據(jù)是否加密,然后按情況取當(dāng)前經(jīng)驗值,偏移?+74
mov?bl,[esi+7A]?//?+7A?=?1?加密狀態(tài)
mov?ecx,[gamesvr.exe+1CEA2C]?//?解密密鑰
call?gamesvr.exe+D4240?//?解密函數(shù)
3,新舊經(jīng)驗相加后,存儲加密的數(shù)據(jù)
mov?ecx,[gamesvr.exe+1CEA2C]?
//?加密密鑰,與解密密鑰相同
call?gamesvr.exe+D4190?//?加密函數(shù)
如果要直接修改經(jīng)驗,確實(shí)就是改加密前的數(shù)據(jù),也就是?+83798地址這里:
add?eax,edi
兩個寄存器,選一個改其數(shù)據(jù)即可。
好,繼續(xù)下一個,是關(guān)于攻速的?

上面代碼執(zhí)行流程:
1,?按人物數(shù)據(jù)是否加密,讀取出其攻速數(shù)據(jù),偏移+40
注意,與上面經(jīng)驗的解密密鑰不同,
這里是?movzx?ecx,byte?ptr?[gamesvr.exe+1CEA26]
解密函數(shù)則是一樣
2,讀取人物的詞綴攻速數(shù)據(jù),push 13 ...
有數(shù)據(jù)則計算發(fā)揮效用的幾率 ,第一個?MSVCR120.rand?
有效用,則繼續(xù)計算詞綴攻速的“上下限”,第2個?MSVCR120.rand?

這是計算攻速后的匯總返回?
設(shè)定一個最小值600,但取最大值
cmp?edi,eax
cmovl?edi,eax
所以要修改的話,可以改mov?eax,00000258?
這里然后將?lea?eax,[edi-64]?這行代碼置空即可
當(dāng)然,綜合分析之后,我們應(yīng)該更進(jìn)一步,直接改加密的攻速數(shù)據(jù).
應(yīng)當(dāng)如下:
假設(shè)ebx是人物地址
mov?edx,10?//最大值是?FF?也就是255
movzx?ecx,byte?ptr?[gamesvr.exe+1CEA26]
call?gamesvr.exe+D4190?//?加密函數(shù)
mov?byte?ptr[ebx+40],al?
//?如果有錯,就用?mov?word?ptr[ebx+40],ax,?
但絕不是?mov?[ebx+40],eax?長度太大會竄改其它數(shù)據(jù)
攻速,在C端也有限制,所以僅修改服務(wù)器上的代碼,是不起直接作用的.
想真正發(fā)揮效用,就得用我這個加密方法來修改,
并小退存檔,數(shù)據(jù)同步到C端后,才會起效用
總結(jié)就是,人物(物品也類似)部分?jǐn)?shù)據(jù)的加密和解密函數(shù)是固定的,
按數(shù)據(jù)的不同,有其相應(yīng)的密鑰,獲取到這2個數(shù)據(jù),就就能解密加密所有的數(shù)據(jù)
至于移動速度,也是類似攻速,請自己找出加密的密鑰吧。
什么攻擊力,血量等等,當(dāng)然也是如此