回复 #183 star175 的帖子
现在mcall可以用png的话,对于一些制作者来说mcall的需求量就变大了。
主要还是需要一片新的独立位置来保存指定。
把mcall读取和meff读取分开。
00425668 |. 8A80 BC664800 MOV AL,BYTE PTR DS:[EAX+4866BC]
这里新位置新找一片保存mcall读取编号。
004214D5 |. 8A90 BC664800 MOV DL,BYTE PTR DS:[EAX+4866BC]
这里可以不变,不扩展策略数量的情况下。
0040F346 /$ 55 PUSH EBP
0040F347 |. 8BEC MOV EBP,ESP
0040F349 |. 83EC 14 SUB ESP,14
0040F34C |. 894D EC MOV DWORD PTR SS:[EBP-14],ECX
0040F34F |. 0FB645 08 MOVZX EAX,BYTE PTR SS:[EBP+8]
0040F353 |. 99 CDQ
0040F354 |. B9 64000000 MOV ECX,64
0040F359 |. F7F9 IDIV ECX
0040F35B |. 52 PUSH EDX ; /<%02u>
0040F35C |. 68 83B84800 PUSH Ekd5_-_?0048B883 ; |Format = "E5\MCALL%02u.E5"
0040F361 |. 8D55 F0 LEA EDX,DWORD PTR SS:[EBP-10] ; |
0040F364 |. 52 PUSH EDX ; |s
0040F365 |. FF15 C0624800 CALL DWORD PTR DS:[<&USER32.wsprintfA>] ; \wsprintfA
0040F36B |. 83C4 0C ADD ESP,0C
0040F36E |. B8 00870000 MOV EAX,8700
0040F373 |. B9 0C0C5000 MOV ECX,Ekd5_-_?00500C0C
0040F378 |. E8 4123FFFF CALL Ekd5_-_?004016BE
0040F37D |. 68 00B80B00 PUSH 0BB800 ; /Arg3 = 000BB800
0040F382 |. 50 PUSH EAX ; |Arg2
0040F383 |. 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10] ; |
0040F386 |. 50 PUSH EAX ; |Arg1
0040F387 |. B9 88274900 MOV ECX,Ekd5_-_?00492788 ; |
0040F38C |. E8 9436FFFF CALL Ekd5_-_?00402A25 ; \Ekd5_-_?00402A25
0040F391 |. 8BE5 MOV ESP,EBP
0040F393 |. 5D POP EBP
0040F394 \. C2 0400 RETN 4
这里把64的限制取消,直接读取eax值
还有一个剧本读取mcall的位置。那里也需要取消一下64的限制。(因为在单位,记不得位置了,就不贴了)
|