소프트이스

SoftICE

소프트이스
원저작자누메가
개발자소프트웨어
초기 릴리즈1987년; 35년 전 (1987년) (DOS)
최종 릴리즈
v4.05 / 2000; 22년 전 (2000)[1]
운영 체제Microsoft Windows
유형디버거
면허증.독자 사양

SoftICE는 Windows XP까지의 DOSWindows용 커널 모드 디버거입니다.Windows 환경에서 동작하도록 설계되어 있기 때문에, operating system은 그 존재를 인식하지 않습니다.애플리케이션 디버거와 달리 SoftICE는 지시에 따라 Windows의 모든 작업을 일시 중단할 수 있습니다.SoftICE는 낮은 수준의 기능으로 소프트웨어 크래킹 툴로도 인기가 있습니다.

Microsoft는 WinDbg와 KD라는2개의 커널 모드 디버거를 무료로 제공하고 있습니다.그러나 WinDbg 및 KD의 모든 기능은 상호 연결된 두 대의 컴퓨터를 사용해야만 사용할 수 있습니다.따라서 SoftICE는 까다로운 운전자 관련 개발에 매우 유용한 도구입니다.마지막으로 출시된 버전은 Windows XP용입니다.

DOS 및 호환되는 운영 체제용 이전 버전이 있습니다.SoftICE는 원래 NuMega라는 회사가 생산한 후 1997년에 Compuware에 인수되어 2009년에 Micro Focus에 매각되었습니다.현재 Micro Focus는 소스 코드와 특허를 소유하고 있지만 Soft를 적극적으로 유지 보수하고 있지 않습니다.얼음.

명명

「소프트」는 소프트웨어를 나타내고, 「ICE」는 회로내 에뮬레이터암시합니다.

역사

오리지널 소프트ICE for DOS는 1987년 NuMega의 창업자인 Frank Grossman과 Jim Moskun에 의해 작성되었습니다.80386 어셈블리 언어로 작성된 이 프로그램은 운영 체제의 역할을 하며 가상 8086 모드에서 소프트웨어를 실행했습니다.그것은 386달러에 팔렸다.

SoftICE/W(Windows용)는 1990년대에 개발되었으며 Andrew Schulman, David Maxey 및 Matt Pietrek의 "문서화되어 있지 않은 Windows" 집필에 중요한 역할을 했습니다.SoftICE/W는 이전의 덜 알려진 제품인 SoftICE for NetWare(32비트 보호 모드)에서 파생되었습니다.Microsoft 디버거에 비해 주요 장점 중 하나는 시리얼 포트를 통해 두 번째 머신을 연결할 필요가 없는 단일 머신의 디버깅이 가능하다는 것입니다.

Soft의 주요 개발자ICE는 돔 베이실('Mr. SoftICE'), 톰 긴터(주방 싱크, 심볼 엔진), 제럴드 릭먼(비디오 드라이버 키친 싱크), 레이 허(Windows 95용 비디오 드라이버), 댄 밥콕(SoftICE/NT 3.1/3.5): 범용 비디오 드라이버에 의한 유니버설 공헌, 심볼을 했습니다.리크

1998년에 Soft의 코드 베이스는ICE/95는 Windows NT 플랫폼에서 실행되도록 이식되었습니다.

Soft의 새로운 버전ICE 패치를 Microsoft Windows에 심도 있게 적용.이와 같이 Soft의 이전 버전은ICE는 새로운 버전의 Windows와 거의 호환되지 않습니다.따라서 Compuware는 Soft를 제공했습니다.ICE는 최신 Microsoft Windows 버전과 동기화할 수 있도록 서브스크립션으로 제공됩니다.

이전에는 Compuware의 Driver Studio 패키지의 일부로 제공되었지만 2006년 4월에 단종되었습니다.

종료

2006년 4월 3일부로 Driver Studio 제품 시리즈는 "다양한 기술적, 비즈니스적 문제 및 일반적인 시장 상황"으로 인해 단종되었습니다.유지보수 지원은 2007년 3월 31일까지 제공되었습니다.

안티소프트ICE 측정

소프트웨어 벤더는 Soft를 고용하는 사람들로부터 자신을 보호하기 위해 광범위한 대응책을 마련하고 있습니다.소프트웨어를 분석하는 도구로서의 ICE.

