能力值:
( LV2,RANK:10 )
|
-
-
2 楼
又沉了。。。。。。。。。。是不是根据original那个的hint和dll的导出表序号相等,然后就把这函数在dll的RVA+上他的基础写进IAT??
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
晕,算找到了吧,就是用函数名字来对比(不敢相信,那岂不是相当慢?我还以为用2个表的函数序号来对比呢)
不过自己写的dll就会函数名会改变了下,
VC将函数编译后会在函数名前面加上下划线前缀,在函数名后加上"@"和参数的字节数。
这好像是_stdcall规则
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
无聊,自己说话,
不知道修正之后,是不是导入表的几个数组里面的firstThunk都一样了。
因为之前有人提过修正后,这个字段就是指向IAT,IAT就是根据所有dll引用函数改写成的一个地址表
|
能力值:
(RANK:570 )
|
-
-
5 楼
输入表里函数名前面的序号,会先用来尝试在对应的位置比较函数名,如果比较失败,才一个一个历遍输出表里面的函数名
PECOFF很重要~~
给个优秀贴标记,支持楼主继续自己探索
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
哈哈顶下顺便问个问题 Windows系统加载器 指的是什么 是widows自代的编译器吗! 如果是怎么找到他它啊
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
哈,我也不懂,双击之后,就有相应的东西加载那样吧,就好像我们解压缩软件WINRAR一样
俺猜-_-
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
晕,买了加密3没看,原来里面好具体的说,现在我也会遍历IAT的函数地址了,还有函数名
|
能力值:
( LV6,RANK:90 )
|
-
-
9 楼
IMAGE_IMPORT_DESCRIPTOR IMAGE_IMPORT_BY_NAME
| |
OriginalFirstThunk --> IMAGE_THUNK_DATA --> 02F6 ExitProcess
TimeDateStamp IMAGE_THUNK_DATA --> 0111 ReadFile
ForwarderChain IMAGE_THUNK_DATA --> 002B WriteFile
Name1 ------+ 80000010h 0010 lstrcmp
FirstThunk----+ | 0(結束符) 指令
| | call ExitProcess ---+
| +---> Kernel32.dll call ReadFile ----+ |
| call WriteFile -+ | |
| call lstrcmp -+ | | |
| | | | |
+------>ExitProcess函數的入口位址 <-- jmp dword ptr [a]<-+-+-+-+
ReadFile 函數的入口位址 <-- jmp dword ptr <-+-+-|
WriteFile 函數的入口位址 <-- jmp dword ptr [c]<-+-|
lstrcmp 函數的入口位址 <-- jmp dword ptr [d]<-+
0(結束符)
|
能力值:
( LV6,RANK:90 )
|
-
-
10 楼
|
|
|