0
一:基础知识
计算机内存运行分配的区域分为3个
程序段区域:不允许写的
数据段区域:静态全局变量是位于数据段并且在程序开始运行的时候被加载
堆栈区域:放置程序的动态的用于计算的局部和临时变量则分配在堆栈里面和在过程调用中压入的返回地
址数据。堆栈是一个先入后出的队列。一般计算机系统堆栈的方向与内存的方向相反。压栈的xx作push= ESP-4,出栈的xx作是pop=ESP+4. 在一次函数调用中,堆栈中将被依次压入:参数,返回地址,EBP。如果函数有局部变量,接下来,就在 堆栈中开辟相应的空间以构造变量。函数执行结束,这些局部变量的内容将被丢失。但是不被清除。在函 数返回的时候,弹出EBP,恢复堆栈到函数调用的地址,弹出返回地址到EIP以继续执行程序。
在C语言程序中,参数的压栈顺序是反向的。比如func(a,b,c)。在参数入栈的时候,是:先压c,再压 b,最后a.在取参数的时候,
指令执行的图例:
指令区域
执行程序区
0 1 2 3
0
4
8 调用100处的函数,参数1(3位),2(10位)
C
10 0 1 2 3
100 执行处理
104
108
10C
110 返回调用 堆栈区域
0 1 2 3
计算机内存运行分配的区域分为3个
程序段区域:不允许写的
数据段区域:静态全局变量是位于数据段并且在程序开始运行的时候被加载
堆栈区域:放置程序的动态的用于计算的局部和临时变量则分配在堆栈里面和在过程调用中压入的返回地
址数据。堆栈是一个先入后出的队列。一般计算机系统堆栈的方向与内存的方向相反。压栈的xx作push= ESP-4,出栈的xx作是pop=ESP+4. 在一次函数调用中,堆栈中将被依次压入:参数,返回地址,EBP。如果函数有局部变量,接下来,就在 堆栈中开辟相应的空间以构造变量。函数执行结束,这些局部变量的内容将被丢失。但是不被清除。在函 数返回的时候,弹出EBP,恢复堆栈到函数调用的地址,弹出返回地址到EIP以继续执行程序。
在C语言程序中,参数的压栈顺序是反向的。比如func(a,b,c)。在参数入栈的时候,是:先压c,再压 b,最后a.在取参数的时候,
指令执行的图例:
指令区域
执行程序区
0 1 2 3
0
4
8 调用100处的函数,参数1(3位),2(10位)
C
10 0 1 2 3
100 执行处理
104
108
10C
110 返回调用 堆栈区域
0 1 2 3
死循环炸弹的编写
在dos下键入debug,进入debug,然后键入下面的汇编代码(分号后是解释):
-a100
0100:mov dl,1 ;将1调入dl
0102:mov ah,2 ;将2H调入ah
0104:int 21 ;调用21H DOS程序
0106:inc dl ;将dl中的数加1
0108:jmp 102 ;回到102程序,既返回"mov ah,2"
两次回车
现在让我们来生成com文件,键入一下指令:
-n盘符程序名 ;n和程序名间没有空格
-rbx ;查看bx寄存器
回车 ;bx为0,不用输入,就回车
-rcx ;查看cx寄存器
:a ;输入程序字节数,a(16进制)就是10字节
-w ;写入程序
好了,现在可以在dos下试试效果了,呵呵,不要打我呀!!!!!!是不是电脑乱叫乱跑呀,哈哈,这是个死循环,现在同时按ctrl+break或ctrl+c可以强制停止的,要是在windows下就用鼠标结束命令提示符就没事了.
现在来解释一下这个程序的实现过程:
把显示字符的ASCII码值调入DL寄存器中,把显示字符的功能号2H调入ah中,执行"int 21"即显示1H的ASCII码,"inc dl"就是将dl中的值加一,"jmp 102"就是跳到"mov ah,2"这个程序段,简单吧,很容易看懂的,这个程序如果再屏蔽掉ctrl,break,c,然后在将窗口最大化,呵呵,那就只能看着自己的"爱机"死循环到死机了,你可以给他取个sexlady的名字,再换个性感的图标,现在就可以用它来炸色狼了.呵呵,今天就讲这么多,下次讲什么呢?讲炸键盘的核心代码吧,嘿嘿.
让你的电脑反复启动-debug应用(二)
在dos下键入debug,进入debug,然后键入下面的汇编代码(分号后是解释):
-a100
0100:mov dl,1 ;将1调入dl
0102:mov ah,2 ;将2H调入ah
0104:int 21 ;调用21H DOS程序
0106:inc dl ;将dl中的数加1
0108:jmp 102 ;回到102程序,既返回"mov ah,2"
两次回车
现在让我们来生成com文件,键入一下指令:
-n盘符程序名 ;n和程序名间没有空格
-rbx ;查看bx寄存器
回车 ;bx为0,不用输入,就回车
-rcx ;查看cx寄存器
:a ;输入程序字节数,a(16进制)就是10字节
-w ;写入程序
好了,现在可以在dos下试试效果了,呵呵,不要打我呀!!!!!!是不是电脑乱叫乱跑呀,哈哈,这是个死循环,现在同时按ctrl+break或ctrl+c可以强制停止的,要是在windows下就用鼠标结束命令提示符就没事了.
现在来解释一下这个程序的实现过程:
把显示字符的ASCII码值调入DL寄存器中,把显示字符的功能号2H调入ah中,执行"int 21"即显示1H的ASCII码,"inc dl"就是将dl中的值加一,"jmp 102"就是跳到"mov ah,2"这个程序段,简单吧,很容易看懂的,这个程序如果再屏蔽掉ctrl,break,c,然后在将窗口最大化,呵呵,那就只能看着自己的"爱机"死循环到死机了,你可以给他取个sexlady的名字,再换个性感的图标,现在就可以用它来炸色狼了.呵呵,今天就讲这么多,下次讲什么呢?讲炸键盘的核心代码吧,嘿嘿.
让你的电脑反复启动-debug应用(二)
估计前几天国庆的时候大家都发现了这个问题,登陆界面和登陆过渡界面都自动换成腾讯的图片了,经查QQ安装目录多了一个名叫LoginLogo的文件夹 里面为自动下载的登陆&过渡界面图片,并且有一个DAT的配置文件,是限时显示的图片,达到时间期限后就会自动删除.
解决方法如下:
安全清除你:C盘垃圾,让你多出近2G的空间,很多朋友说夸张了,只能减少几十M而已,其实那是因为你的系统本来都比较干净,如果你系统使用了一段时间,安装了一定的软件,升级过,长期浏览网页图片,一定时间后你再清理试试看能不能达到1G以上,不夸张,只是针对用的人而言~
不想把他做成.bat文件上传,让大家自己写,会觉得更安全!
教大家自己写个程序
这个程序是自动清理电脑里的垃圾而不会破坏系统 比很多软件都好哦
******************************************************************
@echo off
echo 正在清除系统垃圾文件,请稍等......
del /f /s /q %systemdrive%\*.tmp
del /f /s /q %systemdrive%\*._mp
del /f /s /q %systemdrive%\*.log
del /f /s /q %systemdrive%\*.gid
del /f /s /q %systemdrive%\*.chk
del /f /s /q %systemdrive%\*.old
del /f /s /q %systemdrive%\recycled\*.*
del /f /s /q %windir%\*.bak
不想把他做成.bat文件上传,让大家自己写,会觉得更安全!
教大家自己写个程序
这个程序是自动清理电脑里的垃圾而不会破坏系统 比很多软件都好哦
******************************************************************
@echo off
echo 正在清除系统垃圾文件,请稍等......
del /f /s /q %systemdrive%\*.tmp
del /f /s /q %systemdrive%\*._mp
del /f /s /q %systemdrive%\*.log
del /f /s /q %systemdrive%\*.gid
del /f /s /q %systemdrive%\*.chk
del /f /s /q %systemdrive%\*.old
del /f /s /q %systemdrive%\recycled\*.*
del /f /s /q %windir%\*.bak



2006/11/17
12:35
804






