入栈稍微复杂
004DD8A0 55 PUSH EBP
004DD8A1 8BEC MOV EBP,ESP
004DD8A3 60 PUSHAD
004DD8A4 A1 009F4D00 MOV EAX,DWORD PTR DS:[4D9F00]
004DD8A9 3D 449F4D00 CMP EAX,Ekd5.004D9F44
004DD8AE 73 08 JNB SHORT Ekd5.004DD8B8
由于空间大小限制 所以这个CMP 用于防止过界
004DD8B0 8038 00 CMP BYTE PTR DS:[EAX],0
004DD8B3 74 4B JE SHORT Ekd5.004DD900
找到空位置
004DD8B5 40 INC EAX
004DD8B6 ^ EB F1 JMP SHORT Ekd5.004DD8A9
004DD8B8 B8 049F4D00 MOV EAX,Ekd5.004D9F04
004DD8BD 8038 00 CMP BYTE PTR DS:[EAX],0
004DD8C0 74 03 JE SHORT Ekd5.004DD8C5
004DD8C2 40 INC EAX
004DD8C3 ^ EB F8 JMP SHORT Ekd5.004DD8BD
004DD8C5 40 INC EAX
从这里开始前移
004DD8C6 BA 049F4D00 MOV EDX,Ekd5.004D9F04
004DD8CB 3D 609F4D00 CMP EAX,Ekd5.004D9F60
004DD8D0 73 08 JNB SHORT Ekd5.004DD8DA
004DD8D2 8A08 MOV CL,BYTE PTR DS:[EAX]
004DD8D4 880A MOV BYTE PTR DS:[EDX],CL
004DD8D6 40 INC EAX
004DD8D7 42 INC EDX
004DD8D8 ^ EB F1 JMP SHORT Ekd5.004DD8CB
往前面复制
004DD8DA 81FA 609F4D00 CMP EDX,Ekd5.004D9F60
004DD8E0 73 06 JNB SHORT Ekd5.004DD8E8
004DD8E2 C602 00 MOV BYTE PTR DS:[EDX],0
后面全部填充00
004DD8E5 42 INC EDX
004DD8E6 ^ EB F2 JMP SHORT Ekd5.004DD8DA
004DD8E8 8038 00 CMP BYTE PTR DS:[EAX],0
004DD8EB 75 03 JNZ SHORT Ekd5.004DD8F0
004DD8ED 48 DEC EAX
004DD8EE ^ EB F8 JMP SHORT Ekd5.004DD8E8
004DD8F0 8038 00 CMP BYTE PTR DS:[EAX],0
004DD8F3 74 03 JE SHORT Ekd5.004DD8F8
004DD8F5 48 DEC EAX
004DD8F6 ^ EB F8 JMP SHORT Ekd5.004DD8F0
004DD8F8 40 INC EAX
004DD8F9 A3 009F4D00 MOV DWORD PTR DS:[4D9F00],EAX
修改记录
004DD8FE ^ EB A4 JMP SHORT Ekd5.004DD8A4
004DD900 40 INC EAX
004DD901 A3 009F4D00 MOV DWORD PTR DS:[4D9F00],EAX
004DD906 68 06904D00 PUSH Ekd5.004D9006 ; ASCII "JINYONG_000.EEX"
004DD90B 50 PUSH EAX
004DD90C 6A 00 PUSH 0
004DD90E E8 4D5EFFFF CALL Ekd5.004D3760
复制信息
004DD913 33DB XOR EBX,EBX
004DD915 83FB 06 CMP EBX,6
004DD918 73 38 JNB SHORT Ekd5.004DD952
004DD91A 8B11 MOV EDX,DWORD PTR DS:[ECX]
004DD91C 33C0 XOR EAX,EAX
004DD91E 83F8 04 CMP EAX,4
004DD921 73 15 JNB SHORT Ekd5.004DD938
004DD923 80FA 61 CMP DL,61 字母小写 a
004DD926 72 08 JB SHORT Ekd5.004DD930
004DD928 80FA 7A CMP DL,7A 字母小写z
004DD92B 77 03 JA SHORT Ekd5.004DD930
004DD92D 80EA 20 SUB DL,20 这就变成大写字母
004DD930 8ADA MOV BL,DL
004DD932 C1CA 08 ROR EDX,8
004DD935 40 INC EAX
004DD936 ^ EB E6 JMP SHORT Ekd5.004DD91E
004DD938 81FA 2E454558 CMP EDX,5845452E
这个数值其实是文字 .EEX
004DD93E 74 04 JE SHORT Ekd5.004DD944
004DD940 43 INC EBX
004DD941 49 DEC ECX
004DD942 ^ EB D1 JMP SHORT Ekd5.004DD915
004DD944 C601 FF MOV BYTE PTR DS:[ECX],0FF
检查末尾的0FF这个标记 之前说了 压缩文件后缀
004DD947 41 INC ECX
004DD948 8039 00 CMP BYTE PTR DS:[ECX],0
004DD94B 74 05 JE SHORT Ekd5.004DD952
004DD94D C601 00 MOV BYTE PTR DS:[ECX],0
004DD950 ^ EB F5 JMP SHORT Ekd5.004DD947
004DD952 61 POPAD
004DD953 8BE5 MOV ESP,EBP
004DD955 5D POP EBP
004DD956 C3 RETN
|