R、S剧本中,06、4a连续起作用
在上一帖的修改中,修改了原剧本中06、4a指令的结构。造成了编辑上的不便。
还是修改为多个06、4a连续起作用比较方便。
以下修改后,须在R、S剧本中同时使用三个连续的06或4a。
06的修改
为了减少字节数并加入新功能,重写了从0x00415b59到0x00415c02的代码。
00415B59 CMP AX,8000
00415B5D JNZ SHORT EKD5_916.00415B69
00415B5F MOV EAX,5
00415B64 JMP EKD5_916.00415C42
00415B69 PUSH 4
00415B6B MOV ECX,DWORD PTR SS:[EBP+8]
00415B6E CALL EKD5_916.004183F7
00415B73 MOV DWORD PTR SS:[EBP-8],EAX
00415B76 CMP EAX,80000000
00415B7B JNZ SHORT EKD5_916.00415B87
00415B7D MOV EAX,5
00415B82 JMP EKD5_916.00415C42
00415B87 MOV CL,0
00415B89 CMP CL,5
00415B8C JGE SHORT EKD5_916.00415BB2
00415B8E MOV BYTE PTR SS:[EBP-C],CL
00415B91 Arg1 = 00000038
00415B93 MOV ECX,DWORD PTR SS:[EBP+8]
00415B96 CALL EKD5_916.004183F7
00415B9B MOV CL,BYTE PTR SS:[EBP-C]
00415B9E MOV EDX,DWORD PTR DS:[4CEA3C]
00415BA4 ADD DL,CL
00415BA6 MOV DWORD PTR DS:[EDX*4+4CEA00],EAX
00415BAD ADD CL,1
00415BB0 JMP SHORT EKD5_916.00415B89
00415BB2 ADD DL,1
00415BB5 CMP DL,0F
00415BB8 JNZ SHORT EKD5_916.00415BBC
00415BBA MOV DL,0
00415BBC MOV BYTE PTR DS:[4CEA3C],DL
00415BC2 MOV CL,0
00415BC4 CMP CL,5
00415BC7 JGE SHORT EKD5_916.00415BED
00415BC9 MOV BYTE PTR SS:[EBP-C],CL
00415BCC PUSH 39
00415BCE MOV ECX,DWORD PTR SS:[EBP+8]
00415BD1 CALL EKD5_916.004183F7
00415BD6 MOV CL,BYTE PTR SS:[EBP-C]
00415BD9 MOV EDX,DWORD PTR DS:[4CEA7C]
00415BDF ADD DL,CL
00415BE1 MOV DWORD PTR DS:[EDX*4+4CEA40],EAX
00415BE8 ADD CL,1
00415BEB JMP SHORT EKD5_916.00415BC4
00415BED ADD DL,1
00415BF0 CMP DL,0F
00415BF3 JNZ SHORT EKD5_916.00415BF7
00415BF5 MOV DL,0
00415BF7 MOV BYTE PTR DS:[4CEA7C],DL
00415BFD NOP
00415BFE NOP
00415BFF NOP
00415C00 NOP
00415C01 NOP
00415C02 NOP
4a的修改
4a原本代码比较精简,费了好半天劲也没有实现不占用其他字节数。最后还是恢复了老版本,占用了409102开始的部分字节。
00409102 JNZ SHORT EKD5_918.00409106
00409104 XOR EDX,EDX
00409106 MOV DWORD PTR DS:[4CEA7C],EDX
0040910C MOV ECX,EKD5_918.00492F90
00409111 CALL EKD5_918.0041856A
00409116 JMP EKD5_918.00415E28
00415DA5 CMP EAX,80000000
00415DAA JNZ SHORT EKD5_918.00415DB2
00415DAC XOR EAX,EAX
00415DAE MOV AL,5
00415DB0 JMP SHORT EKD5_918.00415E2D
00415DB2 TEST EAX,EAX
00415DB4 JNZ SHORT EKD5_918.00415DB7
00415DB6 INC EAX
00415DB7 MOV DWORD PTR SS:[EBP-4],EAX
00415DBA NOP
00415DBB NOP
00415DBC XOR ECX,ECX
00415DBE CMP ECX,5
00415DC1 JGE SHORT EKD5_918.00415DE5
00415DC3 MOV DWORD PTR SS:[EBP-8],ECX
00415DC6 PUSH 38
00415DC8 MOV ECX,DWORD PTR SS:[EBP+8]
00415DCB CALL EKD5_918.004183F7
00415DD0 MOV ECX,DWORD PTR SS:[EBP-8]
00415DD3 MOV EDX,DWORD PTR DS:[4CEA3C]
00415DD9 ADD EDX,ECX
00415DDB MOV DWORD PTR DS:[EDX*4+4CEA00],EAX
00415DE2 INC ECX
00415DE3 JMP SHORT EKD5_918.00415DBE
00415DE5 INC EDX
00415DE6 CMP EDX,0F
00415DE9 JNZ SHORT EKD5_918.00415DED
00415DEB XOR EDX,EDX
00415DED MOV DWORD PTR DS:[4CEA3C],EDX
00415DF3 XOR ECX,ECX
00415DF5 CMP ECX,5
00415DF8 JGE SHORT EKD5_918.00415E1C
00415DFA MOV DWORD PTR SS:[EBP-8],ECX
00415DFD PUSH 39
00415DFF MOV ECX,DWORD PTR SS:[EBP+8]
00415E02 CALL EKD5_918.004183F7
00415E07 MOV ECX,DWORD PTR SS:[EBP-8]
00415E0A MOV EDX,DWORD PTR DS:[4CEA7C]
00415E10 ADD EDX,ECX
00415E12 MOV DWORD PTR DS:[EDX*4+4CEA40],EAX
00415E19 INC ECX
00415E1A JMP SHORT EKD5_918.00415DF5
00415E1C INC EDX
00415E1D CMP EDX,0F
00415E20 NOP
00415E21 NOP
00415E22 NOP
00415E23 JMP EKD5_918.00409102
|