能力值:
( LV12,RANK:210 )
|
-
-
2 楼
学习 SoftICE 接管调试中断就可以了吧,或者学习 WinDbg 接管异常处理应该也可以。
|
能力值:
( LV13,RANK:410 )
|
-
-
3 楼
硬件调试器.....
|
能力值:
( LV4,RANK:50 )
|
-
-
4 楼
请教一下楼上,纯粹的硬件调试器有针对PC的吗,我在网上看到大部分都是嵌入式领域里的。可否帮忙解答一下,如果是纯软件的话那就是虚拟机的范畴了。另外,我现在觉得检测中断是否被接管了应该不是问题吧。
谢谢!
|
能力值:
( LV9,RANK:490 )
|
-
-
5 楼
仿真器
|
能力值:
( LV4,RANK:50 )
|
-
-
6 楼
仿真器就是虚拟机吧,只要虚拟机对硬件全虚拟,就等同于仿真机了。
|
能力值:
( LV13,RANK:970 )
|
-
-
7 楼
你说的应该是让实际电脑去执行代码吧?比如vmware那样的,应该不是纯粹解释,部分内容被下放到了真正的cpu去处理,否则速度不能那么快。
|
能力值:
( LV4,RANK:50 )
|
-
-
8 楼
如果是让实际电脑来以编译的方式执行代码的话,那么这个对我没有威胁,因为这种方法不利于调试,我要对付的就是以解释方式来执行代码的情况。
|
能力值:
( LV12,RANK:330 )
|
-
-
9 楼
调试和句柄什么关系?而且解释和编译之间本来就没有严格的界限
|
能力值:
( LV4,RANK:50 )
|
-
-
10 楼
回楼上:除全虚拟机调试,你要调试一个进程,或以非倾入式的查看一个进程的各种数据,首先你必须拿到这个进程的句柄才可能进行下面的一系列工作吧。如果拿不到进程句柄,那么是不是大部分的路就堵死了。
解释执行和编译执行之间我认为差别大了,真正编译执行时,执行的控制是由硬件来完成的,而硬件的动作是固定死的,而解释执行的时候,对代码的处理是软件执行的,而软件的行为是不固定的。所以被解释的代码的一切等于完全暴露在解释器下不是吗?
请指教! 谢谢!
|
能力值:
(RANK:1130 )
|
-
-
11 楼
我想问问楼主如何不让别人拿到你进程的句柄
|
能力值:
( LV12,RANK:330 )
|
-
-
12 楼
我写过调试器编译器解释器.关于调试,我的理解是,调试器核心就是断点+反汇编而已,那么重点就是如何中断.中断是控制转移的一种,几乎所有的控制转移都可以拿来做断点(当然效果有优劣之分,INT3做断点仅1字节,而JMP做断点要5字节).总的来说,只要还能正确修改内存就可以中断.当然你也可以说,修改内存也需要句柄,也需要知道进程页表.但是这似乎难以隐藏,保护系统不大可能全面修改系统文件吧.何况,即使是硬件调试器或者虚拟硬件调试器,也仍然需要这些信息,因为进程不是IA32体系的概念,而是操作系统层次的概念,可以想象,即使用X86的虚拟机调试,关于进程的信息也必须要在虚拟机内获取.
关于编译与调试,这中间的界限并不明显,编译过程是 词法分析->语法分析->语法树->中间码->机器码(执行于真实CPU或虚拟机).真正纯解释,就是读取字符串的同时不生成语法树就解释执行,这种情况已经非常少了,大多数解释器是生成并优化语法树然后解释执行,这和编译什么区别?难道我不能认为这个语法树就是一种编译出来的中间码,而解释器是个虚拟机.这是靠近解释器的一种方案.靠近编译器的方案也有解释成分.比如,设计通用变量类型,把大量的运算操作封装到库里面,编译出来的代码主要是对库的调用.
关于你说的"如果是让实际电脑来以编译的方式执行代码的话,那么这个对我没有威胁,因为这种方法不利于调试". "编译的方式执行代码"的确切含义我不是很理解,是否是指将代码修改转换后直接放到CPU上运行的 硬件虚拟化技术?这种方法也有可能可以用于调试,只要能在转换过程中加入一个透明的INT3都是对调试极大的帮助
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
察看进程数据~~读内存不就得了?计算物理地址直接读不就不需要句柄了么?
俺的愚见....
|
能力值:
( LV4,RANK:50 )
|
-
-
14 楼
感谢DonQuixote朋友的指导,我并不需要让你拿不到句柄,但我可以得知到底有哪个进程拿过我的句柄,这样杀起来比较有目的性。我是这个意思,所以说不是不需要句柄,而是这个句柄你压根就不能碰,碰一次都不行。
|
能力值:
( LV9,RANK:210 )
|
-
-
15 楼
只要让加载驱动,谁杀谁还不一定呢..............
|
能力值:
( LV4,RANK:50 )
|
-
-
16 楼
并不怕被杀,关键是怕被调试。而且除了中断以外的大部分情况下,内核级别要拿到一个进程的执行体进程块,主要是在进程列表中搜索,以及拿到句柄用ReferenceObjectByHandle这个函数,后者已经有效对付了,对付前面一种情况只要在进程块链表中把自己给删除掉就行了。
|
能力值:
( LV12,RANK:330 )
|
-
-
17 楼
难道你说的监视句柄的方案是这个?
http://bbs.pediy.com/showthread.php?t=56724
估计实现起来不大可行,比如,taskmgr,金山读霸,瑞星,icesword,QQ,这些都会用到进程句柄,你打算把他们怎么办?全杀掉?还是开白名单放行?如果放行的话,我注入这些进程用他们的句柄,你打算怎么处理?把这些程序都保护起来?更何况还有他们的升级版呢,如何兼容?更何况windows内核也肯定会用到句柄,怎么处理?更何况弄掉你的监视代码也不是完全不可能的事
|
能力值:
(RANK:1130 )
|
-
-
18 楼
楼主可以放一个试炼品看看
如果楼主的东西可以在ring3下运行就不要努力了,不可能在句柄方面有所突破的
ring0的倒可以试试看
|