能力值:
( LV12,RANK:210 )
|
-
-
2 楼
为什么不用现成的脚本系统,比如Python,而要自己发明轮子呢?Python等是通用脚本,看帖的人可能已经会了,就免除了学习语法的负担。就算没学,学了以后在其他领域也有用处(例如IDA有IDA Python)。Python的稳定性、完善的语言设施和庞大的三方库支持,肯定是自己实现的脚本所不能比的。
另外,Windbg的Python脚本扩展,已经有人做了:https://pykd.codeplex.com/
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
看起来很像JS.
|
能力值:
( LV5,RANK:75 )
|
-
-
4 楼
从什么时候,不造轮子的人开始问造轮子的人,“为什么要自己发明轮子呢?”
又从什么时候,不造轮子的人开始议论造轮子的人?
|
能力值:
( LV3,RANK:20 )
|
-
-
5 楼
然而OD的脚本系统也是自造轮子的,od的python插件只有一个最初版本。。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
最看不起你们这种抱着个py趾高气昂的说“不需要XXX”的人
|
能力值:
( LV12,RANK:210 )
|
-
-
7 楼
典型的“不是厨师就不能评价菜品”的强盗逻辑。
另外,你怎么知道我没造过轮子?造了一半发现有人造了,没这必要了。
|
能力值:
( LV12,RANK:210 )
|
-
-
8 楼
我只是拿Py举个例子。你看不起随你去,我说有了YYY了,所以不需要XXX,你到是说个“需要XXX”的必要性啊。
|
能力值:
( LV12,RANK:210 )
|
-
-
9 楼
最初版?那ImmunityDebugger呢?
|
能力值:
( LV8,RANK:130 )
|
-
-
10 楼
.....................................
|
能力值:
( LV3,RANK:20 )
|
-
-
11 楼
我说的是OD,不要扯其他调试器,调试器多了去了
另外你去网上找一些OD脚本你看看有python的吗
|
能力值:
( LV12,RANK:210 )
|
-
-
12 楼
ImmunityDebugger不是什么其他调试器,就是修改版OD。是那个公司买了OD的源码进行二次开发而来的。不要拿“修改版”说事,现在大家用的OD,哪个不是修改版(各种汉化、增强版)?谁还会用原版的?只不过人家有源码,修改和增加功能更直接简单而已。和原版OD相比,架构、界面、基本功能都没有改,API也兼容,所以只是OD的“修改版”,而不是“其他调试器”。
ImmunityDebugger最大的亮点就是集成了Python作为其脚本。所以没有必要再为OD造轮子了。ImmunityDebugger和OD的API接口是基本兼容的。只是函数名的前缀改了下。OD的插件,有源码的只要带上ImmunityDebugger的头文件编译一下,没有源码的修改一下导入函数之类的,就可以在ImmunityDebugger上使用。
OD的那个脚本插件历史很久了,那个时候它是唯一比较完善的脚本插件,所以网上流传下来的很多(基本是脱壳脚本之类的)都是用那个插件脚本写的。但ImmunityDebugger也不是没人用,大名鼎鼎的FireEye公司就用它来分析某些Malware, 这里就是他们用到的脚本。
最后再说一句,现在通用高级脚本语言的同质化倾向比较严重,倘若某个语言确有缺陷,往往在后续的版本中会修正和补足这些缺陷,倘若和其他语言相比,缺少某个功能,后续版本往往也会补全。这就是竞争导致的同质化。这种情况下争论是Python,还是Ruby,还是Perl,还是Tcl,还是其他什么脚本更好,没有什么意义,最多是个人的喜好不同而已。各种高级语言实质上都差不多。然而,尽管普通的高级脚本语言(例如Python,Ruby,以及楼主写的XC脚本)都差不多,它们和模仿低级语言设计的脚本语言(例如OD的那个类汇编脚本)是有本质区别的。今天,除了有某些特殊目的(例如学习、特殊的优化、特殊的系统限制等)外,没有人会去首选低级语言写代码。这是因为,低级语言的可移植性差,更重要的是,和高级语言相比,低级语言表达程序的逻辑相当不方便直观。同时,低级语言程序的可读性普遍较差(否则,逆向就不难了)。所以,OD的那个脚本,明显不如ImmunityDebugger的脚本好用。只不过它历史比较久,积累了不少实用脚本,比如脱壳类的,这些脚本实现的功能一直都有需求,所以还流行着。它的流行,绝不是因为它比高级脚本还好用。只不过那个年代缺少高级脚本(ImmunityDebugger在2007年才发布第一个版本,还不好用),它成了相对最好的选择而已。
楼主的脚本显然不是低级语言,它和Python之类的高级脚本是同质化的,没有什么明显的优劣之分。所以,我并不是说楼主的实现的脚本多么差多么不好用,它其实和其他高级脚本是一样好用,因为前面说过,高级语言基本是同质化的(一些另类的,比如什么函数式编程语言不谈)。但同质化也削减了自己实现一套高级语言的价值。因为这样,自己辛辛苦苦做出来一个初版,别人早已做得很完善,而且自己做的也没有什么独到之处。这是一种时间和精力的浪费(所谓“造轮子”)。按楼主的话来说,与其说是费力做着别人早就做好的东西,“还不如多解决几个实际的问题”。
|
能力值:
( LV12,RANK:210 )
|
-
-
13 楼
既然楼主发话了,那有必要认真回复一下。
首先,xcwd是楼主倾注了心血的作品,毫无疑问是非常棒的。这一点没有什么可指责之处。我本意也并非争论语言的优劣,只是提醒楼主没有必要重复做别人做过的事,因为有以下两个事实存在:
[*]已经有现成的好用的脚本语言了
[*]已经有人做过脚本化windbg了(而且还是开源的)
如果一个东西别人已经做好了,而且做得不差,单纯从技术和使用角度来说,很难想象有什么非得自己再把同样的东西做一遍的必要性,除非是认定了别人的东西有比较严重的缺陷,不能满足需求,或者自己有自信比别人做得更好,或者自己有什么独到之处。但就楼主做的东西看,似乎没有看出符合上面几点之处(尤其是自己设计一套语言),因此重复做同样事(所谓“造轮子”)的理由,就很值得商榷。
所以,与其说把时间花在重制别人早已做好的东西上,还不如把时间用到自己的独到的原创作品上,是不是呢?当然,xcwd做到这种程度,要放弃确实是一件可惜的事。我想楼主多半还是要继续开发完善下去。既然这样,那我建议楼主能做出一些特色的功能来,这样,能使xcwd更有意义。最后,倘若楼主以后还有什么(比较复杂的)东西想要自己开发的,我真诚建议先看看有没有人做过,做得怎么样。确定有必要性后再自己开发。倘若别人做好的是一个开源软件,可以考虑给它添砖加瓦,贡献代码。如果开源软件已经停止开发多年,但又很认可它的价值的话,可以尝试联系作者,看能不能把项目所有权给你。没有回应的,再决定是继续在这个软件基础上开发,还是重新做一套。
倘若楼主是出于学习或者自娱自乐的目的开发xcwd的,那我前言撤回,当我没说。
我并无冒犯之意,倘若无意中多有冒犯,还请见谅。
|
能力值:
( LV6,RANK:80 )
|
-
-
14 楼
写了那么多字,为何不说说
已经有人做过脚本化windbg
到底是哪个?跟楼主的比较有哪些优点,缺点。
哪怕写写自己使用windbg其他脚本经验也行啊
我并无冒犯之意,倘若无意中多有冒犯,还请见谅。
|
能力值:
( LV12,RANK:210 )
|
-
-
15 楼
不好意思,2楼的回复已经说过了。所以这里就不重复了。
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
赞一个,写的不错。
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
帮你顶顶 虽然我也不懂
|
能力值:
( LV9,RANK:320 )
|
-
-
18 楼
只要楼主持续开发,发觉自身的特点与长处,我想是有前途的
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
能用就行,方便就行。支持楼主。
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
open mind,知道得越多才越心虚啊,thebutterfly建议几中肯!
|
能力值:
( LV2,RANK:15 )
|
-
-
21 楼
windbg 自带脚本不好用 帮顶
|
能力值:
( LV2,RANK:10 )
|
-
-
22 楼
现在不能下载了。
|
能力值:
( LV2,RANK:10 )
|
-
-
23 楼
楼主这里已不能下载。想下来玩玩。
|
|
|