邪恶八进制信息安全团队技术讨论组's Archiver

hellfish 2007-8-6 01:17

[原创]FISHPE 更新版本1.16

软件作者:HellFish
信息来源:邪恶八进制信息安全团队([url]www.eviloctal.com[/url])

1.16 更新如下

1. 修改了STUB中的加密函数
2. 修正了STUB过早从链表移除的问题

1.16 已知问题

1. 驱动与1.15之前版本不兼容,必须在安全模式移除老驱动

1.15 更新如下

1. 移除剩余的两个 VirtualXXXXX 调用
2. 驱动首次加入 ANTI-DEBUG, 根据 EPROCESS 中的 DebugPort 以及 PEB 中的 FLINK 取证
3. 修复,重制 ANTI-DUMP
4. 加入链表处理

1.15 已知问题

1. STUB中的加密函数很弱,导致很容易脱了压缩壳后直接提取
2. STUB过早从链表移除,导致在OD等调试器在进程终止时再次得到数据,但这时候已经没有什么有用的数据了
3. 驱动与之前版本不兼容,必须在安全模式移除老驱动

支持的系统
WNT SP4+
W2K ALL
WXP ALL
W2003 ALL
WVIST[不使用驱动保护,仅仅当成压缩壳使用]

[color=#0000FF]已经更新到 1.16 请到 hellfish.ys168.com 下[/color]

[attach]10434[/attach]

stealthwalker 2007-8-6 09:41

既然LZ都不知道该用哪个压缩壳,我们又怎么好说呢?我的建议是放个Listbox或者combobox,把你说的那两个都放进去让用户自己选择用哪个吧!
PS:看了看LZ的发的这几个贴子,内容上都有吸引人的地方,可惜发放的都是DEMO版,而且关键功能都被LZ给去掉的去掉,限制的限制了。而且您的帖子中并无任何有价值的技术内容或者源代码(我是综合你发的这几个帖子说的,有一个是源代码的,但无帖子中无任何说明或者讲解),这样的帖对我这样半调子的人都觉得没有价值,就更不用说那些出来乍到的新手了。不知道我说的是不是激怒了LZ,还请多多包涵!
感谢您如此看中邪恶八进制,谢谢支持!

hellfish 2007-8-6 15:09

呃,看来有必要说明了

那个ARP的限制是必须的,否则只要把插入的代码改掉就会变成很恶毒的东西

其实即使不这样做,这个ARP也已经欺骗了整个网段,所有的数据都会流经运行机。要截取数据已经很容易了

至于UIP,是个 TCP/IP STACK,主要用于单片机开发。对于不了解的人来说,确实没有任何意义
[用途: 远程摄像头,路由器远程管理,远程硬盘,远程XXOO 等等. ]

至于这个 FISHPE 是没有任何限制的,注册不注册差别只是那几个字

hellfish 2007-8-6 22:21

可以下载了,希望大家脱壳或者调试时有什么发现能贴上来

szplay777 2007-8-7 11:15

[quote]引用第2楼hellfish于2007-08-06 15:09发表的 :
呃,看来有必要说明了

那个ARP的限制是必须的,否则只要把插入的代码改掉就会变成很恶毒的东西

其实即使不这样做,这个ARP也已经欺骗了整个网段,所有的数据都会流经运行机。要截取数据已经很容易了
.......[/quote]


貌似LZ的回复是对你
[color=#FF0000][size=6][原创] 最近流行的ARP工作方式 [/size][/color]
这贴发的.

Right?LZ
[s:263][s:263][s:263]

archot 2007-8-7 11:29

我有个程序,加了ASProtect 1.23 的壳,再加 FISHPE1.12,最后就不能运行了.能不能搞个支持壳上加壳的?

hellfish 2007-8-7 13:35

你可以先用带驱动保护的加一次,然后再用不带驱动保护的+N次

xiaocool 2007-8-7 21:51

放出来就会被杀了

ZV 2007-8-7 23:17

晚上回来给脱脱,感觉和1.01差别还是挺大的,不过难度依然没有增加...-_-.还是算入门壳.
虽然加了驱动,不过好像只做保护,对加密没起什么作用,fishpe.sys调试了下,壳部分相关的只有
NtWriteVirtualMemory,NtReadVirtualMemory,NtQueryVirtualMemory这三个函数.
且没作用,因为在调用驱动之前,代码就已经在ring3被解密放在内存中了.不知道还写驱动干什么,或者是我没看清楚.

00404BB4 /$ 55         PUSH EBP
00404BB5 |. 57         PUSH EDI
00404BB6 |. 56         PUSH ESI
00404BB7 |. 53         PUSH EBX
00404BB8 |. 51         PUSH ECX
00404BB9 |. 52         PUSH EDX
00404BBA |. FC         CLD
00404BBB |. 8B7424 1C      MOV ESI,DWORD PTR SS:[ESP+1C]
00404BBF |. 8B7C24 24      MOV EDI,DWORD PTR SS:[ESP+24]
00404BC3 |. 83CD FF       OR EBP,FFFFFFFF
00404BC6 |. 31C9        XOR ECX,ECX
00404BC8 |. F9         STC
00404BC9 |. EB 05        JMP SHORT NOTEPAD.00404BD0
00404BCB |> A4         MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]
00404BCC |> 00DB        ADD BL,BL
00404BCE |. 75 05        JNZ SHORT NOTEPAD.00404BD5
00404BD0 |> 8A1E        MOV BL,BYTE PTR DS:[ESI]
00404BD2 |. 46         INC ESI
00404BD3 |. 10DB        ADC BL,BL
00404BD5 |>^ 72 F4        JB SHORT NOTEPAD.00404BCB
00404BD7 |. 31C0        XOR EAX,EAX
00404BD9 |. 40         INC EAX
00404BDA |> 00DB        /ADD BL,BL
00404BDC |. 75 05        |JNZ SHORT NOTEPAD.00404BE3
00404BDE |. 8A1E        |MOV BL,BYTE PTR DS:[ESI]
00404BE0 |. 46         |INC ESI
00404BE1 |. 10DB        |ADC BL,BL
00404BE3 |> 11C0        |ADC EAX,EAX
00404BE5 |. 00DB        |ADD BL,BL
00404BE7 |. 75 05        |JNZ SHORT NOTEPAD.00404BEE
00404BE9 |. 8A1E        |MOV BL,BYTE PTR DS:[ESI]
00404BEB |. 46         |INC ESI
00404BEC |. 10DB        |ADC BL,BL
00404BEE |> 72 0E        |JB SHORT NOTEPAD.00404BFE
00404BF0 |. 48         |DEC EAX
00404BF1 |. 00DB        |ADD BL,BL
00404BF3 |. 75 05        |JNZ SHORT NOTEPAD.00404BFA
00404BF5 |. 8A1E        |MOV BL,BYTE PTR DS:[ESI]
00404BF7 |. 46         |INC ESI
00404BF8 |. 10DB        |ADC BL,BL
00404BFA |> 11C0        |ADC EAX,EAX
00404BFC |.^ EB DC        \JMP SHORT NOTEPAD.00404BDA
00404BFE |> 83E8 03       SUB EAX,3
00404C01 |. 72 1C        JB SHORT NOTEPAD.00404C1F
00404C03 |. C1E0 08       SHL EAX,8
00404C06 |. AC         LODS BYTE PTR DS:[ESI]
00404C07 |. 83F0 FF       XOR EAX,FFFFFFFF
00404C0A |. 74 58        JE SHORT NOTEPAD.00404C64
00404C0C |. D1F8        SAR EAX,1
00404C0E |. 89C5        MOV EBP,EAX
00404C10 |. 73 18        JNB SHORT NOTEPAD.00404C2A
00404C12 |> 00DB        ADD BL,BL
00404C14 |. 75 05        JNZ SHORT NOTEPAD.00404C1B
00404C16 |. 8A1E        MOV BL,BYTE PTR DS:[ESI]
00404C18 |. 46         INC ESI
00404C19 |. 10DB        ADC BL,BL
00404C1B |> 11C9        ADC ECX,ECX
00404C1D |. EB 30        JMP SHORT NOTEPAD.00404C4F
00404C1F |> 00DB        ADD BL,BL
00404C21 |. 75 05        JNZ SHORT NOTEPAD.00404C28
00404C23 |. 8A1E        MOV BL,BYTE PTR DS:[ESI]
00404C25 |. 46         INC ESI
00404C26 |. 10DB        ADC BL,BL
00404C28 |>^ 72 E8        JB SHORT NOTEPAD.00404C12
00404C2A |> 41         INC ECX
00404C2B |. 00DB        ADD BL,BL
00404C2D |. 75 05        JNZ SHORT NOTEPAD.00404C34
00404C2F |. 8A1E        MOV BL,BYTE PTR DS:[ESI]
00404C31 |. 46         INC ESI
00404C32 |. 10DB        ADC BL,BL
00404C34 |>^ 72 DC        JB SHORT NOTEPAD.00404C12
00404C36 |> 00DB        /ADD BL,BL
00404C38 |. 75 05        |JNZ SHORT NOTEPAD.00404C3F
00404C3A |. 8A1E        |MOV BL,BYTE PTR DS:[ESI]
00404C3C |. 46         |INC ESI
00404C3D |. 10DB        |ADC BL,BL
00404C3F |> 11C9        |ADC ECX,ECX
00404C41 |. 00DB        |ADD BL,BL
00404C43 |. 75 05        |JNZ SHORT NOTEPAD.00404C4A
00404C45 |. 8A1E        |MOV BL,BYTE PTR DS:[ESI]
00404C47 |. 46         |INC ESI
00404C48 |. 10DB        |ADC BL,BL
00404C4A |>^ 73 EA        \JNB SHORT NOTEPAD.00404C36
00404C4C |. 83C1 02       ADD ECX,2
00404C4F |> 81FD 00FBFFFF    CMP EBP,-500
00404C55 |. 83D1 02       ADC ECX,2
00404C58 |. 56         PUSH ESI
00404C59 |. 8D342F       LEA ESI,DWORD PTR DS:[EDI+EBP]
00404C5C |. F3:A4        REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]
00404C5E |. 5E         POP ESI
00404C5F |.^ E9 68FFFFFF     JMP NOTEPAD.00404BCC
00404C64 |> 89E3        MOV EBX,ESP
00404C66 |. 8B53 1C       MOV EDX,DWORD PTR DS:[EBX+1C]
00404C69 |. 0353 20       ADD EDX,DWORD PTR DS:[EBX+20]
00404C6C |. 39D6        CMP ESI,EDX
00404C6E |. 74 07        JE SHORT NOTEPAD.00404C77
00404C70 |. 48         DEC EAX
00404C71 |. B0 37        MOV AL,37
00404C73 |. 77 02        JA SHORT NOTEPAD.00404C77
00404C75 |. B0 33        MOV AL,33
00404C77 |> 2B7B 24       SUB EDI,DWORD PTR DS:[EBX+24]
00404C7A |. 8B53 28       MOV EDX,DWORD PTR DS:[EBX+28]
00404C7D |. 893A        MOV DWORD PTR DS:[EDX],EDI
00404C7F |. 5A         POP EDX
00404C80 |. 59         POP ECX
00404C81 |. 5B         POP EBX
00404C82 |. 5E         POP ESI
00404C83 |. 5F         POP EDI
00404C84 |. 5D         POP EBP
00404C85 \. C3         RETN

