rhg59321 發表於 2021-10-8 01:36:25

TwMS v237.1 CRC 列舉BuffID

本帖最後由 rhg59321 於 2021-10-8 02:42 編輯

// TwMS v237.1 CRC 列舉BuffID
// 避免Buff時間到消失了還繼續留在清單內, 每2秒會重新列舉所有BuffID

Registersymbol(Buff_List)
Alloc(Buff_List_Hook,512)
Alloc(Buff_List,512)
Alloc(Buff_Count,04)
Alloc(Timer,04)
Label(Buff_List_Exit)
Label(Record_Buff)
Label(Reset_List1)
Label(Reset_List2)

Buff_Count:
DD 0

Buff_List:
DD 0

Timer:
DD 0

Buff_List_Hook:
mov byte ptr ,21
mov esi,
pushad
test esi,esi
je Reset_List1
cmp ,0
je Reset_List1
call 02E11170
mov edi,eax
sub edi,
cmp edi,000007D0           // 刷新Buff清單的延遲
jl Record_Buff
mov ,eax
jmp Reset_List1

Record_Buff:
mov edi,
mov eax,        // 00C5B350 - mov eax,
mov eax, // 030E65D5 - mov ecx,
cmp edi,            // 020C70BA - cmp dword ptr ,00
jae Buff_List_Exit
mov eax,            // 020B4F84 - mov eax,
add eax,00000098
mov ebx,
mov eax,            // 020B4FE0 - mov eax,
cmp dword ptr ,03
je Buff_List_Exit
lea eax,               // 020B502F - lea eax,
test esi,esi
mov ecx,00000004
cmovne ecx,eax
mov esi,
lea eax,
neg esi
sbb esi,esi
and esi,eax
mov ,ebx
add ,1
jne Record_Buff
jmp Buff_List_Exit

Reset_List1:
mov ,0

Reset_List2:
mov edi,
cmp ,0
je Buff_List_Exit
mov ,0
add ,1
jmp Reset_List2

Buff_List_Exit:
popad
jmp 020B4F75+7

020B4F75:
jmp Buff_List_Hook
nop
nop


020B4F75:
mov byte ptr ,21
mov esi,

DeAlloc(Timer)
DeAlloc(Buff_List)
DeAlloc(Buff_Count)
DeAlloc(Buff_List_Hook)
UnRegistersymbol(Buff_List)

ningmeng 發表於 2021-10-8 01:43:20

感謝大大,確實有心了,謝謝,技術大牛

plusline 發表於 2021-10-8 02:11:34

我更新到一半就看到您發出來了^^
可以請教您要怎麼解讀這段程式碼? 我看了好久實在看不懂"je Buff_List_Exit"之後的部分

Record_Buff:

//看buff數量
mov edi,
mov eax,      
mov eax,
cmp edi,           
jae Buff_List_Exit

//看第一個buffID對應到的是不是技能
mov eax,           
add eax,00000098
mov ebx,
mov eax,           
cmp dword ptr ,03
je Buff_List_Exit

//以下就看不懂了(求解釋)
lea eax,               
test esi,esi
mov ecx,00000004
cmovne ecx,eax
mov esi,
lea eax,
neg esi
sbb esi,esi
and esi,eax
mov ,ebx
add ,1
jne Record_Buff
jmp Buff_List_Exit

rhg59321 發表於 2021-10-8 02:39:28

本帖最後由 rhg59321 於 2021-10-8 02:45 編輯

plusline 發表於 2021-10-8 02:11 static/image/common/back.gif
我更新到一半就看到您發出來了^^
可以請教您要怎麼解讀這段程式碼? 我看了好久實在看不懂"je Buff_List_Exi ...
直接看遊戲本身怎麼執行可能會清楚一點

020B4F84 - mov eax,
020B4F87 - add eax,00000098
= Buff ID

020B4FE0 - mov eax,
020B4FE3 - cmp dword ptr ,03
020B4FEA - jne 020B502F

020B502F - lea eax,
020B5032 - test esi,esi
020B5034 - mov ecx,00000004
020B5039 - cmovne ecx,eax
020B503C - mov esi,
020B503E - lea eax,
020B5041 - neg esi
020B5043 - sbb esi,esi
020B5045 - and esi,eax
020B5047 - jne 020B4F84


頁: [1]
查看完整版本: TwMS v237.1 CRC 列舉BuffID