KR19990036567A - 컴퓨터프로그램에의 무단억세스를 방지하는 방법 및 시스템 - Google Patents

컴퓨터프로그램에의 무단억세스를 방지하는 방법 및 시스템 Download PDF

Info

Publication number
KR19990036567A
KR19990036567A KR1019980028802A KR19980028802A KR19990036567A KR 19990036567 A KR19990036567 A KR 19990036567A KR 1019980028802 A KR1019980028802 A KR 1019980028802A KR 19980028802 A KR19980028802 A KR 19980028802A KR 19990036567 A KR19990036567 A KR 19990036567A
Authority
KR
South Korea
Prior art keywords
processor
storage location
program
mode
routine
Prior art date
Application number
KR1019980028802A
Other languages
English (en)
Other versions
KR100394090B1 (ko
Inventor
이 비리츠 알랜
Original Assignee
헨리 엔 가라나
델 유에스에이 엘 피
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 헨리 엔 가라나, 델 유에스에이 엘 피 filed Critical 헨리 엔 가라나
Publication of KR19990036567A publication Critical patent/KR19990036567A/ko
Application granted granted Critical
Publication of KR100394090B1 publication Critical patent/KR100394090B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 프로그램이 디버거 유틸리티프로그램하에서 실행되는 것을 방지하는 시스템 및 방법에 관한 것이다.
이 방법은 컴퓨터시스템의 하드드라이브에 소프트웨어와 함께 저장된 루틴의 일부이다. 컴퓨터시스템은 소프트웨어프로그램과 루틴을 실행하고 디버거모드에서 동작할 수 있는 프로세서를 가진다. 루틴은, 예컨대 프로세서가 디버거모드에서 실행되는 것과 같이, 소프트웨어프로그램에 대한 무단 억세스를 방지한다. 프로세서가 소프트웨어프로그램을 실행할 때, 프로그램은 루틴의 실행을 개시한다. 일단 개시되면, 루틴은 프로세서의 특정한 레지스터를 검사하여 프로세서가 디버거모드에서 동작하는가를 결정하고, 만일 그렇다면 프로세서가 소프트웨어 프로그램을 계속하여 실행하는 것을 중단한다.

Description

컴퓨터프로그램에의 무단억세스를 방지하는 방법 및 시스템
본 발명은 컴퓨터 및 컴퓨터 프로그램에 관한 것으로서, 보다 구체적으로는 프로그램이 디버거 유틸리티 프로그램하에서 실행되는 것을 방지하는 시스템 및 방법에 관한 것이다.
종종 컴퓨터 내부에서 저장되어 있는 컴퓨터 프로그램은 다수의 보호할 가치있는 지적 재산을 포함한다. 이들 재산중 어떤 것들은 저작권법이나 특허법을 통해 보호될 수 있다. 그러나, 이들 재산중 다른 것들은 영업비밀로서 보호되어야 하므로, 무단 사용이나 억세스를 방지하기 위해 최대한의 보안성을 요구한다.
소프트웨어 라이센스계약이나 기타 다른 형태의 보호계약에 구속되지 않는 유저에게 프로그램이 일단 입수되면, 그 프로그램의 무단 사용이나 억세스를 방지하는 것은 곤란하게 된다. 예를 들면, 진단프로그램은 컴퓨터 제조업자에 의하여 컴퓨터상에 종종 설치되는데, 이 속에는 제조업자의 많은 영업비밀이 포함될 수 있다. 전형적으로는 프로그램의 실행가능한(.exe) 부분만이 설치되므로, 소스코드를 유저로부터 보호할 수 있다. 더욱이, 프로그램의 실행가능한(.exe) 부분은 종종 암호화된다. 예를 들면, 웨스트인디아주 브라운 디어에 소재하는 PKWARE의 유틸리티프로그램 PKLITE은 프로그램의 실행부를 압축하여 처리과정에서 암호화한다. 그러나, 이것은 유저가 디버거 유틸리티프로그램을 통해 프로그램을 실행하는 것을 방지하지 못한다. 디버거 유틸리티프로그램은 프로세서가 실행을 중단하거나 어떤 소정의 간격으로 다른 루틴으로 점프하도록 하는 중단된 실행모드에서 컴퓨터의 프로세서가 동작하게 한다. 예를들면, 프로세서는 인텔사에 의해 생산되는 펜티엄프로세서이고, 중단된 실행모드의 예는 디버그 및 싱글스텝 동작모드를 포함하는데, 이것들은 모두 인텔사의 "인텔 아키텍쳐 소프트웨어 개발자 매뉴얼, 1-3권, 1997년판" 에 상세히 기술되어 있다. 디버거 프로그램을 사용함으로써, 유저는 부정하게 프로그램을 억세스할 수 있어서 거기에 저장된 영업비밀을 억세스할 수 있다. 따라서, 디버거 유틸리티프로그램을 통해서라도 프로그램에 무단으로 억세스할 수 없도록 하는 시스템과 방법이 필요하게 되었다.
본 발명은 전술한 바와 같은 종래의 문제점에 착안하여 제안된 것으로서, 본 발명은 비록 디버거 유틸리티프로그램일지라도, 프로그램의 무단 억세스를 방지할 수 있는 시스템 및 방법을 제공하고자 하는 것이다.
도 1은 일 실시에를 구현하는 컴퓨터의 블록도,
도 2는 도 1의 컴퓨터에 의해 실행되는 루틴의 플로우차트.
<도면의 주요 부분에 대한 부호의 설명>
10 : 컴퓨터 12 : 프로세서
14 : RAM 16 : 하드디스크드라이브
18 : 플로피디스크 드라이브 20 : 버스
22 : 인터럽트레지스터 24 : 플래그레지스터
26 : 프로그램 실행가능 파일
본 발명의 실시예에 따르면, 루틴 및 소프트웨어프로그램이 컴퓨터 시스템의 하드드라이브에 저장된다. 컴퓨터시스템은 소프트웨어프로그램과 루틴을 실행하는 프로세서를 가지고 중단된 실행모드에서 작동할 수 있다. 루틴은, 예컨대 프로세서가 디버거 유틸리티프로그램하에서 중단된 실행모드에서 실행될 때, 소프트웨어프로그램에 대한 무단억세스를 방지한다. 프로세서가 소프트웨어프로그램을 실행할 때, 프로그램은 루틴의 실행을 개시할 수 있다. 일단 개시되면, 루틴은 소정의 기억위치를 검사하여 실행 모드에서 동작하는가 여부를 결정하고, 만일 그렇다면 프로세서가 소프트웨어프로그램을 계속하여 실행하는 것을 정지시킨다.
일 실시예에 있어서, 기억위치는 프로세서의 인터럽트레지스터로서, 이것은 디버그 동작모드에서 대체로 사용되는 임의의 브레이크포인트가 사용되고 있는지를 나타낸다. 루틴은 인터럽트레지스터를 검사하여 이것이 다른 프로그램이나 루틴을 나타내는지를 결정한다. 만일 그렇다면, 프로세서는 디버그모드에서 실행될 것이고 루틴은 프로세서가 원래의 프로그램을 계속해서 실행하는 것을 중단시킨다. 또다른 실시예에 있어서, 기억위치는 프로세서의 플래그레지스터이고, 이것은 프로세서가 다른 동작모드인가를 나타낸다. 이 실시예에서, 루틴은 플래그레지스터를 검사하여 그것이 프로세서의 단일스텝모드를 나타내는지를 결정한다. 만일 그렇다면, 루틴은 프로세서의 프로그램을 실행하는 중단시킨다.
이하에서 도면을 참조하여 본 발명의 바람직한 실시예를 설명한다. 도 1을 참조하면, 번호 10은 적어도 하나의 프로세서(12), 램(14), 하드디스크드라이브(16) 및 플로피디스크드라이브(18)를 포함하는 다수의 구성품을 가진 컴퓨터를 지칭한다. 각각의 구성품은 일반적인 버스(20)로 나타낸 바와같이 프로세서(12)와 통신할 수 있다. 본 실시예에서, 프로세서(12)는 마이크로소프트사의 DOS운영체계코드를 실행한다. 그러나, 컴퓨터(10) 및 도시된 구성품들은 다양한 종류의 컴퓨터 및 구성품들을 예시하는 것이고, DOS는 마이크로소프트사의 윈도우 및 윈도우95를 포함하는 다른 모든 운영체계를 대표하는 뜻으로 해석된다.
프로세서(12)는 인터럽트레지스터(22)와 플래그레지스터(24)를 포함하는 다수의 레지스터를 포함한다. 레지스터(22,24)의 명칭은 펜티엄 및 펜티엄II 프로에 관한 것이지만, 모든 모델과 브랜드의 프로세서에 대한 유사한 레지스터를 예시하는 것이다. 레지스터(22,24)는 인텔 아키텍쳐 소프트웨어 개발자의 매뉴얼에도 역시 기재되어 있는데, 이 매뉴얼은 정상모드, 디버그모드, 및 단일스텝모드를 포함하는 몇가지 다른 프로그램 운영체계모드를 기재하고 있다.
하드디스크드라이브(16)상에는 프로그램의 실행(.exe) 파일(26)이 저장된다. 프로그램(26)은 최근에 전술한 PKLITE같은 통상의 유틸리티를 사용하여 압축 및 암호화된다. 프로그램(26)이 암호화되어 있어서, 유저는 쉽게 하드디스크(16)를 읽어서 프로그램을 억세스하고 디컴파일할 수 없다. 그러나, 통상적으로 유저는 프로그램(26)을 램(14)에 로드할 수 있고 (도시 안된) 디버그 유틸리티프로그램을 사용하여 프로세서로 프로그램을 실행할 수 있다. 그렇게 함으로써, 유저는 프로그램(26) 코드의 각 라인을 알아내어 프로그램을 디컴파일하여 프로그램에의 무단억세스를 달성할 수 있다.
도 2를 참조하면, 역시 하드디스크(16)에 저장된 루틴(100)은 디버그 유틸리티프로그램을 사용하여 유저가 프로그램(26)을 실행하는 것을 방지한다. 프로그램(26)은 프로그램의 초기작동 중에 루틴(100)을 시작한다. 그러므로, 예를들어, 루틴(100)이 초기수행루틴이지만, 프로그램(26)이 실행되는 동안 언제라도 루틴(100)이 실행될 수 있을 것이다.
스텝 102에서, 루틴(100)은 레지스터(22,24)를 검사한다. 전술한 인텔펜티엄프로세서를 예로 들면, 구체적으로 INTERRUPT레지스터(22)는 Debug레지스터(7)가 되고 FLAG레지스터(24)는 EFLAG레지스터로 된다. 스텝 104에서 루틴(100)은 EFLAG레지스터(24)의 트랩플래그(TF)가 설정되었는지를 결정한다. TF가 설정되어 단일스텝모드를 나타내면, 루틴(100)은 스텝 106에서 프로그램(26)의 실행을 중단한다. TF가 클리어이면, 실행은 스텝 108로 진행하는데, 여기서 루틴(100)은 INTERRUPT레지스터(22)의 브레이크포인트플래그(INT3)가 지정하는 장소를 결정한다. INT3는 종종 디버그프로그램으로 사용되는 브레이크포인트 익셉션 핸들러루틴(breakpoint exception handler routine)과 같은 루틴을 지정할 수 있다. 또는 이것은 다른 프로그램이나 루틴이 호출되지 않는 것을 의미하는 리턴명령"IRET"을 포함할 수 있다. INT3가 IRET 이외의 명령을 지정하면, 전술한 스텝 106으로 진행된다. 그렇지 않으면, 수행은 스텝 110으로 진행하여 루틴(100)이 프로그램(26)에의 제어로 복귀하여, 프로그램이 이제는 정상적으로 수행된다. 레지스터(22,24)를 검사함으로써, 루틴(100)은 프로세서(12)가 디버그모드에서 동작하는지의 여부를 알고, 프로그램(26)이 디버그 유틸리티프로그램하에서 실행되는 것을 방지한다.
지금까지 본 발명의 바람직한 실시예가 설명되었으나, 본 발명의 기술사상의 범위 내에서 여러 가지 수정과 변형이 가해질 수 있다. 예를 들면, 루틴(100)은 프로그램(26)에 의해 반복적으로 호출될 수 있어, 프로그램이 디버그에 의해서 실행되지 않는 것을 확실하게 할 수 있다. 또한, 프로그램(26) 및 루틴(100)은 다른 위치에 저장될 수 있고, 부가적이거나 대체적인 레지스터, 플래그 또는 기억장치가 검사될 수 있고, 부수적인 에러 핸들링루틴이 본 실시예에 부가될 수 있다.

Claims (21)

  1. 소프트웨어프로그램을 실행하며, 중단된 실행모드에서 동작할 수 있고, 프로세서가 현재 중단된 실행모드에서 동작하는지를 나타내는 제1 기억위치를 가지는 적어도 하나의 프로세서와;
    프로세서에 의해 억세스가능한 저장장치와;
    그 저장장치 내에 위치된 루틴을 포함하며;
    프로세서가 소프트웨어프로그램을 실행할 때, 프로그램이 루틴을 개시할 수 있고;
    일단 개시되면, 루틴이 제1 기억위치를 검사하여 프로세서가 중단된 실행모드에 있는가 여부를 결정하며, 만일 그렇다면 프로세서가 소프트웨어 프로그램을 계속해서 실행하는 것을 중단시키는 것을 특징으로 하는 컴퓨터.
  2. 제 1 항에 있어서, 상기 제1 기억위치는 프로세서의 인터럽트레지스터인 것을 특징으로 하는 컴퓨터.
  3. 제 1 항에 있어서, 상기 제1 기억위치는 프로세서의 플래그레지스터인 것을 특징으로 하는 컴퓨터.
  4. 제 1 항에 있어서, 상기 프로세서는 제2 기억 위치를 더 포함하며, 상기 제1 기억위치는 인터럽트레지스터이고 제2 기억위치는 플래그레지스터이며, 이들 레지스터중 어느 하나는 프로세서가 현재 중단된 실행모드에서 동작하고 있는가를 나타낼 수 있는 것을 특징으로 하는 컴퓨터.
  5. 제 1 항에 있어서, 상기 중단된 실행모드는 디버그모드인 것을 특징으로 하는 컴퓨터.
  6. 제 1 항에 있어서,상기 중단된 실행모드는 단일스텝모드인 것을 특징으로 하는 컴퓨터.
  7. 제 1 항에 있어서, 상기 프로세서가 중단된 실행모드에 있지 않다고 루틴이 결정하면, 그 루틴은 실행을 소프트웨어프로그램으로 복귀하는 것을 특징으로 하는 컴퓨터.
  8. 제 1 항에 있어서, 상기 저장장치는 하드디스크인 것을 특징으로 하는 컴퓨터.
  9. 제 1 항에 있어서, 상기 저장장치는 플로피디스크인 것을 특징으로 하는 컴퓨터.
  10. 제 1 항에 있어서, 상기 저장장치는 랜덤억세스메모리인 것을 특징으로 하는 컴퓨터.
  11. 중단된 실행모드에서 동작하는 프로세서상에서 유저가 프로그램을 실행하는 것을 방지하는 방법에 있어서,
    제1의 소정의 기억위치를 검사하는 단계;
    제1의 기억위치가 또 다른 루틴을 호출하는가를 결정하는 단계; 및
    만일 그렇다면 프로세서가 프로그램을 계속해서 실행하는 것을 중단시키는 단계를 포함하는 것을 특징으로 하는 방법.
  12. 제 11 항에 있어서, 제2의 소정 기억위치를 검사하는 단계;
    제2의 기억위치가 프로세서 작동이 중단된 실행모드를 나타내는가를 결정하는 단계; 및
    만일 그렇다면 프로세서가 프로그램을 계속해서 실행하는 것을 중단시키는 단계를 더 포함하는 것을 특징으로 하는 방법.
  13. 제 11 항에 있어서, 상기 제1 기억위치는 프로세서의 인터럽트레지스터인 것을 특징으로 하는 방법.
  14. 제 12 항에 있어서, 상기 제1 기억위치는 프로세서의 인터럽트레지스터이고 상기 제2 기억위치는 프로세서의 플래그레지스터인 것을 특징으로 하는 방법.
  15. 제 11 항에 있어서, 상기 작동의 중단된 실행모드는 단일스텝모드인 것을 특징으로 하는 방법.
  16. 제 12 항에 있어서, 상기 작동의 중단된 실행모드는 디버그모드인 것을 특징으로 하는 프로그램 실행의 방지방법.
  17. 디버그모드에서 동작하는 프로세서상의 프로그램을 유저가 실행하는 것을 방지하는 장치에 있어서,
    제1의 소정 기억위치를 검사하는 수단;
    상기 제1 기억위치는 프로세서가 중단된 실행모드에서 동작하는가를 결정하는 수단; 및
    상기 제1 기억위치가 중단된 실행모드를 나타내는 결정에 응답하여 프로세서가 프로그램을 계속해서 실행하는 것을 중단시키는 수단을 포함하는 것을 특징으로 하는 장치.
  18. 제 17 항에 있어서, 제2의 소정 기억위치를 검사하는 수단;
    제2의 기억위치가 또다른 루틴을 나타내는가를 결정하는 수단; 및
    상기 제2의 기억위치가 또다른 루틴을 나타내는 결정에 응답하여 프로세서가 프로그램을 계속해서 실행하는 것을 중단시키는 수단을 더 포함하는 것을 특징으로 하는 장치.
  19. 제 17 항에 있어서, 상기 제1 기억위치는 프로세서의 플래그레지스터인 것을 특징으로 하는 장치.
  20. 제 18 항에 있어서, 상기 제1 기억위치는 프로세서의 플래그레지스터이고, 상기 제2 기억위치는 프로세서의 인터럽트레지스터인 것을 특징으로 하는 장치.
  21. 제 17 항에 있어서, 상기 동작의 중단된 실행모드는 단일스텝모드인 것을 특징으로 하는 프로그램 실행의 방지장치.
KR10-1998-0028802A 1997-10-15 1998-07-16 컴퓨터프로그램에의무단억세스를방지하는방법및시스템 KR100394090B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/950,626 1997-10-15
US8/950,626 1997-10-15
US08/950,626 US6237137B1 (en) 1997-10-15 1997-10-15 Method and system for preventing unauthorized access to a computer program

Publications (2)

Publication Number Publication Date
KR19990036567A true KR19990036567A (ko) 1999-05-25
KR100394090B1 KR100394090B1 (ko) 2003-12-31

Family

ID=25490685

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1998-0028802A KR100394090B1 (ko) 1997-10-15 1998-07-16 컴퓨터프로그램에의무단억세스를방지하는방법및시스템

Country Status (14)

Country Link
US (1) US6237137B1 (ko)
JP (1) JPH11175336A (ko)
KR (1) KR100394090B1 (ko)
CN (1) CN1185589C (ko)
AU (1) AU736077B2 (ko)
BR (1) BR9802354B1 (ko)
DE (1) DE19847677C2 (ko)
FR (1) FR2772157A1 (ko)
GB (1) GB2330932B (ko)
IE (1) IE980483A1 (ko)
IT (1) IT1303132B1 (ko)
MY (1) MY115760A (ko)
SG (1) SG75856A1 (ko)
TW (1) TW389859B (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6519721B1 (en) * 1999-05-19 2003-02-11 Intel Corporation Method and apparatus to reduce the risk of observation of program operation
US7270193B2 (en) * 2000-02-14 2007-09-18 Kabushiki Kaisha Toshiba Method and system for distributing programs using tamper resistant processor
JP4892167B2 (ja) 2000-07-18 2012-03-07 シンプレックス メジャー センドリアン ベルハッド ディジタル・データ保護構成
DE10126281A1 (de) * 2001-05-29 2002-12-12 Infineon Technologies Ag Programmgesteuerte Einheit
TWI231896B (en) 2001-06-29 2005-05-01 Secure Systems Ltd Security system and method for computers
KR100781554B1 (ko) 2004-11-29 2007-12-03 주식회사 안철수연구소 실시간 컴퓨터 프로그램의 디버깅 방지 방법 및 그 기록매체
US20060137016A1 (en) * 2004-12-20 2006-06-22 Dany Margalit Method for blocking unauthorized use of a software application
EP1851670B1 (en) * 2005-02-11 2016-08-10 Simplex Major SDN. BHD., Software protection method
JP4810846B2 (ja) * 2005-03-15 2011-11-09 富士ゼロックス株式会社 プログラムデータの不正利用を阻止するプログラム
US8510596B1 (en) * 2006-02-09 2013-08-13 Virsec Systems, Inc. System and methods for run time detection and correction of memory corruption
WO2007147495A2 (en) * 2006-06-21 2007-12-27 Wibu-Systems Ag Method and system for intrusion detection
JP4048382B1 (ja) * 2006-09-01 2008-02-20 富士ゼロックス株式会社 情報処理システムおよびプログラム
US9262250B2 (en) * 2011-12-12 2016-02-16 Crashlytics, Inc. System and method for data collection and analysis of information relating to mobile applications
US9087154B1 (en) 2011-12-12 2015-07-21 Crashlytics, Inc. System and method for providing additional functionality to developer side application in an integrated development environment
US9703680B1 (en) 2011-12-12 2017-07-11 Google Inc. System and method for automatic software development kit configuration and distribution
DE202013101230U1 (de) 2013-03-22 2013-04-10 Oleg A. Schlegel Einrichtung einer Gegenwirkung mit einer Filtrierung von Ereignissen eines unbefugten Zugangs auf ein Programm eines portativen Computers
JP2016534479A (ja) 2013-09-12 2016-11-04 ヴァーセック・システムズ・インコーポレーテッドVirsec Systems,Inc. マルウェアのランタイム中の自動検出
US10354074B2 (en) 2014-06-24 2019-07-16 Virsec Systems, Inc. System and methods for automated detection of input and output validation and resource management vulnerability
AU2017285429B2 (en) 2016-06-16 2022-03-31 Virsec Systems, Inc. Systems and methods for remediating memory corruption in a computer application
JP7076014B2 (ja) * 2018-05-29 2022-05-26 ライン プラス コーポレーション プログラム保護のためのJavaデバッガ遮断方法およびシステム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57161946A (en) 1981-03-30 1982-10-05 Fujitsu Ltd Microcomputer with protecting mechanism for memory contents
US4525780A (en) * 1981-05-22 1985-06-25 Data General Corporation Data processing system having a memory using object-based information and a protection scheme for determining access rights to such information
US4369449A (en) 1981-06-01 1983-01-18 Macdougall James B Linearly polarized omnidirectional antenna
JPS5894195A (ja) 1981-11-30 1983-06-04 Nec Home Electronics Ltd ワンチツプ・マイクロコンピユ−タ
US4525599A (en) * 1982-05-21 1985-06-25 General Computer Corporation Software protection methods and apparatus
EP0153764B1 (en) * 1984-03-02 1993-11-03 Nec Corporation Information processor having an interruption operating function
JPS62126448A (ja) 1985-11-27 1987-06-08 Fuji Electric Co Ltd メモリの管理・保護方式
JPS63163912A (ja) * 1986-12-26 1988-07-07 Toshiba Corp マイクロコンピユ−タシステム
US4819234A (en) * 1987-05-01 1989-04-04 Prime Computer, Inc. Operating system debugger
US5432795A (en) * 1991-03-07 1995-07-11 Digital Equipment Corporation System for reporting errors of a translated program and using a boundry instruction bitmap to determine the corresponding instruction address in a source program
US5551033A (en) * 1991-05-17 1996-08-27 Zenith Data Systems Corporation Apparatus for maintaining one interrupt mask register in conformity with another in a manner invisible to an executing program
US5446900A (en) * 1992-07-24 1995-08-29 Microtec Research, Inc. Method and apparatus for statement level debugging of a computer program
US5671422A (en) * 1994-11-14 1997-09-23 Intel Corporation Method and apparatus for switching between the modes of a processor
WO1997004394A1 (en) 1995-07-14 1997-02-06 Christopher Nathan Drake Computer software authentication, protection, and security system

Also Published As

Publication number Publication date
BR9802354A (pt) 1999-10-19
AU8089198A (en) 1999-05-06
AU736077B2 (en) 2001-07-26
FR2772157A1 (fr) 1999-06-04
CN1185589C (zh) 2005-01-19
IE980483A1 (en) 1999-06-02
MY115760A (en) 2003-08-30
GB2330932B (en) 2002-06-26
JPH11175336A (ja) 1999-07-02
DE19847677C2 (de) 2003-08-14
ITTO980865A1 (it) 2000-04-12
IT1303132B1 (it) 2000-10-30
US6237137B1 (en) 2001-05-22
TW389859B (en) 2000-05-11
CN1215870A (zh) 1999-05-05
BR9802354B1 (pt) 2009-12-01
SG75856A1 (en) 2000-10-24
KR100394090B1 (ko) 2003-12-31
DE19847677A1 (de) 1999-05-06
GB2330932A (en) 1999-05-05
GB9821547D0 (en) 1998-11-25

Similar Documents

Publication Publication Date Title
KR100394090B1 (ko) 컴퓨터프로그램에의무단억세스를방지하는방법및시스템
US7243340B2 (en) Method and system for obfuscation of computer program execution flow to increase computer program security
Williams et al. Device Driver Safety Through a Reference Validation Mechanism.
US7293251B2 (en) Initiating and debugging a process in a high assurance execution environment
JP4518564B2 (ja) 不正コード実行の防止方法、不正コード実行の防止用プログラム、及び不正コード実行の防止用プログラムの記録媒体
US7917753B2 (en) Transferring control between programs of different security levels
JP4898155B2 (ja) ユーザ・モード・プロセスが特権実行モードで動作することを可能にする方法
US6697959B2 (en) Fault handling in a data processing system utilizing a fault vector pointer table
US20040250086A1 (en) Method and system for protecting against software misuse and malicious code
Abrath et al. Resilient self-debugging software protection
US7496958B2 (en) System for selectively enabling operating modes of a device
US6687845B2 (en) Fault vector pointer table
EP2171590A2 (en) Authorised debugging
Johnson Writing linux device drivers
Fang et al. InvisiGuard: Data Integrity for Microcontroller-Based Devices via Hardware-Triggered Write Monitoring
KR100490732B1 (ko) 컴퓨터 운영체제에서의 커널 수준의 스택 오버플로우 방지방법
Colson Enabling user-mode processes in the target OS for CSC 159 operating system pragmatics
CN118153040A (zh) 一种保护信创操作系统关键进程的方法及装置
Wojtczuk A stitch in time saves nine a stitch in time saves nine: A case of multiple os vulnerability
Abdulmalik et al. Windows Vista Kernel-Mode: Functions, Security Enhancements and Flaws
Goodman Clearer, More Comprehensive Error Processing with Win32 (R) Structured Exception Handling
McIntosh NTDR INFOSEC: software security and the 80486 microprocessor
Mohammed et al. Windows Vista Kernel-Mode: Functions, Security Enhancements and Flaws
JPS6091447A (ja) プログラム保護方式
JPH04139534A (ja) セキュリティシステム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130708

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20140709

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20150707

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20160713

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20170710

Year of fee payment: 15

EXPY Expiration of term