能力值:
( LV2,RANK:10 )
2 楼
谢谢分享
能力值:
(RANK:990 )
3 楼
不错。不过好像是按快捷键“Ctrl-Alt-X”运行DecodeDelphiClass.plw吧?
能力值:
( LV4,RANK:50 )
4 楼
只能膜拜了,学习~~
能力值:
( LV2,RANK:150 )
5 楼
3楼说得对,现已改正。
能力值:
( LV2,RANK:150 )
6 楼
能力值:
( LV2,RANK:150 )
7 楼
能力值:
(RANK:990 )
8 楼
这里可不可以改成按快捷键“Ctrl-Alt-S”直接读取 log 文件的数据后自动解析?手工解析太慢。
能力值:
( LV2,RANK:150 )
9 楼
这个实现起来有点难度,本来最初是想自动识别,但遇到诸多困难。因为Delphi的对象存在多种变体,不像Delphi string那样规矩,但是要精准地识别Delphi string已经实属不易。
自动识别Delphi对象的plugin目前还没有调试通过,等以后有时间再努力把。不知是否存在能够用idc脚本来调用plugin的方法。如果有的话,倒是可以考虑用idc脚本读取.log文件中的地址,然后再调用plugin。
不过FindDelphiClass.plw几乎可以列出整个程序的全部对象起始地址,如果只是关心局部内容的话,现在的版本以已经足够强大,因为DecodeDelphiClass.plw可以成片地识别Delphi对象,而不是某一个。这个问题的难点在于如何准确地确定成片对象的末地址,从而确定其地址空间。
能力值:
(RANK:990 )
10 楼
嗯,等你的新版。不过你那个字串识别插件我今天在分析一个 Delphi 的木马中试了一下,有好几个字串没能识别出来。
能力值:
( LV2,RANK:150 )
11 楼
可否提供未分析出Delphi string的样本?
能力值:
(RANK:990 )
12 楼
是个木马资源中捆绑的 dll,完成木马主要功能的。密码是 muma
上传的附件:
能力值:
( LV2,RANK:150 )
13 楼
经检查你所提供的样本,没有发现漏掉的Delphi string。有些情况
0FFFFFFFFh 后面不一定就是Delphi string,如
File Offset
00000900 F9 8B F4 C7 44 24 08 FF FF FF FF 33 C9 89 4C 24
00000910 0C 89 44 24 10 03 54 24
这里的0FFFFFFFFh是汇编指令的立即数;
再如
File Offset
0000EC00 00 00 00 00 FF FF FF FF 00 00 00 00 0B 55 6E 69
0000EC10 74 5F 63 6F 6D 66 75 6E 55 8B EC 81 C4 C4 FB FF
这里的0FFFFFFFFh 是名字为".2" 的 Delphi type 对象的一部分... 等等。
你可否指出“有好几个字串没能识别出来”的具体情况?以便找出bug,提高识别准确率。0FFFFFFFFh 仅仅是判断 Delphi string的必要条件,而非充分条件。
我前面提到要准确识别 Delphi string 并不是那末简单就是指这个“充分条件”不太好把握。谢谢你提出宝贵意见。
另外需要补充说明一点就是.log文件中记录的是某一组(group)Delphi string中的第一个,而不是全部。我这里是以组(连续的一个或若干个Delphi string为一组)为单位进行记录的。跟前面Delphi对象搜索结果不同。如果你认为有必要也可以改为记录所有的Delphi string。
能力值:
(RANK:990 )
14 楼
例如这样的:
CODE:00415E94 dword_415E94 dd 61505C0Ch, 656D6172h, 73726574h, 5Ch
CODE:00415E94 ; DATA XREF: Install+307o
如果在 OllyDBG 中看调用的话,会类似这样:
00885AF3 |. BA 945E8800 MOV EDX,00885E94 ; ASCII 0C,"\Parameters\"
对这个字串的识别类似这样:
00885E94 . 0C DB 0C
00885E95 . 5C 50 61 72 6>ASCII "\Parameters\"
00885EA1 00 DB 00
不过 IDA 和你的插件都无法把这个 ASCII 字串识别出来,只能手工在 IDA 中设置。这个可能要求高了一点,呵呵
能力值:
( LV2,RANK:150 )
15 楼
你说的应该是Pascal string (length+string 不以0字节结尾) 而不是 Delphi string (0FFFFFFFFh+length+C_string),我这里是专门识别Delphi string,没考虑 Pascal string。的确Pascal string 的识别难度更大一些,但最难的是C string。正因为难度太大,IDA才给出了C-style, DOS style, Pascal style, Wide pascal, Delphi, Unicode, Unicode pascal, Unicode wide pascal 和 Character terminated 这么多选项,电脑无论如何也比不上人脑,这也是IDA以thinking为核心的具体体现。
能力值:
(RANK:990 )
16 楼
嗯,Pascal string 识别不了也无所谓,用到的时候自己改一下就行了。还是多谢你的插件。
能力值:
( LV2,RANK:150 )
17 楼
对版本兼容性作了调整,重编译后可以在IDA 4.9(4.9 Free版除外)到IDA 5.2下运行,目前不能识别Delphi 2.0的对象(如TotalCommander),其他版本似乎都可以。
上传的附件:
能力值:
( LV9,RANK:180 )
18 楼
很cool的东东 感谢分享
能力值:
( LV2,RANK:10 )
19 楼
挺好的,支持一下。
能自动完成ctrl+alt+s的功能会更好,log里面几百条项目,部分替换也需要慢慢找
能力值:
( LV2,RANK:10 )
20 楼
很cool的东东 感谢分享
能力值:
( LV4,RANK:50 )
21 楼
很好的插件,顶了
能力值:
( LV2,RANK:10 )
22 楼
Ctrl+Alt+s
那两个放到了plugins
用了一下,可能是不会用。放到里同,竟然出这样的错
Detecting Delphi classes...
Start from address UnPackEr:0048EA1C ...
Delphi class not found.
能力值:
( LV2,RANK:10 )
23 楼
l lov you ~!!!
能力值:
( LV2,RANK:10 )
24 楼
大大 請教一各問題 如果要識別 自行宣告的CLASS 要怎麼做
能力值:
( LV2,RANK:150 )
25 楼
大大 請教一各問題 如果要識別 自行宣告的CLASS 要怎麼做
请提供具体实例。