能力值:
( LV2,RANK:10 )
|
-
-
2 楼
谢谢下面2位大神
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
谢谢下面2位大神
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
加密和解密算法是一样的
#include <stdio.h>
#include <windows.h>//BYTE
BYTE Encode(BYTE AL)
{
//BYTE AL = 0;//输入
BYTE AH = 0;
AL = ~AL;
AH = AL<<4;
AH = AH|(AL>>4);
return AH;
}
BYTE Decode(BYTE AH)
{
BYTE AL = 0;
AL = AH<<4;
AL = AL|(AH>>4);
AL = ~AL;
return AL;
}
int main(int c,char *v[])
{
printf("%X->%X\n",0x89,Encode(0x89));
printf("%X->%X\n",0x67,Decode(0x67));
printf("%X->%X\n",0x67,Encode(0x67));
}
|
能力值:
( LV13,RANK:540 )
|
-
-
6 楼
刚把代码又重新研究了一下,感觉还有点意思,又正好这段时间在研究汇编,在朋友的帮助下,自己用汇编也写了一个,用两种方法表示一个:纯汇编和内联汇编
纯汇编,代码如下:
.386
.model flat,stdcall
option casemap:none
include windows.inc
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
.data
szFormat db '%x->%x',0
szData1 db 67H
szData2 db 89H
szCaption1 db '将0x67加密后得',0
szCaption2 db '将0x89解密后得',0
.code
_EnCode proc @AL:BYTE
LOCAL @szOut
mov al, @AL
mov ah, 0
not al
mov bl, al
shl bl, 4
mov ah, bl
shr al, 4
or ah, al
movzx eax,ah
movzx ebx,szData1
invoke wsprintf,addr @szOut,addr szFormat,ebx,eax
invoke MessageBox,NULL,addr @szOut,addr szCaption1,MB_OK
ret
_EnCode endp
_DeCode proc @AH:BYTE
LOCAL @szOut
mov ah,@AH
mov bh,ah
shl bh,4
mov al,bh
shr ah,4
or al,ah
not al
movzx eax,al
movzx ebx,szData2
invoke wsprintf,addr @szOut,addr szFormat,ebx,eax
invoke MessageBox,NULL,addr @szOut,addr szCaption2,MB_OK
ret
_DeCode endp
start:
invoke _EnCode,szData1
invoke _DeCode,szData2
ret
end start
内联汇编代码如下:
#include <stdio.h>
#include <windows.h>
BYTE Encode (BYTE x)
{
BYTE y = 0;
__asm
{
mov al, x
mov ah, 0
not al
mov bl, al
shl bl, 4
mov ah, bl
shr al, 4
or ah, al
mov y, ah
}
return y;
}
BYTE Decode (BYTE a)
{
BYTE b = 0;
__asm
{
mov ah,a
mov bh,ah
shl bh,4
mov al,bh
shr ah,4
or al,ah
not al
mov b,al
}
return b;
}
void main(int c,char* v[])
{
printf("Encrypt 0x67!");
printf("\n");
printf("%x->%x",0x67,Encode(0x67));
printf("\n");
printf("Decrypt 0x89!");
printf("\n");
printf("%x->%x",0x89,Decode(0x89));
printf("\n");
}
两段代码分别在VC6.0和RadASM下编译通过!!
其实只要有算法,用那种语方实现都只是语法的问题,代码核心部分和LS差不多,写下了,只是为以后复习做准备,呵呵~~其实汇编语言真的很好,用处很大,学好的汇编再去学其它的语言,一定会事半功倍的,希望大家都能牢牢掌握~~
|