首页
社区
课程
招聘
[原创]打造免杀的keymake内存补丁
发表于: 2006-7-26 12:49 8751

[原创]打造免杀的keymake内存补丁

2006-7-26 12:49
8751
我们知道keymake生成的内存补丁程序通常被一些杀毒程序视为病毒。为解决这一问题,特意生成一内存补丁程序进行分析。
keymake生成的内存补丁程序结构如下:
1.程序体+附加数据
2.程序体采用upx压缩。
    为了做到免杀,只需对程序体进行改造。
改造步骤:
1.先对程序体进行脱壳处理,并做备份。
2.分析程序得到附加数据。
3.然后在程序体后面加上原附加数据。
执行程序仍然出错。
用od载入原程序分析,发现原程序体的读取附加数据偏移地址为0x1000h,
0040108F    50              push    eax
00401090    E8 33030000     call    <jmp.&kernel32.GetFileSize>
00401095    2D 00100000     sub     eax, 1000                       ;得到附加数据长度/修改此处位置
0040109A    83F8 00         cmp     eax, 0
0040109D    72 04           jb      short 004010A3
0040109F    0BC0            or      eax, eax
004010A1    75 03           jnz     short 004010A6
004010A3    5B              pop     ebx
004010A4    C9              leave
004010A5    C3              retn
004010A6    8BD8            mov     ebx, eax
004010A8    6A 00           push    0
004010AA    6A 00           push    0
004010AC    68 00100000     push    1000                            ;指向附加数据位置/修改此处位置
004010B1    FF75 FC         push    dword ptr [ebp-4]
004010B4    E8 45030000     call    <jmp.&kernel32.SetFilePointer>
004010B9    E8 16030000     call    <jmp.&kernel32.GetProcessHeap>
004010BE    8945 F4         mov     [ebp-C], eax
004010C1    83C3 20         add     ebx, 20

4.为此我们修改脱壳后的程序体中附加数据位置,程序正常执行。
5.为了做到免杀,比较好的办法就是对程序体再进行加壳处理,避免杀毒程序的识别。我选用fsg对脱好的程序体再进行加壳处理(当然用户可

以根据自己喜爱选择壳),得到压缩后的文件大小,这就是压缩后的附加数据位置。于是再对脱壳后的程序体进行相应修改,再用fsg压缩处理

,文件大小没变,说明附加数据位置正确。最后在新压缩的程序体后面附加上相应数据即可完成改造。

2006/07/26

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (14)
雪    币: 817
活跃值: (1927)
能力值: ( LV12,RANK:2670 )
在线值:
发帖
回帖
粉丝
2
最高境界就是把KEYMAKER的主程序中生成部分的代码修改了,那就完美了
可惜老刘没放出Source Code 遗憾...
2006-7-26 13:39
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
是呀,怎么注册机被大多数杀毒软件认为是病毒,还是希望keymake的作者或楼主能做个简单的东西处理
2006-7-26 16:01
0
雪    币: 202
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
没怎么看明白
2006-7-26 17:23
0
雪    币: 224
活跃值: (100)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
最初由 KuNgBiM 发布
最高境界就是把KEYMAKER的主程序中生成部分的代码修改了,那就完美了
可惜老刘没放出Source Code 遗憾...


其实不难哈,对keymake进行diy即可实现生成免杀的补丁程序:)
简单办法就是查找补丁程序的ico数据,在keymake程序或其res文件中查找修改为自己喜爱的图标数据即可做到免杀
2006-7-26 22:41
0
雪    币: 110
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
搂主能来篇,完整的教程吗,我就是想把,补丁图标下的“注册器,
刘建英”,去掉,我已手脱了(机脱的还是认为是 UPX ,手脱后较
完美, PEID 能认出是 MASM 写的,但程序在目标文件夹下,还是
提示“认不出目标程序”,本人对资源修复菜的很,现在生成的补丁
都有“刘建英”的字样,不爽(脱壳后的补丁能运行,可以用资源软件改了,但就是不能认不出目标程序),期待大侠的完美教程,谢
2006-7-27 00:18
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我选用fsg对脱好的程序体再进行加壳处理(当然用户可

以根据自己喜爱选择壳),得到压缩后的文件大小,这就是压缩后的附加数据位置。

上面的是什么意思啊,我得到的文件大小是2912,那么位置什么呢?2912不正确。
2006-9-26 13:01
0
雪    币: 440
活跃值: (827)
能力值: ( LV9,RANK:690 )
在线值:
发帖
回帖
粉丝
8
keymake为啥不升级呢?
2006-9-26 17:19
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
搞了一个晚上也没理解楼主的“以根据自己喜爱选择壳),得到压缩后的文件大小,这就是压缩后的附加数据位置。于是再对脱壳后的程序体进行相应修改,再用fsg压缩处理”是什么意思,一怒之下将将楼主介绍的修改内容改好(文件大小的16进制。),加壳然后在加壳的文件末尾追加了原附加数据,能够正常运行了。
不知道楼主用的是什么方法。
2006-9-27 08:52
0
雪    币: 50161
活跃值: (20635)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
10
最初由 winndy 发布
keymake为啥不升级呢?


http://bbs.pediy.com/showthread.php?s=&threadid=21988&perpage=15&highlight=&pagenumber=2

24楼

大家可以写信给作者,多多鼓励,就可能会更新。;)
2006-9-27 09:33
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
我从没有用过keymake,谁能告诉我为什么要用keymake?
2006-9-27 20:52
0
雪    币: 690
活跃值: (1841)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
12
最初由 gkend 发布
我从没有用过keymake,谁能告诉我为什么要用keymake?

写keygen功力不够
2006-9-28 13:22
0
雪    币: 716
活跃值: (162)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
13
fly好像有一篇改造keymake的文章,
2006-9-28 23:04
0
雪    币: 220
活跃值: (107)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
内存注册机可以自实现啊,只要做出一个模,就可以套到千千万万个软件上啦。
2006-9-29 09:32
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
请教 KEYMAKE2.0 制作内存补丁 中的选项:搜索范围 如何设置呢?
2006-9-29 16:27
0
游客
登录 | 注册 方可回帖
返回
//