汇编代码分析:循环操作及数组元素修改
.text:00D015BB loc_D015BB: ; CODE XREF: use_use_up_xor_data+92\u001bj\n.text:00D015BB 000 mov edx, i\n.text:00D015C1 000 add edx, 1\n.text:00D015C4 000 mov i, edx\n.text:00D015CA\n.text:00D015CA loc_D015CA: ; CODE XREF: use_use_up_xor_data+59\u001bj\n.text:00D015CA 000 cmp i, 40\n.text:00D015D1 000 jge short locret_D015F4\n.text:00D015D3 000 mov eax, i\n.text:00D015D8 000 mov ecx, keydata[eax4]\n.text:00D015DF 000 sub ecx, i\n.text:00D015E5 000 mov edx, i\n.text:00D015EB 000 mov keydata[edx4], ecx\n.text:00D015F2 000 jmp short loc_D015BB\n.loc_D015BB:\n mov edx, i ; 将i的值存入edx寄存器\n add edx, 1 ; edx = edx + 1\n mov i, edx ; 将edx寄存器的值存入i变量\n\n.loc_D015CA:\n cmp i, 40 ; 比较i和40的值\n jge short locret_D015F4 ; 如果i大于等于40,则跳转到locret_D015F4\n\n mov eax, i ; 将i的值存入eax寄存器\n mov ecx, keydata[eax4] ; 将keydata[eax4]的值存入ecx寄存器\n sub ecx, i ; ecx = ecx - i\n mov edx, i ; 将i的值存入edx寄存器\n mov keydata[edx4], ecx ; 将ecx寄存器的值存入keydata[edx4]\n jmp short loc_D015BB ; 无条件跳转到loc_D015BB
原文地址: https://www.cveoy.top/t/topic/pXZp 著作权归作者所有。请勿转载和采集!