能力值:
( LV9,RANK:310 )
|
-
-
2 楼
这个输入表有什么作用,其中的值是什么意思啊,比如图上的7CA2,上面的
RegQueryValueExA已经由77DA6FC8定位了,这个7CA2究竟是干什么用的??
|
能力值:
(RANK:570 )
|
-
-
3 楼
自己看看PE的结构吧
|
能力值:
( LV9,RANK:310 )
|
-
-
4 楼
看了一下午pe的结构,总算有点了解
首先通过文件头的信息里可以得到输入表的RVA
(在这里还碰到了奇怪的事,c:\windows\notepad.exe 得到的RVA为13022,IMAGE_IMPORT_DESCRIPTOR放在.silvana区段里,而c:\windows\system32\notepad.exe得到的RVA为7604,是在.text区段里,当然执行结果好象一样..........)
第二步将映像基址+RVA来到IMAGE_IMPORT_DESCRIPTOR,
(oiginalFirstThunk,TimeDateStamp,ForwarderChain,Name,FirstThunk)
name那里放的是存放dll文件名称的RVA,
originalFirstThunk和FirstThunk指向两个数组起始地址,一个数组里存的是实际调用函数的地址(自己亲眼目睹的),另一个数组里存的是所调用函数的名字的RVA),这里有个问题,原文里说"每个IMAGE_THUNK_DATA(换长数据)都是一个RVA,指向一个描述输入函数的IMAGE_IMPORT_BY_NAME(输入名字)项。
现在,有趣的是两个数组并行运行,也就是说:它们指向同一组IMAGE_IMPORT_BY_NAME(输入名字)。http://bbs.pediy.com/showthread.php?threadid=21932
为什么我看到的却不是这样,一组指向名字,一组指向实际调用地址,当时我还怀疑是OD加载时自动置换了,但我用winhex打开文件还是这样的..........
|
能力值:
( LV9,RANK:310 )
|
-
-
5 楼
另外发现OD的一个bug,加载某些程序时,他直接把IMAGE_IMPORT_DESCRIPTOR的东东当成代码给反汇编了,什么情况会造成这样,还不清楚.....
|
能力值:
(RANK:570 )
|
-
-
6 楼
在了解基本知识的同时,也别受知识限制在一个框架里,并不是代码段就一定得放代码的
只要系统能正常运行程序就足够了。
所以一些反调试手段就是通过修改PE里的一些数据来欺骗反汇编工具的
|
|
|