标题:
STAR进,5.7中是不是有这几段
[打印本页]
作者:
砖家叫兽
时间:
2011-8-5 10:42
标题:
STAR进,5.7中是不是有这几段
00435D0C |. 8B45 0C MOV EAX,DWORD PTR SS:[EBP+C]
00435D0F |. 8945 E0 MOV DWORD PTR SS:[EBP-20],EAX
00435D12 |. 3C 08 CMP AL,8
00435D14 |. 77 40 JA SHORT 5_7Ekd5.00435D56
00435D56 |> \8B4D E4 MOV ECX,DWORD PTR SS:[EBP-1C] ; |
00435D59 |. 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C] ; |
00435D5C |. E8 29DCFEFF CALL 5_7Ekd5.0042398A ; \5_7Ekd5.0042398A
0042398A /$ 55 PUSH EBP
0042398B |. 8BEC MOV EBP,ESP
0042398D |. 83EC 20 SUB ESP,20
00423990 |. 894D EC MOV DWORD PTR SS:[EBP-14],ECX
00423993 |. 8945 F4 MOV DWORD PTR SS:[EBP-C],EAX
00423996 |. C745 E8 7D0E50>MOV DWORD PTR SS:[EBP-18],5_7Ekd5.00500E>
0042399D |. C745 FC 4B0E50>MOV DWORD PTR SS:[EBP-4],5_7Ekd5.00500E4>
004239A4 |. 33C9 XOR ECX,ECX
004239A6 |. 894D F0 MOV DWORD PTR SS:[EBP-10],ECX
004239A9 |. 894D E4 MOV DWORD PTR SS:[EBP-1C],ECX
004239AC |. 894D E0 MOV DWORD PTR SS:[EBP-20],ECX
004239AF |. EB 03 JMP SHORT 5_7Ekd5.004239B4
004239B1 |> FF45 F0 /INC DWORD PTR SS:[EBP-10]
004239B4 |> 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
004239B7 |. 3945 F0 |CMP DWORD PTR SS:[EBP-10],EAX
004239BA |. 0F83 B1000000 |JNB 5_7Ekd5.00423A71
作者:
砖家叫兽
时间:
2011-8-5 10:45
注意流程,
CMP AL,8这个分支
435D56开始没有传入参数就开始CALL
004239AF |. EB 03 JMP SHORT 5_7Ekd5.004239B4
004239B1 |> FF45 F0 /INC DWORD PTR SS:[EBP-10]
004239B4 |> 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
004239B7 |. 3945 F0 |CMP DWORD PTR SS:[EBP-10],EAX
004239BA |. 0F83 B1000000 |JNB 5_7Ekd5.00423A71
而这里终止条件是 [EBP-10]>=[EBP+8]
引擎每次都由于没有中断循环,内存访问到518000而崩溃
求解法
作者:
砖家叫兽
时间:
2011-8-5 10:47
00423A11 |. /74 42 |JE SHORT 5_7Ekd5.00423A55
00423A13 |. |8A4D F8 |MOV CL,BYTE PTR SS:[EBP-8]
00423A16 |. |0FB6C9 |MOVZX ECX,CL
00423A19 |. |51 |PUSH ECX
00423A1A |. |8B4D EC |MOV ECX,DWORD PTR SS:[EBP-14]
00423A1D |. |E8 DE350B00 |CALL 5_7Ekd5.004D7000
00423A22 |. |85C0 |TEST EAX,EAX
00423A24 |. |74 2F |JE SHORT 5_7Ekd5.00423A55
00423A26 |. |90 |NOP
00423A27 |. |90 |NOP
00423A28 |. |90 |NOP
00423A29 |. |90 |NOP
00423A2A |. |90 |NOP
00423A2B |. |90 |NOP
00423A2C |. |90 |NOP
00423A2D |. |90 |NOP
00423A2E |> |807D 10 01 |CMP BYTE PTR SS:[EBP+10],1
00423A32 |. |75 1B |JNZ SHORT 5_7Ekd5.00423A4F
00423A34 |. |8A4D F8 |MOV CL,BYTE PTR SS:[EBP-8]
00423A37 |. |51 |PUSH ECX
00423A38 |. |8B4D EC |MOV ECX,DWORD PTR SS:[EBP-14]
00423A3B |. |E8 C0350B00 |CALL 5_7Ekd5.004D7000
00423A40 |. |85C0 |TEST EAX,EAX
00423A42 |. |75 11 |JNZ SHORT 5_7Ekd5.00423A55
00423A44 |. |90 |NOP
00423A45 |. |90 |NOP
00423A46 |. |90 |NOP
00423A47 |. |90 |NOP
00423A48 |. |90 |NOP
00423A49 |. |90 |NOP
00423A4A |. |90 |NOP
00423A4B |. |90 |NOP
00423A4C |. |90 |NOP
00423A4D |. |90 |NOP
00423A4E |. |90 |NOP
00423A4F |> |807D 10 02 |CMP BYTE PTR SS:[EBP+10],2
00423A53 |. |75 17 |JNZ SHORT 5_7Ekd5.00423A6C
实际上这一段只是改动了后面这一段,将判断双方是否同一方改为是否混战判断
作者:
star175
时间:
2011-8-5 12:08
跳转错误
改成
00435D14 /77 4E JA SHORT Ekd5.00435D64
穿透类型只有8种,其他设置均为无穿透
不过这个bug还真是不容易发现,很少人会去设置>=9的穿透类型吧
[
本帖最后由 star175 于 2011-8-5 12:20 编辑
]
作者:
砖家叫兽
时间:
2011-8-5 12:58
哈哈,谢了
要不是引擎崩了我是不可能发现的。
作者:
砖家叫兽
时间:
2011-8-5 13:13
还是不行
不过既然只有8种穿透,不如直接改
00435D09 |. 8955 F4 MOV DWORD PTR SS:[EBP-C],EDX
00435D0C |. 8B45 0C MOV EAX,DWORD PTR SS:[EBP+C]
00435D0F |. 8945 E0 MOV DWORD PTR SS:[EBP-20],EAX
00435D12 |. 3C 08 CMP AL,8
00435D14 77 07 JA SHORT 5_7Ekd5.00435D1D
00435D16 |. FF2485 285F43>JMP DWORD PTR DS:[EAX*4+435F28] ; 5_7Ekd5.00435D1D
00435D1D |> 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C]
00435D20 |. EB 21 JMP SHORT 5_7Ekd5.00435D43
作者:
star175
时间:
2011-8-5 15:21
标题:
回复 #6 砖家叫兽 的帖子
这样改比较好
作者:
513633522
时间:
2011-8-5 17:27
围观分析会
作者:
冯励
时间:
2011-8-7 17:56
一堆天文。
作者:
maqming
时间:
2011-8-18 19:08
真不知道怎么才能看得懂这些!
欢迎光临 轩辕春秋文化论坛 (http://xycq.org.cn/forum/)
Powered by Discuz! 5.0.0