예를 들어 일부 벤더가 Soft의 존재를 검출하기 위해 사용하는 코드를 다음에 나타냅니다.초기 대책과 동일한 기계에서 실행되는 ICE:

 움직이다 이액스, 워드 ptr [pIDT+2]; eax -> IDT  더하다 이액스, 8                 ; eax -> int 1 벡터  움직이다 ebx, [이액스]             ; ebx == int 1 벡터  더하다 이액스, 16                ; eax -> int 3 벡터  움직이다 이액스, [이액스]             ; eax == int 3 벡터  그리고. 이액스, 0FFFH            ; 셀렉터를 떼어냅니다.  그리고. ebx, 0FFFH            일부  후보선수 이액스, ebx               ; 치환을 구하다  cmp 이액스, 10h jne  해킹된 벡터           ;같지 않다, 그러면 가능성이 있다.                             ; SoftICE는 이러한 벡터를 조작했습니다. 

그 이후로 그러한 조치들이 점점 더 발전해 왔다.이들 대부분은 경험이 부족하고 결단력이 있는 해커들을 저지할 수 있을 뿐이지만 SoftICE는 소프트웨어 분석을 처음 하는 사람들이 선택하는 도구가 아닙니다.

오늘날 벤더의 방어는 다음과 같은 보다 정교한 패커/프로텍터를 기반으로 합니다.Temida, Armadillo 또는 ASProtect는 프로그램 코드를 포장하고 진입점 주소를 조작하여 프로그램의 원래 진입점(OEP)을 찾기 어렵습니다.이는 프로그램의 IAT(Import Address Table)에도 해당됩니다.그러나 Soft를 숨기기 위한 도구Windows NT의 경우 IceStealth 및 IceExt, Windows 9x의 [2]경우 Iceump 및 IcePatch와 같은 ICE도 사용할 수 있습니다.

접수처

1989년 BYTE는 "80386 머신에서 8086 기반 애플리케이션을 개발한다면 이는 필수적이고 저렴한 도구"[3]라고 말하며 BYTE Awards의 "Distribution" 수상자로 Soft-ICE를 선정했습니다.

대체 수단

Syser라고 하는 상용 커널 레벨 디버거는 Soft에서 계속된다고 주장합니다.ICE가 꺼졌다.

무료로 사용할 수 있는 Shareware 디버거인 Oleh Yuschuk의 32비트 어셈블리 레벨 디버거입니다.단, 사용자 모드 디버깅에만 사용할 수 있습니다.

Soft와 유사한 오픈 소스 커널 디버거RR0D(Rasta Ring 0 Debugger)라는 이름의 ICE를 사용할 [4][5]수 있습니다.Microsoft Windows, Linux, OpenBSD, NetBSDFreeBSD대한 낮은 수준의 디버깅을 제공합니다.이 프로젝트는 적극적으로 유지되고 있지 않은 것 같다.2016년 6월 현재, GitHub 소스 코드 저장소의 마지막 변경은 [6]2008년 12월에 발생했습니다.

BugChecker라고 하는 디버거는 Windows 2000 및 XP용 32비트 싱글호스트 커널 디버거로 교육용으로 개발 및 제공되고 있습니다.BugChecker를 사용하면 Windows 2000 및 [7]XP의 유니프로세서 버전과 멀티프로세서 버전 모두에서 사용자 코드와 커널 코드를 추적할 수 있습니다.

많은 하이퍼바이저에서는 가상화된 프로세서를 직접 제어할 수 있는 일종의 디버거 인터페이스를 노출하여 가상 시스템에서 실행 중인 커널을 디버깅할 수 있습니다.이를 통해 커널에 네이티브 디버깅 기능이 없는 경우에도 디버깅이 가능합니다.

레퍼런스

  1. ^ 누메가 소프트ICE 4.05 릴리즈 노트
  2. ^ "Category:SoftICE Extensions - Collaborative RCE Tool Library". Woodmann.com. Retrieved 2014-04-24.
  3. ^ "The BYTE Awards". BYTE. January 1989. p. 327.
  4. ^ "RR0D/Presentation". Wiki.droids-corp.org. Retrieved 2014-04-24.
  5. ^ "Rasta Ring 0 Debugger (RR0D) - Collaborative RCE Tool Library". Woodmann.com. 2007-10-18. Retrieved 2014-04-24.
  6. ^ joe. "ice799/rr0d". Github.com. Retrieved 2016-06-05.
  7. ^ "BugChecker". BugChecker. Retrieved 2014-04-24.

외부 링크