能力值:
( LV2,RANK:10 )
|
-
-
2 楼
我们可以先把所有的程序反汇编出来,SAVE到DATABASE中,这样一来的话我们不用动态的去反汇编,到时直接找了读就可以了,本来一定会出现你说的这样的问题的吧
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
想了一下还是用DATABASE的方式应当会很好,可以剩去很多复杂的代码.
|
能力值:
( LV7,RANK:100 )
|
-
-
4 楼
ollydbg采用的是内存分块反汇编,每次反汇编一整块。当有需要的时候再反汇编另一块。
不要用listview了,
要自己画界面,否则会很慢的。
|
能力值:
(RANK:20 )
|
-
-
5 楼
标准的listview不能实现语法高亮吧,呵呵
|
能力值:
( LV12,RANK:650 )
|
-
-
6 楼
最初由 goldenegg 发布 ollydbg采用的是内存分块反汇编,每次反汇编一整块。当有需要的时候再反汇编另一块。 不要用listview了, 要自己画界面,否则会很慢的。
嗯,同意,我的那个就是自己画的,虽然现在还很难看,但以后可以扩展的空间很大.
自己画的难点是处理单击后选中,还有各种滚动的情况.那些ScrollWindow什么的函数的让我折腾了好久
|
能力值:
(RANK:300 )
|
-
-
7 楼
最初由 vcboy 发布 我们可以先把所有的程序反汇编出来,SAVE到DATABASE中,这样一来的话我们不用动态的去反汇编,到时直接找了读就可以了,本来一定会出现你说的这样的问题的吧
可是,现在的程序经常动态修改,如果没有像 OD 那种即时反汇编实际内存的能力,这样 debugger 对抗 smc 和花指令的能力很低
当然, open file 那一项功能是把档案从硬盘反汇编,可以使用 database 来实现储存数据,便于管理
关于输出介面,如果可以的话,自行绘画是个好的主意。现在的程序开发很初步,暂时使用 ListView 来输出结果。
Roba有没有兴趣参与开发绘画反汇编介面的一部份 ?
|
能力值:
(RANK:300 )
|
-
-
8 楼
最初由 goldenegg 发布 ollydbg采用的是内存分块反汇编,每次反汇编一整块。当有需要的时候再反汇编另一块。 不要用listview了, 要自己画界面,否则会很慢的。
是不是反汇编整个 .code 段 ?
如果exe 的体积很大的话,会不会缓慢 ?
|
能力值:
(RANK:300 )
|
-
-
9 楼
<累积要解决的问题 >:
- floating point / mmx 等等的反汇编,并考虑对于将来开发 64 bit 反汇编的扩充问题
- 整体程序的视窗, GUI 管理 ( 暂时是没有统一管理,使用单纯的 resource script + CreateDialog )
- 反汇编以绘图方式显示,取代缓慢的 ListView
- 静态反汇编档案的功能,由 database 储存数据
- 动态调试功能的开发,需要考虑多进程 / 多线程的支援
- 完善的扩充介面,让 plug-in 容易开发
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
数据库打算自己做还是用现成的?~~~~到时我这里试一下现成的效率吧,效率高的话还是用现成的,如果低的话就没招自己做了.(就是自己做的话功能没有现成的强了
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
最初由 riijj 发布
是不是反汇编整个 .code 段 ?
如果exe 的体积很大的话,会不会缓慢 ?
不应当是.code段,应当是说指定的一个地址段单独拿出来反吧!.code段不是一样的大!
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
listview是一定要自己重新做一个的,不是自己画的功能方面也很弱
|
能力值:
(RANK:300 )
|
-
-
13 楼
最初由 vcboy 发布 数据库打算自己做还是用现成的?~~~~到时我这里试一下现成的效率吧,效率高的话还是用现成的,如果低的话就没招自己做了.(就是自己做的话功能没有现成的强了
可以使用较简单的 random access file ,一个档案,自行控制。储存反汇编资料,我觉得不需要设计太复杂
当然,也可以用 ODBC 连接一些 database 档,最简单的格式例如 MS access 档
因为这个 project 是 GPL 的开源 project ,使用的东西尽量不是商业的东西,尽量使用公开的东西和格式
|
能力值:
(RANK:300 )
|
-
-
14 楼
最初由 vcboy 发布
不应当是.code段,应当是说指定的一个地址段单独拿出来反吧!.code段不是一样的大!
一个地址段是甚么意思 ?
例如现在的 Entry point 位置是 1006420,那么我应该反汇编那里至那里的地方 ? 用甚么方法来得知 ?
我知道的段,是指内存里的分段,如果说一个程序内的指令位置,它的段应该是位置整个 .code ,整个 .code 由 VirtualQuery 看是一个单一区域
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
深大了...
|
能力值:
( LV12,RANK:650 )
|
-
-
16 楼
最初由 riijj 发布
关于输出介面,如果可以的话,自行绘画是个好的主意。现在的程序开发很初步,暂时使用 ListView 来输出结果。
Roba有没有兴趣参与开发绘画反汇编介面的一部份 ?
我不懂数据库,所以这个界面和数据的接口还得好好学习一下.
如果觉得我的那个玩意 自己画的界面还可以的话,很乐意接受这个任务
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
最初由 riijj 发布
一个地址段是甚么意思 ?
例如现在的 Entry point 位置是 1006420,那么我应该反汇编那里至那里的地方 ? 用甚么方法来得知 ? ........
》应该反汇编那里至那里的地方《我想这个就是所谓的‘核心技术’。
|
能力值:
( LV4,RANK:50 )
|
-
-
18 楼
汇编显示界面的处理可以参考我链接中的代码
http://bbs.pediy.com/showthread.php?threadid=12899
|
能力值:
( LV12,RANK:650 )
|
-
-
19 楼
最好是按照流程来。
可以加入push/ret的识别和手动dis
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
最近对解释执行很有兴趣,如果有时间写的话,我会给出一部分我的x86解释器代码。现在的猛壳很多,我想如果把解释执行调试的功能集成进去也许会很有用。
|
能力值:
(RANK:300 )
|
-
-
21 楼
最初由 firstrose 发布 最好是按照流程来。
可以加入push/ret的识别和手动dis
我正在研究流程的反汇编方式
可是,我不明白为甚么 OD 可以快速地反汇编程序的任何位置 (例如,当我们
按住 OD 的滚动条翻上了数十页,OD 亦可以正确定位,把指令反汇编,而不
会错误地在一条指令的中间开始反汇编。 )
|
能力值:
(RANK:300 )
|
-
-
22 楼
最初由 hume 发布 最近对解释执行很有兴趣,如果有时间写的话,我会给出一部分我的x86解释器代码。现在的猛壳很多,我想如果把解释执行调试的功能集成进去也许会很有用。
“解释执行” 是甚么 ?
hume 兄可否解释一下
|
能力值:
( LV2,RANK:10 )
|
-
-
23 楼
vmware,vpc可用过?
但是这些模拟器都是半解释执行的像bochs这种是纯粹解释执行的,VB PCODE是解释执行的。
有些壳反跟踪,检测断点之类的手段,在解释执行面前将很容易被击破(结合类似ollyscript的脚本机制),其实解释执行是对付这些小伎俩的最根本的技巧,但是纯粹的解释也存在很多问题(比如效率和对系统的模拟非常困难),但如能在和实际的调试跟踪功能结合起来,重点在于对付反跟踪和方便“人”的手动分析,绝对是现有的所有调试器没做到的。
dos下的TR为什么强大,就因为它是完全解释执行的,跟踪过程完全可控。
windows下这样纯粹解释很不现实,但可以进行局部的解释执行,可有效对抗各种反跟踪手法,若很好的和动态调试相结合必定能够打开一个调试器的新局面。
空有想法没有时间,大家讨论一下而已,不要太认真了。。。。
|
能力值:
(RANK:300 )
|
-
-
24 楼
最初由 hume 发布 vmware,vpc可用过? 但是这些模拟器都是半解释执行的像bochs这种是纯粹解释执行的,VB PCODE是解释执行的。 有些壳反跟踪,检测断点之类的手段,在解释执行面前将很容易被击破(结合类似ollyscript的脚本机制),其实解释执行是对付这些小伎俩的最根本的技巧,但是纯粹的解释也存在很多问题(比如效率和对系统的模拟非常困难),但如能在和实际的调试跟踪功能结合起来,重点在于对付反跟踪和方便“人”的手动分析,绝对是现有的所有调试器没做到的。 dos下的TR为什么强大,就因为它是完全解释执行的,跟踪过程完全可控。 windows下这样纯粹解释很不现实,但可以进行局部的解释执行,可有效对抗各种反跟踪手法,若很好的和动态调试相结合必定能够打开一个调试器的新局面。 ........
我明白了,
意思是不是虚拟程序的执行过程 ?
这个功能的确是好,但制作不简单, windows API的虚拟真是不懂得怎样
难道要像 linux 里的 wine 一样,把 windows 的各呼叫都模仿 ?
|
能力值:
( LV2,RANK:10 )
|
-
-
25 楼
只所以要和动态调试相结合,就是要避免完全模拟API以及大部分和操作系统相关的东西,在解释执行时,遇到完整的API调用甚至库函数可以交给系统去执行,虚拟部分只要能控制结果就可以了,再传回作为运算结果继续运行原程序。需要模拟的恐怕是一些阴损的招法,这个我觉得全自己做也不可能完成,完全可以提供一套脚本或插件机制由有需求的人按需要去做,关键在于我们想怎么控制程序都可以。
|
|
|