; cmp edx,10
; jae internal_error
push ebx ecx
push eax
mov ebx,eax
mov ecx,edx
shld edx,eax,2
sub ebx,edx
sbb ecx,0
mov eax,ebx
mov ebx,1999999Ah
mul ebx
mov eax,ecx
imul eax,ebx
add eax,edx
pop edx
imul ecx,eax,10
sub edx,ecx
cmp edx,10
jb somewhere
sub edx,10
inc eax
pop ecx ebx
retn
由于汇编语言的本质,在较高的层次上并不能立即看出“该代码实际上是做什么的”。对我来说,理解这一点的过程是真正的“逆向工程”,但不一定要应用到反汇编程序中读取,它也可能只是别人的汇编程序源代码。实际上,有时在没有IDA Pro或Binary Ninja的帮助下分解以HLL编写的二进制文件的情况下,以汇编形式编写的逆向工程程序集会更困难。
#1 楼
我的策略是:不要为使用反编译器感到羞耻
不要花时间在理解每条指令上。分析代码使用各种输入数据给出的结果是一种更快地了解函数整体功能的方法。
google搜索“ magic constant 0x1999999A”,并查看第四个结果
启用自动注释IDA
评论
推ebx ecx ??是那个错字@blabb不,这不是反汇编程序,它是平面汇编程序。