| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1569 人关注过本帖
标题:int 3 我会爱死你的
取消只看楼主 加入收藏
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
结帖率:59.52%
收藏
已结贴  问题点数:20 回复次数:9 
int 3 我会爱死你的
不知道干什么的  请查资料赛
软件调试的 出错信息都是 更改这个 int3的 值 进入RONG0的
搜索更多相关主题的帖子: 资料 干什么 
2012-11-25 07:25
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
int 3这个中断 是可以让编程从rong3进入rong0的么
IDA 对printf  的反汇编里 找到的,初步网上查到的
这个int 3  的地址是int 3的 地址怎么拿到啊
保护模式下放中断的位置还是从地址0开始的把
如果用use16进行汇编的话  不是要将地址值 3*8啊
还是必须调用中断选择子 对应的描述符的 方式来用啊

我要成为嘿嘿的黑客,替天行道
2012-11-25 07:33
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
int 3机器码0cch,是无数人的最爱,你不见VC++不管是链接还是初始化,都用这个 0CCh来填,你不见所有运行在ring3的debug都使用这个0cc来插入你想中断调试的位置,以至在不去掉断点的情况下写盘,在你的代码中会发现这个莫名其妙的0CCh。
int 3不过是一个软件断点中断,你自己就可以任意修改这个中断,在anti-debug中,你可以通过修改这个中断给调试者带来巨大的惊喜,如果你能更深入一步的了解int 3的机制,你甚至可以指挥deubg运行,即别人调试你的程序,单步往前走,你可以让他按一个单步执行键后倒退几步,哈哈(这些都是善意的,千万不要学将那个倒退的指令改成将别人硬盘的启动分区给删除了,将别人的文件分配表给删除了,或将人家硬盘给硬格式化了)。
int 3只不过是一个软件调试中断,通过他,你可以进入ring0,那个许多人都想进入的神秘世界。
int 3只不过是一个简单的中断,利用他,你可以完成你许多过去不敢想象的事,只要你敢去尝试。



 

 

int3是留给调试工具使用的中断,调试工具运行后会替换int3的向量,使得中断方式后执行自己的代码。在单步(例如Debug中的命令p)调试程序时,调试工具会将要执行代码的下一条指令改成int 3,这样执行完当前这行代码后就会执行调试工具的代码,而不会继续执行,从而实现单步调试。一些软件为了阻碍被人破解其程序,会估计使用int3,这样一来,利用int3的调试工具就无法正常调试他们的程序了。

 

嵌入断点中断INT3
VC中嵌入断点中断的HelloWorld程序:

#include <iostream>

int main(INT argc,char*argv[])

{

     _asm INT 3; //调用断点中断

   cout << "Hello world!" << endl;

}

 

我要成为嘿嘿的黑客,替天行道
2012-11-25 07:34
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
这个是网上说的呀
而且 这个main()函数在初始话的时候  在初始化的时候 会放入10H 16个 cccccccc这样的字符的 这个 CC 是代表的什么啊
push    ebp
mov     ebp, esp
sub     esp, 40h
push    ebx
push    esi
push    edi
lea     edi, [ebp+var_40]
mov     ecx, 10h
mov     eax, 0CCCCCCCCh

我要成为嘿嘿的黑客,替天行道
2012-11-25 07:38
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
回复 6楼 wp231957
问你个问题
xor ecx,ecx  -----》ecx置0
test ecx,ecx  -----》这个会把 zf置1
jnz       这个是什么意思 他会有机会执行么

我要成为嘿嘿的黑客,替天行道
2012-11-25 07:55
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
你用的什么反汇编的 ,我用的IDA  这么 和你那个差距那么大

我要成为嘿嘿的黑客,替天行道
2012-11-25 07:56
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
.text:0040D6D3 loc_40D6D3:                             ; CODE XREF: printf+13j
.text:0040D6D3                                         ; printf+30j
.text:0040D6D3                 xor     ecx, ecx
.text:0040D6D5                 test    ecx, ecx
.text:0040D6D7                 jnz     short loc_40D6AF
.text:0040D6D9                 push    offset unk_426F50
.text:0040D6DE                 call    _stbuf
这个是反汇编出来的
起头就来了这么一段 我蒙了

我要成为嘿嘿的黑客,替天行道
2012-11-25 08:05
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
简单,从最简单的
int main()
{
;
}
开始
在往里面加入 变量 数组 结构体 简单的算数运算  分支选择 循环控制  再就是添加函数

一点一点往里面添加   你就基本上会了一多半

我要成为嘿嘿的黑客,替天行道
2012-11-25 20:32
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
剩下的就是智力游戏了

我要成为嘿嘿的黑客,替天行道
2012-11-25 20:34
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
剩下的就是智力游戏了

我要成为嘿嘿的黑客,替天行道
2012-11-25 21:09
快速回复:int 3 我会爱死你的
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014020 second(s), 8 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved