一、添加字节02
二、
004012D0 66:BA ACD3 MOV DX,0D3AC 初始值D3AC(54188)
.
.
.
aaa:
004012DD 0FB7DA MOVZX EBX,DX
004012E0 0FB7D2 MOVZX EDX,DX
004012E3 C1FB 08 SAR EBX,8 算术右移(即取高位D3) 5b
004012E6 8A08 MOV CL,BYTE PTR DS:[EAX] 读入字节
004012E8 32D9 XOR BL,CL 该字节和bl值异或
004012EA 8818 MOV BYTE PTR DS:[EAX],BL 存储到原位置
004012EC 8A08 MOV CL,BYTE PTR DS:[EAX] 计算的字节存入CL
004012EE 81E1 FF000000 AND ECX,0FF 与FF(取ecx低字节,即cl)
004012F4 03CA ADD ECX,EDX 再ecx和edx相加 d3d8
004012F6 69D1 6DCE0000 IMUL EDX,ECX,0CE6D ecx乘CE6D后存入edx
004012FC 66:81C2 BF58 ADD DX,58BF dx同58BF相加 5bb7
00401301 46 INC ESI 计数
00401302 40 INC EAX 指到下一个字节
00401303 0FB7CE MOVZX ECX,SI
00401306 3B8D B0FDFFFF CMP ECX,DWORD PTR SS:[EBP-250] 如果还在前1024字节之内则跳转到aaa
0040130C ^7C CF JL SHORT JpgToLiz.004012DD 如果不在,则继续
加密流程
i:=d3ac
for ii:=1 to 1024
j:=高位(i)
k:=从文件读入字节
j:=j xor k
save j to 文件
j=j+i
i=j*ce6d+58bf
next