void encrypt_chars(int length)
{
char temp_char;
for (int i = 0; i < length; i++)
{
temp_char = OChars[i];
__asm {
push eax
push ecx
movzx ecx, temp_char
call encrypt_nn
mov temp_char, al
pop ecx
pop eax
}
EChars[i] = temp_char;
}
return;
__asm {
encrypt_nn:
mov eax, ecx
inc eax
ret
}
暗号化部は結構ですが、私は解読にコードをコピーして貼り付けるだろうと思ったし、代わりにそれが戻ってデータを復号なるように、私は、値をデクリメントうインクリメントのC++の暗号化と復号化
//---------------------------------------------------------------------------------------------------------------
//----------------- DECRYPTION ROUTINES -------------------------------------------------------------------------
//
void decrypt_chars(int length)
{
char temp_char;
for (int i = 0; i < length; i--)
{
temp_char = OChars[i];
__asm {
push eax
push ecx
movzx ecx, temp_char
call encrypt_nn
mov temp_char, al
pop ecx
pop eax
}
EChars[i] = temp_char;
}
return;
}
これはアセンブリ言語ではなく、C++ –
あなたの質問がありますか? –
基本的には、配列から文字を取り出し、1だけインクリメントし、最後の半分を配列に戻します。それは非常に優れた暗号化ではありません。基本的にあなたはecxをdecしなければならないだろうし、あなたはチャーバックを持っていただろう[編集:これは "cesarの暗号化"ではない?] – clockw0rk