用汇编做一个字符串的加密解密

黄家驹你看 2015-11-03 09:55:16
用汇编做一个字符串的加密解密 字符串可以定义成静态的数据段 也可以从键盘动态输入 尽量加上输出 输出加密后的字符 在输出解密后的字符与自己的作比较 .妹子求码
...全文
2031 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiping9412 2017-06-25
  • 打赏
  • 举报
回复
你如果不想回复你可以不回复,没必要在这教唆别人也不回复
大熊猫侯佩 2016-02-18
  • 打赏
  • 举报
回复
以后上来直接问代码的,不管是不是作业贴,一律不回复,也希望大家不要直接给代码,助长不动脑的歪风!!!

尤其是结帖率为0的帖主!!!
天空海阔66 2016-01-01
  • 打赏
  • 举报
回复

assume cs:code,ds:data,ss:stack
data segment
  db 'welcome to masm!',0
  db 'miwen is:',0
  db 'jiami is:',0
  db 32 dup(0)
data ends

stack segment
dw 8 dup(0)
stack ends

code segment
start:mov dh,8	;显示在屏暮的第八行
	mov dl,3;--------------3列
	mov cl,2;绿字
	mov ax,data
	mov ds,ax
	mov ax,stack 
	mov ss,ax
	mov sp,16
	mov si,17	;要显示的字符首地址
	call show_str
	mov si,0
	mov dh,8
	mov dl,13
	call show_str
	mov si,27
	mov dh,9
	mov dl,3
	call show_str
	mov si,0
	mov cx,0
	mov di,37
sjiami:
	mov al,[si]
	mov cl,al
	jcxz okjiami
	inc al
	mov byte ptr [di],al
	inc si
	inc di
	jmp short sjiami
okjiami:
	mov si,37
	mov dh,9
	mov dl,13
	mov cl,2;绿字
	call show_str
	mov ax,4c00h
	int 21h
show_str:
	push ax
	push bx
	push cx
	push dx
	push di
	push si
	mov ax,0b800h  ;显存的第一行段地址
	mov es,ax
	mov di,si   ;
	mov ah,0
	push dx
	mov al,dh
	mov bx,160  ;显存中每行160个字节
	mul bx
	mov bx,ax   ;bx为要定位的第8行的地址
	mov al,2
	mov ah,0
	pop dx
	mul dl
	mov ah,0
	mov si,ax   ;si为要定位的第3列的地址
	mov ch,0
	mov al,cl
s:mov cl,ds:[di]
	jcxz ok   ;判断是否为字符串结尾‘0’
	mov es:[bx].[si-2],cl  ;字符串中的字符送往显存
	mov es:[bx].[si-1],al   ;属性送往显存
	inc di
	add si,2
	jmp short s
ok:
pop si
pop di
pop dx
pop cx
pop bx
pop ax
ret
code ends
end start
wzj3514 2015-11-04
  • 打赏
  • 举报
回复
有需求请联系 qq 114122360 专业软件开发
天空海阔66 2015-11-04
  • 打赏
  • 举报
