www.pudn.com > Pckv.zip > V56ASM.ASM
PUBLIC V56 EXTRN PMHHHC:NEAR,XS09SC:NEAR,JGBTBDA:NEAR EXTRN RPJS:BYTE,DLZC:BYTE,FHM:BYTE,ESZC1:WORD EXTRN DPCZF:BYTE,XPCZF:BYTE EXTRN JGBTZF1:BYTE,JGBTZF2:BYTE,JGBTZF3:BYTE EXTRN BOOTQ1:BYTE,BOOTQ2:BYTE,FQSQ:BYTE EXTRN GZW01:WORD,BTESZC:WORD EXTRN XSAXZC:WORD seg_b segment byte public 'data' V56TZMA db 006h,0CDh,013h,0B8h,0D3h,000h,050h,0CBh V56B01 DB 0 V56B02 DB 0 V56W01 DW 0 V56W02 DW 0 V56W03 DW 0 V56ZF1 DB '正在还原被幽灵病毒加密了的硬盘数据……请等待$' seg_b ends ; seg_c segment byte public 'code' assume cs:seg_c , ds:seg_c ; ss:stack_seg_a ; Program Entry Point V56 proc near V56START: PUSH DS POP ES CLD MOV SI,OFFSET BOOTQ1 ADD SI,21H MOV DI,OFFSET V56TZMA MOV CX,8 REPZ CMPSB JZ V56L01 JMP V56END2 V56L01: MOV DL,80H MOV AH,8 INT 13H JNB V56L02 JMP V56DPC V56L02: MOV V56B01,DH AND V56B01,3FH MOV V56B02,CL AND V56B02,3FH MOV AH,DH MOV AL,CL AND AH,0C0H AND AL,0C0H MOV CL,6 SHR AH,CL SHL AX,1 SHL AX,1 MOV AL,CH MOV V56W01,AX MOV AX,BTESZC MOV ES,AX MOV BX,0 MOV SI,OFFSET BOOTQ1 MOV CX,[SI+29H] MOV V56W02,CX MOV CX,[SI+1CH] DEC CX MOV DX,0080H MOV AX,0208H INT 13H JNB V56L03 JMP V56DPC V56L03: MOV AX,ES:[BX+1FEH] CMP AX,0AA55H JZ V56L04 JMP V56JG1 V56L04: MOV DI,1BEH ADD SI,1BEH MOV CX,10H REPZ CMPSB JZ V56L05 JMP V56JG1 V56L05: MOV SI,V56W01 MOV DI,09D1H MOV AX,ES:[DI] MOV V56W03,AX MOV DX,0080H MOV CX,0001H MOV AX,0301H INT 13H JNB V56L13 JMP V56XPC V56L13: MOV DX,OFFSET V56ZF1 CALL XS09SC V56L06: CALL V56ZCXA V56L07: MOV AH,02 PUSH AX INT 13H POP AX JB V56DPC CALL V56ZCXB INC AH PUSH AX INT 13H POP AX JB V56XPC TEST DH,3FH JZ V56L09 DEC DH JMP V56L07 V56L09: CMP SI,V56W02 JA V56L10 JMP V56END0 V56L10: DEC SI JMP V56L06 ; V56END2: MOV FHM,2 MOV XSAXZC,0 JMP V56ZE V56END0: MOV FHM,0 MOV XSAXZC,0 JMP V56ZE ; V56JG1: CALL JGBTBDA JMP V56ZE2 V56DPC: MOV DX,OFFSET DPCZF JMP V56ZE1 V56XPC: MOV DX,OFFSET XPCZF V56ZE1: MOV XSAXZC,DX V56ZE2: MOV FHM,1 V56ZE: PUSH DS POP ES MOV AX,XSAXZC MOV DX,DS RET V56 ENDP ; V56ZCXA PROC NEAR MOV DL,80H MOV AX,SI MOV CH,AL SHL AH,1 SHL AH,1 SHL AH,1 SHL AH,1 MOV DH,AH AND DH,0C0H SHL AH,1 SHL AH,1 MOV CL,AH INC CL OR DH,V56B01 MOV AL,V56B02 RET V56ZCXA ENDP ; V56ZCXB PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX MOV AL,V56B02 MOV BX,0 V56ZB1: MOV CX,0100H MOV DX,V56W03 V56ZB2: XOR ES:[BX],DX INC BX INC BX LOOP V56ZB2 DEC AL JNZ V56ZB1 POP DX POP CX POP BX POP AX RET V56ZCXB ENDP ; seg_c ends end V56START