首页
社区
课程
招聘
[推荐]无输入表做免杀
发表于: 2010-8-29 17:28 7473

[推荐]无输入表做免杀

2010-8-29 17:28
7473
前几天在研究PE文件的时候,在一个论坛上看到了一篇文章,构建最小PE文件,这篇文章写的太好了,我看用在免杀方面有一定的参考价值,所以就贴出来给大家看看,多学学别人的思路,对自己很有帮助!
现在杀毒软件太多了,每种杀毒软件所检测的东西都不一样,但我想大概都有这个功能就是检测输入表里的函数,看有没有可疑的吧~~这只是我的猜想~~
在下面的这个程序中,你看不到MessageBox之类的函数,但却弹出一个对话框,做的很好!!
源代码如下
MinPe.asm
.386
.model flat,stdcall
option casemap:none

include windows.inc

.data
szUser32 db 'user32.dll',0
szMsg    db 'Hello World!',0
szTitle  db 'MiniPE',0

.code
GetApi proc hModule,nIndex
       
        mov esi,hModule
        mov edx,nIndex
        add esi,[(IMAGE_DOS_HEADER  ptr [esi]).e_lfanew]
        assume esi:ptr IMAGE_NT_HEADERS
        mov esi,[esi].OptionalHeader.DataDirectory.VirtualAddress     ;数据块的起始RVA
        add esi,eax
        assume esi:ptr IMAGE_EXPORT_DIRECTORY
       
        sub edx,[esi].nBase
        rol edx,2
        mov edi,[esi].AddressOfFunctions   ;指向函数地址数组
        add edi,eax
        add edi,edx
        mov edx,dword ptr [edi]
        add eax,edx
        ret

GetApi endp

WinMain proc
       
        LOCAL hModule
       
        assume fs:nothing
        mov eax,fs:[30h]
        mov eax,[eax+0Ch]
        mov eax,[eax+0Ch]
        mov eax,[eax]
        mov eax,[eax]
        mov eax,[eax+18h]
        mov hModule,eax
        invoke GetApi,hModule,245h
        .if eax
                push offset szUser32
                call eax
                .if eax
                        mov hModule,eax
                        invoke GetApi,hModule,1DDh
                        .if eax
                                push MB_OK
                                push offset szTitle
                                push offset szMsg
                                push 0
                                call eax
                        .endif
                .endif
        .endif
        ret

WinMain endp
end WinMain
上面程序在RadASM中编译运行得到一个弹出对话框
但用PEID查看输入表却没有MessageBoXA函数,是不是很奇妙,其实原理很简单,如果有什么不清楚,我推荐大家学习看雪最近出的专题版中有一个讲病毒的,里面就有这处技术,好的,就到这里,谢谢大家,学好汇编真的很好,可以朝很多方向发展,免杀,逆向工程,病毒分析等等,不如还不会汇编的话,就好好学习学习吧,对自己会有用的~~~

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 434
活跃值: (72)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
没用的,360照样卡嚓...........................
2010-8-29 20:21
0
雪    币: 2323
活跃值: (4113)
能力值: ( LV12,RANK:530 )
在线值:
发帖
回帖
粉丝
3
那就没办法了,小弟水平有限啊,请哪位高手指点指点吧,呵呵!!
2010-8-29 22:49
0
雪    币: 65
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
LZ 这样会被累得很惨的,难道忘记现在的杀软见到没有输入表就喀擦嘛,哈哈
2010-8-30 10:03
0
雪    币: 13
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
o 这个估计是动态函数调用的啦
2010-9-1 15:22
0
雪    币: 53
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
只是思路,不是完全没输入表,可以把关键输入表隐藏呀,其他的不要动
2010-9-2 10:54
0
雪    币: 379
活跃值: (152)
能力值: ( LV12,RANK:330 )
在线值:
发帖
回帖
粉丝
7
通过fs:[30]去获得kernel32.dll的地址,再去获取messagebox函数地址,这也是一种常见的dll获取方法,360当然会查杀,不过学习一下还是很不错的
2010-9-2 11:26
0
雪    币: 1283
活跃值: (46)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
8
强势围观!
2010-9-3 09:38
0
雪    币: 326
活跃值: (41)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
没有输入表。Win2K下跑不动。
2010-9-13 18:38
0
雪    币: 2105
活跃值: (424)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
什么年代的杀毒 还在IAT
2010-9-21 14:37
0
雪    币: 20
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
mark!!!
2010-9-24 13:33
0
游客
登录 | 注册 方可回帖
返回
//