回复
先说一下简单的思路吧,首先一个字符串中每个字符加1作为加密算法,例如:当输入abc时,加密后为bcd.解密时为加密后的字符串中每个字符减1,即abc.
第1章 走进数据解密  1.1 数据解密是什么   1.1.1 代码逆向工程和数据逆向工程  1.2 数据解密的方法   1.2.1 黑盒分析法   1.2.2 白盒分析法   1.2.3 黑盒分析法与白盒分析法的比较  1.3 万能的汇编语言   1.3.1 为什么选择汇编语言   1.3.2 16位和32位的80x86汇编语言  1.4 通用寄存器   1.4.1 EAX、EBX、ECX和EDX寄存器   1.4.2 EAX、EBX、ECX和EDX寄存器的用途  1.5 变址寄存器   1.5.1 ESI和EDI寄存器   1.5.2 ESI和EDI寄存器的用途  1.6 指针寄存器   1.6.1 EBP和ESP寄存器   1.6.2 EBP和ESP寄存器的用途  1.7 标志寄存器   1.7.1 EFLAGS寄存器   1.7.2 EFLAGS寄存器的用途  1.8 灵活的寻址方式   1.8.1 寻址方式的分类   1.8.2 高级语言中的数据结构和80386寻址方式的关系  1.9 80386指令   1.9.1 Intel格式和AT&T格式的指令   1.9.2 数据传送指令MOV、XCHG、PUSH、POP   1.9.3 地址传送指令   1.9.4 算数运算指令   1.9.5 逻辑运算指令   1.9.6 移位指令   1.9.7 条件转移指令   1.9.8 函数调用指令  1.10 函数调用约定   1.10.1 3种常用的调用约定   1.10.2 调用约定的参数传递顺序  1.11 字节码   1.11.1 代码和数据的区别   1.11.2 PE文件 第2章 识别汇编代码的高级模式  2.1 汇编中的常量、指针和变量——C语言中的常量、指针和变量   2.1.1 常量、指针和变量的定义   2.1.2 常量、指针和变量的实现机制  2.2 汇编中的字符串——C语言中的字符串   …… 第3章 资源文件简介 第4章 揭秘文件数据基础——0和1 第5章 媒体数据格式解析 第6章 数据加密vs数据解密 第7章 神奇的数据压缩算法 第8章 分析打包数据存储结构的模式 第9章 将游戏窗口化
内容简介   《揭秘数据解密的关键技术》[1]是一本以游戏资源文件格式为研究对象的数据逆向工程的技术书籍,主要讲解如何分析和研究自定义文件格式的数据结构。《揭秘数据解密的关键技术》内容包含反汇编的阅读和理解,数据在计算机中的存储原理,常用媒体格式的解析,加密和解密的识别和分析,数据压缩的特征识别,打包文件格式的识别和游戏窗口化的方法。《揭秘数据解密的关键技术》对每一个问题都给出了详细和完整的分析过程,力求用最通俗和简单的方法让读者学会分析和研究自定义文件格式。《揭秘数据解密的关键技术》适合对数据解密、游戏资源提取、软件逆向工程感兴趣的读者以及广大编程爱好者阅读。 编辑本段作者简介   刘颖东,网名“小猫”,擅长逆向工程与游戏开发,从接触反汇编开始便一发不可收拾,对操作系统底层控制有强烈的征服欲望,现致力于嵌入式操作系统的开发。 编辑本段编辑推荐   《揭秘数据解密的关键技术》告诉您:。《揭秘数据解密的关键技术》内容包含反汇编的阅读和理解,数据在计算机中的存储原理,常用媒体格式的解析,加密和解密的识别和分析,数据压缩的特征识别,打包文件格式的识别和游戏窗口化的方法。《揭秘数据解密的关键技术》对每一个问题都给出了详细和完整的分析过程,力求用最通俗和简单的方法让读者学会分析和研究自定义文件格式 编辑本段目录   第1章 走进数据解密   1.1 数据解密是什么   1.1.1 代码逆向工程和数据逆向工程   1.2 数据解密的方法   1.2.1 黑盒分析法   1.2.2 白盒分析法   1.2.3 黑盒分析法与白盒分析法的比较   1.3 万能的汇编语言   1.3.1 为什么选择汇编语言   1.3.2 16位和32位的80x86汇编语言   1.4 通用寄存器   1.4.1 EAX、EBX、ECX和EDX寄存器   1.4.2 EAX、EBX、ECX和EDX寄存器的用途   1.5 变址寄存器   1.5.1 ESI和EDI寄存器   1.5.2 ESI和EDI寄存器的用途   1.6 指针寄存器   1.6.1 EBP和ESP寄存器   1.6.2 EBP和ESP寄存器的用途   1.7 标志寄存器   1.7.1 EFLAGS寄存器   1.7.2 EFLAGS寄存器的用途   1.8 灵活的寻址方式   1.8.1 寻址方式的分类   1.8.2 高级语言中的数据结构和80386寻址方式的关系   1.9 80386指令   1.9.1 Intel格式和AT&T格式的指令   1.9.2 数据传送指令MOV、XCHG、PUSH、POP   1.9.3 地址传送指令   1.9.4 算数运算指令   1.9.5 逻辑运算指令   1.9.6 移位指令   1.9.7 条件转移指令   1.9.8 函数调用指令   1.1 0函数调用约定   1.1 0.1 3种常用的调用约定   1.1 0.2 调用约定的参数传递顺序   1.1 1字节码   1.1 1.1 代码和数据的区别   1.1 1.2 PE文件   第2章 识别汇编代码的高级模式   2.1 汇编中的常量、指针和变量——C语言中的常量、指针和变量   2.1.1 常量、指针和变量的定义   2.1.2 常量、指针和变量的实现机制   2.2 汇编中的字符串——C语言中的字符串   2.2.1 字符串的定义   2.2.2 字符串的实现机制   2.3 汇编中的数组——C语言中的数组   2.3.1 数组的定义   2.3.2 数组的实现机制   2.3.3 二维数组的实现机制   2.4 汇编中的结构体——C语言中的结构体   2.4.1 结构体的定义   2.4.2 结构体的实现机制   2.5 汇编中的条件分支语句——C语言中的条件分支语句   2.5.1 条件分支语句的定义   2.5.2 if的实现机制   2.5.3 包含复杂表达式的if语句的实现机制   2.5.4 switch语句的实现机制   2.6 汇编中的循环——C语言中的循环   2.6.1 循环的定义   2.6.2 while语句的实现机制   2.6.3 do...while语句实现机制   2.6.4 for语句的实现机制。。。。。。。

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