|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
这是一个c++写的dll中的一个函数,我这个是debug版
由于没有源代码,我用(vs2003)进这个函数里面,看看运行情况
这是一个编码的解码函数,通过调试后,解码的算法大致了解
问题一
00171D87 xor cl,0AAh
中的0AAh,这个值是怎么来的呢,是程序里面写死的吗
问题二
看这一句 0171DA4 imul cl ,我通过调试发现是将al*cl得到的值赋给al
为啥不是操作bl呢
附加
有时间的朋友,最好帮我这段代码,注释下,我是初学者,谢谢,感激!!!
00171D80 push esi
00171D81 mov esi,dword ptr [esp+8]
00171D85 mov cl,byte ptr [esi]
00171D87 xor cl,0AAh
00171D8A push edi
00171D8B mov di,word ptr [esp+10h]
00171D90 mov byte ptr [esi],cl
00171D92 mov ecx,1
00171D97 cmp di,cx
00171D9A jbe 00171DB2
00171D9C lea edx,[esi+1]
00171D9F push ebx
00171DA0 mov al,byte ptr [esi]
00171DA2 mov bl,byte ptr [edx]
00171DA4 imul cl
00171DA6 xor bl,al
00171DA8 inc ecx
00171DA9 mov byte ptr [edx],bl
00171DAB inc edx
00171DAC cmp cx,di
00171DAF jb 00171DA0
00171DB1 pop ebx
00171DB2 pop edi
00171DB3 pop esi
00171DB4 ret
|
|