戏++ 发表于 2013-11-7 10:25:40

贴了一段汇编,不太明白

这是一个c++写的dll中的一个函数,我这个是debug版
由于没有源代码,我用(vs2003)进这个函数里面,看看运行情况
这是一个编码的解码函数,通过调试后,解码的算法大致了解
问题一
00171D87xor         cl,0AAh
中的0AAh,这个值是怎么来的呢,是程序里面写死的吗


问题二
看这一句0171DA4imul      cl,我通过调试发现是将al*cl得到的值赋给al   
为啥不是操作bl呢

附加
有时间的朋友,最好帮我这段代码,注释下,我是初学者,谢谢,感激!!!


00171D80push      esi
00171D81mov         esi,dword ptr
00171D85mov         cl,byte ptr
00171D87xor         cl,0AAh
00171D8Apush      edi
00171D8Bmov         di,word ptr
00171D90mov         byte ptr ,cl
00171D92mov         ecx,1
00171D97cmp         di,cx
00171D9Ajbe         00171DB2
00171D9Clea         edx,
00171D9Fpush      ebx
00171DA0mov         al,byte ptr
00171DA2mov         bl,byte ptr
00171DA4imul      cl   
00171DA6xor         bl,al
00171DA8inc         ecx
00171DA9mov         byte ptr ,bl
00171DABinc         edx
00171DACcmp         cx,di
00171DAFjb          00171DA0
00171DB1pop         ebx
00171DB2pop         edi
00171DB3pop         esi
00171DB4ret            

四季明丶 发表于 2013-11-9 01:23:48

第10章后面讲到第二个问题,你可以去看看
页: [1]
查看完整版本: 贴了一段汇编,不太明白