汇编
zero1994
这个作者很懒,什么都没留下…
展开
-
输入一个字符,字母输出‘c’,数字输出本身,回车结束(8086汇编)
ASSUME CS:CODES CODES SEGMENT START: mov ah,0 int 16hcmp al,0dh ;如果输入的是enter键退出 je overcmp al,’1’ ;在1-9之间,则显示其值,之后等待新字符输入 jb next1 cmp al,’9’ ja next原创 2015-04-20 11:20:48 · 2808 阅读 · 0 评论 -
输入两个一位十六进制,输出其乘积(8086汇编程序)
ASSUME CS:CODES CODES SEGMENT START: mov ah,01h ;输入第一个数 int 21h mov bl,almov ah,01h ;输入第二个数int 21hcmp bl,'9' ;判断是1-9还是A-Fja ne1sub bl,'0's: cmp al,’9’ ja ne2 sub al,原创 2015-04-20 11:11:45 · 2691 阅读 · 1 评论 -
手写一个栈溢出程序(深入版)
上一篇文章里写到了一个C语言写的栈溢出程序,通过上一篇文档的内容,找到了溢出的位置,现在便在原来的基础上实现自己代码的写入,实现效果如下图: 载入OD,来到上一篇文章的溢出位置,如图所示:,现在我们可以构造文本文档的内容,使其覆盖掉返回地址,覆盖成为我们需要的地址。 首先通过OD找到printf()函数的汇编调用方式,本机为call 00401470, 1.用OD找到一块空的内存区域,加入字符原创 2015-06-01 14:24:48 · 625 阅读 · 0 评论 -
手写一个栈溢出程序(入门版)
逆向过程: 中文搜索,直接来到验证密码处,通过跳转可以判断比较上面函数的返回值来进行判断是否注册成功 上面看那个call,跟入:看到给一个变量赋值为一,这个call的返回值同样是local1地址的内容,下面并没有对local1地址的写入操作,可知函数返回值永远为1.strcpy函数复制一个字符串到数组,可以在堆栈的内容看到 第一个变量,第二个数组,因为第二个数组定义的不够大,在第二个数组存原创 2015-04-27 20:20:50 · 1913 阅读 · 0 评论 -
自己设计一个时钟程序并实现破解
自己写了一个时钟程序,用来模拟时间类型软件的破解,先从基础的运行时间开始,程序运行界面如图:十秒后程序自动退出 破解思路:查看程序导入表函数(有N多个程序可以查看,以PETOOLS为例),如图所示: 只找到一个和时间有关的函数GetSystemTimeAsFileTime。我们可以通过od自带的api断点,去断下GetSystemTimeAsFileTime这个函数, Enter进入,原创 2015-06-01 15:08:53 · 1878 阅读 · 0 评论