加密是这个函数,时间太少,稍微看看,没看出来什么加密,key放在密文中,取出后作为参与递增指针计算.

另外我写的脚本是用DeviceIoControl做定位,其实只要找到第一个DeviceIoControl之后的VirtualAlloc,
申请一大块内存的,在createprocess之前,就已经解密好放在内存中了.所以手工脱可能更快.
只不过这里是动态生成,且没什么规律,写脚本不好定位.

脚本在这里:

/*
fishpe1.12 od脱壳脚本.
test on ODBGScript 1.53
by ZV(zvrop_at_163_dot_com).
*/
data:
  var temp
  var tempa
  var allocsize
  var allocbase
  var bpfunc
  gpa "DeviceIoControl","kernel32.dll"
  mov bpfunc,$RESULT
  bphws bpfunc,"x"
run_on:  
  run
  mov temp,esp
  add temp,8
  mov temp,[temp]
  cmp  temp,c350241C
  jne run_on
  run
  mov temp,esp
  add temp,8
  mov tempa,[temp]
  cmp  tempa,c350241C
  jne error
  add temp,4
  mov temp,[temp]
  add temp,8
  mov allocbase,[temp]
  add temp,4
  mov allocsize,[temp]
  dm allocbase,allocsize,"dump_fishPE1.12.exe"
  MSG "dumpfile => dump_fishPE1.12.exe,dump出的程序请用loadpe重建一下"
  jmp fin
error:
  MSG "脚本出错"
fin:
  bphwc bpfunc
  ret

ZV 2007-8-7 23:22

随便放上主程序脱壳后的文件

valorchang 2007-8-8 11:25

加壳运行后出现如下提示:
仅完成部分的readprocesssmemoty和writeprocessmemory,1.12和1.13都一样请LZ检查.

hellfish 2007-8-8 12:43

[quote]引用第9楼ZV于2007-08-07 23:22发表的 :
随便放上主程序脱壳后的文件[/quote]


非常感谢,其实我在 [url]http://www.unpack.cn/thread-15757-1-1.html[/url] 上有比较详细的讨论

希望今天的新版本也能得到你调试的帮助,而且问题的关键就是你所说的,驱动并没有去考虑用调试
器加载时内存被DUMP的问题.所以强度一直上不来

页: [1]
© 1999-2008 EvilOctal Security Team