如何解密正方教务系统数据库连接密码

如何解密正方教务系统数据库连接密码,第1张

驱动汉化版的系统碟。点击“windows用户密码破解”不用管显示器上的。在键盘上按“2”然后回车 每次点击后会出现新一个面板。不管他。继续按“0”然后回车 按“Y”然后回车 点击“ctrl”加“Alt”和“Del”即可

C语言设计一个简单的加密解密程序如下:

加密程序代码:

#include<stdio.h>

main()

{

char c,filename[20]

FILE *fp1,*fp2

printf("请输入待加密的文件名:\n")

scanf("%s",filename)

fp1=fopen(filename,"r")

fp2=fopen("miwen.txt","w")

do

{

c=fgetc(fp1)

if(c>=32&&c<=126)

{

c=c-32

c=126-c

}

if(c!=-1)

fprintf(fp2,"%c",c)

}

while(c!=-1)

}

解密程序代码:

#include<stdio.h>

#include<string.h>

main()

{

char c,filename[20]

char yanzhengma[20]

FILE *fp1,*fp2

printf("请输入待解密文件名:\n")

scanf("%s",filename)

printf("请输入验证码:\n")

scanf("%s",yanzhengma)

if(strcmp(yanzhengma,"shan")==0)

{

fp1=fopen(filename,"r")

fp2=fopen("yuanwen.txt","w")

do

{

c=fgetc(fp1)

if(c>=32&&c<=126)

{

c=126-c

c=32+c

}

if(c!=-1)

fprintf(fp2,"%c",c)

}

while(c!=-1)

}

else

{

printf("验证码错误!请重新输入:\n")

scanf("%s",filename)

}

}

本程序通过编译,运行正确

Code Segment

Assume CS:Code,DS:Code

-----------------------------------------

功能:显示指定地址(Str_Addr)的字符

入口:

Str_Addr=字符串地址(要求在数据段)

用法: Output Str_Addr

用法举例:Output PromptStr

Output MACRO Str_Addr

push dx

lea dx,Str_Addr

mov ah,9

int 21h

pop dx

EndM

-----------------------------------------

功能:打开指定路径下的文件。若打开成功,保存文件代号,设置进位标志;

否则,建立文件,保存文件代号,清进位标志

入口参数:dx=文件名地址,bx=文件代号保存地址

Open_File Proc Near

mov ax,3d02h 以读写方式打开文件

int 21h

jc @@Error

mov [bx],ax 成功打开,保存文件代号

stc 设置进位标志

ret

@@Error: Output Open_Error

xor cx,cx 新建文件属性

Create_File:mov ah,3ch 建立文件

int 21h

jc Create_File 建立不成功,尝试再建

mov [bx],ax 成功建立,保存文件代号

clc 清进位标志

ret

Open_File EndP

-----------------------------------------

功能:对字符串缓冲区中的内容逐个字符加密

入口参数:si=字符串地址,cx=字符数

Encode_Str Proc Near

push si

push cx

lea di,Handle_File

mov al,[di][88] 读取密钥

@@Encoding: xor byte ptr [si],al 异或,第一步加密

push cx

mov cx,188

rol byte ptr [si],cl 循环左移188位,第二步加密

pop cx

inc si 下一个字符地址

loop @@Encoding 处理下一个字符

pop cx

pop si

ret

Encode_Str EndP

-----------------------------------------

功能:对字符串缓冲区中的内容逐个字符加密

入口参数:si=字符串地址,cx=字符数

Uncode_Str Proc Near

push si

push cx

lea di,Handle_File

mov al,[di][88] 读取密钥

@@Uncoding: push cx

mov cx,188

ror byte ptr [si],cl 循环右移188位,第一步解密

pop cx

xor byte ptr [si],al 异或,第二步解密

inc si 下一个字符地址

loop @@Uncoding 处理下一个字符

pop cx

pop si

ret

Uncode_Str EndP

-----------------------------------------

Handle_File dw ?,?,? 文件代号

File_Name1 db 'c:\masm\rory00.txt',0 未加密的文本文件

File_Name2 db 'c:\masm\rory01.txt',0 加密后的文本文件

File_Name3 db 'c:\masm\rory02.txt',0 解密后的文本文件

Open_Error db 'Open file error,creat a new file.',13,10,13,10,7,'$'

Input_New db 'Input the new information:',13,10,'$'

Press_Key db 13,10,13,10,'The Encode and Uncode have been completed.',7

db 13,10,13,10,'Press any key to exit...$'

Start: push cs

pop ds

push cs

pop es 使数据段、附加段与代码段同段

-----------------------------------------

打开或建立三个文件

lea dx,Buffer 文本内容处理缓冲区

mov cx,0ffc0h 预留32个字的堆栈空间

sub cx,dx 设置读写一次文件内容的字节数

mov bp,cx 暂存

lea dx,File_Name2 文件名地址

lea bx,Handle_File[2] 文件代号保存地址

call Open_File 打开指定路径下的文件。若打开成功,保存文件代号;否则,建立文件,保存文件代号

lea dx,File_Name3 文件名地址

lea bx,Handle_File[4] 文件代号保存地址

call Open_File

lea ax,@@jump000

push ax

call @@Locate_01

@@Locate_00:lea dx,File_Name1 文件名地址

lea bx,Handle_File 文件代号保存地址

call Open_File

jc Read_File

-----------------------------------------

若是新建文件,输入文件内容,实施加密,写到另一个文件

Input_Str: Output Input_New 提示输入新信息

lea dx,Buffer 文本内容处理缓冲区

mov ah,0ah 键盘输入字符串

int 21h

lea si,Buffer[1] 实际输入的字符个数地址

lodsb 读取实际输入的字符数

test al,0ffh

jz Input_Str 若直接回车,未输入任何字符,再次提示输入新信息

mov dx,si 数据缓冲区地址

mov cl,al 实际输入的字符数

xor ch,ch

mov bx,Handle_File 读取未加密的文本文件代号

Write_Uncod:mov ah,40h

int 21h

jc Write_Uncod 写入失败,尝试再写

call Encode_Str 逐个字符加密

mov dx,si 数据缓冲区地址,要写入的字符数已在cx中

mov bx,Handle_File[2] 文件代号

Write_Coded:mov ah,40h

int 21h

jc Write_Coded 写入失败,尝试再写

jmp @@Uncode

@@Locate_01:pop ax

ret

-----------------------------------------

若成功打开文件,读取文件内容,实施加密,写到另一个文件

Read_File: lea dx,Buffer 文本内容处理缓冲区

mov cx,bp

mov bx,Handle_File 读取未加密的文本文件代号

mov ah,3fh 读文件内容

int 21h

jc Read_File 读文件失败,尝试再读

test ax,0ffffh

jz @@Uncode 若实际读取的字节数为0,结束读写 *** 作

lea si,Buffer

mov cx,ax

call Encode_Str 逐个字符加密

mov dx,si 数据缓冲区地址,要写入的字符数已在cx中

mov bx,Handle_File[2] 读取目标文件代号

Write_File: mov ah,40h 写文件

int 21h

jc Write_File 写文件失败,尝试再写

jmp Read_File

-----------------------------------------

修改子程序Encode_Str和Encode_Str中的循环移位次数

@@jump000: mov byte ptr Encode_Str[13],6

mov byte ptr Uncode_Str[11],6

lea ax,@@Locate_00

push ax

call @@Locate_01

-----------------------------------------

将加密完的内容解密,写入第三个文本文件

@@Uncode: xor dx,dx

xor cx,cx

Loca_Seek1: mov bx,Handle_File[4] 读取解密后的文本文件代号

mov ax,4200h 移动文件指针至文件头

int 21h

jc Loca_Seek1

Loca_Seek2: mov bx,Handle_File[2] 读取加密后的文本文件代号

mov ax,4200h 移动文件指针至文件头

int 21h

jc Loca_Seek2

lea dx,Buffer 文本内容处理缓冲区

Read_File1: mov cx,bp

mov bx,Handle_File[2] 读取加密后的文本文件代号

mov ah,3fh 读文件内容

int 21h

jc Read_File1 读文件失败,尝试再读

test ax,0ffffh

jz Close_File1 若实际读取的字节数为0,结束读写 *** 作,关闭文件

lea si,Buffer

mov cx,ax

call Uncode_Str 逐个字符解密

mov dx,si 数据缓冲区地址,要写入的字符数已在cx中

mov bx,Handle_File[4] 读取解密后的文本文件代号

Write_File1:mov ah,40h 写文件

int 21h

jc Write_File1 写文件失败,尝试再写

jmp Read_File1

Close_File1:mov bx,Handle_File 读取未加密的文本文件代号

mov ah,3eh 关闭文件

int 21h

jc Close_File1

Close_File2:mov bx,Handle_File[2] 读取加密后的文本文件代号

mov ah,3eh 关闭文件

int 21h

jc Close_File2

Close_File3:mov bx,Handle_File[4] 读取解密后的文本文件代号

mov ah,3eh 关闭文件

int 21h

jc Close_File3

Output Press_Key 提示 *** 作完成,按任意键结束程序

mov ah,1

int 21h

Exit_Proc: mov ah,4ch 结束程序

int 21h

ALIGN 10h 节对齐

Buffer db 255 文本内容处理缓冲区

Code ENDS

END Start 编译到此结束


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11331740.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存