• 제목/요약/키워드: 디버깅

검색결과 334건 처리시간 0.023초

자바 원시 코드에서 논리적인 오류를 찾는 복합 디버깅 기술의 설계 (Design of Hybrid Debugging Technique for Locating Logical Errors in Java Source Codes)

  • 고훈준
    • 한국콘텐츠학회논문지
    • /
    • 제6권10호
    • /
    • pp.114-125
    • /
    • 2006
  • 이전 논문은 자바 프로그램에서 논리적인 오류를 찾기 위한 기술로 HDT를 제안했었다. HDT는 알고리즈믹 프로그램 디버깅 기술을 이용하여 실행트리에서 오류를 포함하고 있는 메소드를 찾고, 단계적 프로그램 디버깅 기술을 이용하여 오류를 포함하고 있는 메소드에서 오류가 있는 문장을 찾아낸다. 이 기술은 전통적인 디버깅 기술보다 자바 프로그램에서 프로그래머가 디버깅하는 횟수를 줄였다. 그러나 최근에는 프로그램 크기가 증가하고 메소드의 수가 증가하고 있기 때문에 아직까지 HDT는 디버깅하는 횟수가 많다. 이 논문은 HDT에 프로그램 분할 기술을 적용하는 HDTS를 제안한다. 이 방법은 자바 프로그램을 디버깅할 때, HDT보다 프로그래머가 디버깅하는 횟수를 줄여 줄 수 있다. 특히, HDTS는 메소드와 문장의 수가 증가할수록 효율성이 증가한다.

  • PDF

Pin을 이용한 안티디버깅 우회 설계 및 구현 (The design and implementation of pin plugin tool to bypass anti-debugging techniques)

  • 홍수화;박용수
    • 인터넷정보학회논문지
    • /
    • 제17권5호
    • /
    • pp.33-42
    • /
    • 2016
  • Pin은 프로그램 동적 분석 도구를 생성할 수 있는 프레임워크로, 리눅스와 윈도우에서 사용자 영역의 프로그램 분석을 수행할 수 있게 한다. 역공학 방지 프로그램이나 악성코드는 프로그램 분석을 방해하는 안티디버깅이 적용되어 있기 때문에 Pin을 사용한 분석이 어렵다. 본 논문에서는 Pin을 이용해서 프로그램에 적용된 안티디버깅을 우회하여 동적 분석을 진행할 수 있는 Pin 플러그인 프로그램을 설계한 내용과 구현한 내용을 제안한다. Pin 탐지 안티디버깅을 우회할 수 있는 각각의 Pin 코드를 작성하고, Pin 코드를 하나로 합쳐 여러 안티디버깅을 우회할 수 있는 Pin 도구를 구현한다. 구현된 Pin 도구는 안티디버깅을 지원하는 프로텍터로 생성한 파일로 안티디버깅 우회 실험을 진행한다. 본 기법은 추후에 발견되는 안티디버깅 우회 코드 작성의 참고자료가 될 것이고 발견된 안티디버깅에 맞춰 수정 후 추가 적용이 가능할 것으로 예상된다.

리눅스 환경에서의 다중 프로세스 응용에 대한 원격 디버깅 기법 (A Remote Debugging Scheme for Multi-process Applications in Linux Environments)

  • 심현철;강용혁;엄영익
    • 한국정보과학회논문지:컴퓨팅의 실제 및 레터
    • /
    • 제8권6호
    • /
    • pp.630-638
    • /
    • 2002
  • 리눅스 기반의 임베디드 시스템에서 동작하는 응용 프로그램의 디버깅은 타겟 시스템의 제한된 자원으로 인하여 대부분 원격으로 이루어진다. 리눅스 기반의 시스템에서 동작하는 gdb는 원격에서 또는 로컬에서 디버깅 중인 프로세스가 fork 시스템 콜 호출 시 새로이 생성된 프로세스를 디버깅할 수 있도록 지원하지 않는다. 이에 따라, 리눅스 환경에서 동작하는 gdb와 gdbserver를 사용해서 단일 프로세스 구조를 갖는 옹용 프로그램을 원격 또는 로컬 디버깅할 수는 있으나 다중 프로세스 구조의 옹용 프로그램을 원격으로 디버깅할 수는 없다. 또한 로컬에서 gdb를 사용하여 다중 프로세스 구조의 응용 프로그램을 디버깅할 수는 있지만 이를 위해서는 개발자비 부가적인 코딩이 필요하다. 본 논문에서는 리눅스 커널의 변경 없이 라이브러리 래핑(wrapping) 방법을 이용하여 원격 시스템에서 동작하는 다중 프로세스 구조의 응용 프로그램을 gdb와 gdbserver를 사용하여 디버깅하는 방법을 제시한다.

자바 프로그램을 위한 효율적인 디버깅 방법 (A Efficient Debugging Method for Java Programs)

  • 고훈준;유원희
    • 한국산업정보학회:학술대회논문집
    • /
    • 한국산업정보학회 2002년도 춘계학술대회 논문집
    • /
    • pp.170-176
    • /
    • 2002
  • 자바 언어는 다양한 플랫폼과 다양한 분야에서 사용되고 있는 대표적인 객체지향 언어이다. 자바 언어는 객체지향의 특징 때문에 전통적인 절차지향 언어 보다 프로그램의 구조가 단순하다. 그러나 복잡한 자바 프로그램을 디버깅하는 일은 쉽지 않다. 디버깅은 항상 소프트웨어 발전의 많은 비용이 드는 부분이다. 자바 프로그램의 구문 오류는 현재 디버깅 시스템에 의해서 쉽게 발견된다. 그러나 자바 프로그램에 포함된 논리적인 오류는 발견하기가 어렵다. 자바 프로그램을 위한 기존의 디버깅 기술은 절차지향언어에서 사용하는 순차적인 방법을 사용하고 있다. 불행히도, 이 전통적인 방법들은 종종 특별한 프로그램의 오류를 찾는데 적당하지 않다. 이는 프로그램의 크기가 커지고 복잡해짐에 따라 디버깅하는데 걸리는 시간이 프로그램을 개발하는 시간의 많은 부분을 차지하게 된다. 디버거 사용자가 자바 프로그램 내에 포함되어 있는 오류를 쉽게 찾아내는 일은 효율적인 소프트웨어 개발에서 매우 중요하다. 본 논문에서는 사용자가 자바프로그램을 좀 더 빠르게 디버깅을 할 수 있도록 알고리즈믹 디버깅 방법을 적용한다. 알고리즈믹 디버깅 방법은 함수의 호출관계를 실행 트리로 구성하고 이를 검사하여 에러가 포함 되어 있는 함수를 발견하는 방법이다. 따라서 기존의 순차적인 방법보다 디버깅하는 횟수를 줄일 수 있다.

  • PDF

선택적 레덱스 트레일 기반의 디버거 (A Debugger based on Selective Redex Trail)

  • 박희완;한태숙
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제27권9호
    • /
    • pp.973-985
    • /
    • 2000
  • 함수형 프로그래밍 언어는 전통적인 프로시저형 언어에 비하여 많은 장점이 있다. 그러나 함수 언어 프로그래머를 위한 실용적인 디버깅 환경은 상대적으로 빈약하다. 그동안 유용한 디버거 구현을 위해서 많은 시도가 있었고, 그 결과로 하향식 기법으로 이용한 알고리즈믹 디버거와 상향식 기법을 이용한 레덱스 트레일 디버거가 연구되었다. 두가지 기법은 모두 실제 프로그래밍에 적용하기에는 유지해야 하는 디버깅 정보의 양이 많다는 단점이 있다. 이 논문에서는 선택적 레덱스 트레일 디버깅 방법을 제안한다. 이 방법을 이용하면 디버거 사용자는 프로그램에서 오류가 예상되는 부분에 포커스를 설정할 수 있고 단지 선택된 부분에 한하여 트레일을 생성하게 된다. 이 방법은 프로그램의 오류에 대한 디버거 사용자의 예측을 반영하고 디버깅에 필요한 정보의 양을 줄이는 장점이 있다. 구현된 디버깅 시스템은 선택적 레덱스 트레일을 생성하는 추상기계와 실제 디버깅이 이루어지는 레덱스 트레일 탐색기로 구성된다.

  • PDF

모바일 폰 디버깅을 위한 ARM용 실행파일 분석도구 구현에 관한 연구 (A Study on the Implementation of ARM-based executable file Analyzing Tool for debugging of mobile phone)

  • 국종혁;김홍규;문승진
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2007년도 춘계학술발표대회
    • /
    • pp.1175-1178
    • /
    • 2007
  • 빠르게 변화하고 있는 모바일 시장에서 개발자들이 응용프로그램 개발을 하면서 가장 자주 사용하고 필요로 하는 것 중 하나가 디버깅이다. 본 논문에서는 기존의 하드웨어 디버거를 통해 ELF 디버깅 정보를 얻어오는 방법 대신 하드웨어 없이 ELF 파일에 대한 정보를 분석하는 툴 구현을 제안한다. ELF 파일을 분석하고 그 정보를 바탕으로 실제 모바일 폰에서 덤프 해온 메모리 값을 보여줌으로써 디버깅을 용이하게 한다. 소프트웨어만으로 디버깅 정보 추출이 가능하므로 고가의 디버깅 장비의 비용 절감의 효과를 가져다 줄 수 있을 것으로 기대된다.

  • PDF

효율성 관점의 APK 분석 및 안티 디버깅 우회 방법

  • 박민수
    • 정보보호학회지
    • /
    • 제32권6호
    • /
    • pp.47-52
    • /
    • 2022
  • 안드로이드 환경은 디컴파일을 통해 개발자가 작성한 코드를 쉽게 획득할 수 있고, 해당 코드의 분석을 통해 유사 앱을 개발하거나 기능을 변조할 수 있다. 이러한 문제에 대응하기 위해 다양한 난독화, 안티 디버깅 기법을 개발하여 적용하고 있다. 하지만 해당 기법들은 충분한 시간과 노력을 투자한다면 분석 및 우회가 가능하므로 개발자는 분석을 원천적으로 막기보다 분석을 지연하는 목적으로 활용하고 있다. 안티 디버깅을 지원하는 대부분의 상용 SW 또한 이런 한계를 크게 벗어나지 않고 있으며 적용하는 안티 디버깅 기법의 종류와 수의 차이만 있다. 특히 기존의 연구는 안티 디버깅 기법의 우회에 집중하고 있으며 해당 연구는 분석을 위한 사전 단계의 개념이며 실제 분석 단계에서는 활용하지 못해 분석 효율을 올리지는 못한다. 본 연구에서는 분석의 관점에서 안티 디버깅을 무력화하고, 실제 분석 시 활용할 수 있는 방법을 소개한다.

JTAG기반 SoC의 개선된 온 칩 디버깅 유닛 설계 (Advanced On-Chip Debugging Unit Design for JTAG-based SoC)

  • 윤연상;류광현;김용대;한선경;유영갑
    • 한국통신학회논문지
    • /
    • 제30권3A호
    • /
    • pp.226-232
    • /
    • 2005
  • JTAG 기반 SoC의 디버깅 성능향상을 위한 온 칩 디버깅 유닛(On-chip debugging unit)을 제안하였다. 제안된 디버깅 유닛은 JTAG 모듈, 코어브레이커로 구성된다. JTAG 모듈은 기존의 IEEE 1149.1 표준을 변형하여 효율적으로 설계하였다. SoC 시스템의 집적도가 높아질수록 1회의 디버깅 사이클을 실행하기 위한 반복적인 TAP 명령의 인가가 예상된다. 제안된 디버깅 유닛이 TAP 명령 인가과정의 불필요한 클럭 소모를 최소화하였다. 성능분석 결과 기존의 방식과 비교하여 14% 정도의 디버깅 성능의 증가를 보였고 TAP 컨트롤러 회로의 게이트 수는 50% 정도 감소하였다.

내장 소프트웨어를 위한 JTAG 어뎁터의 구현 (Implementation of JTAG Adapter for Embedded Software)

  • 김용수;한판암
    • 한국산학기술학회:학술대회논문집
    • /
    • 한국산학기술학회 2007년도 추계학술발표논문집
    • /
    • pp.256-258
    • /
    • 2007
  • 내장 소프트웨어는 실제 시스템의 자원과 원격지의 시스템의 환경에 민감하므로 실제 시스템과 동일한 환경에서 디버깅해야 한다. 그러나 대부분의 내장 소프트웨어를 탑재하는 실제 시스템은 시스템 상태를 조사하거나 제어하는 것이 제한되어 있는 소프트웨어를 디버깅하는 것은 매우 어렵다. 본 논문에서는 원격지의 USB와 실제 시스템의 JTAG을 기반으로 내장 소프트웨어를 디버깅할 수 있는 어뎁터 제안한다. 본 논문은 실제 시스템내의 내장 소프트웨어를 디버깅할 수 있는 경제적인 인터페이싱 환경을 제공한다.

  • PDF

분석 환경에 따른 안티 디버깅 루틴 자동 탐지 기법 (An automatic detection scheme of anti-debugging routines to the environment for analysis)

  • 박진우;박용수
    • 인터넷정보학회논문지
    • /
    • 제15권6호
    • /
    • pp.47-54
    • /
    • 2014
  • 여러 가지 역공학 방지기술들 중 하나인 안티 디버깅 기술은 특정 프로그램을 대상으로 공격자나 분석가가 디버거를 사용하여 분석을 하지 못하도록 하기 위한 기술로써, 예전부터 악성코드 및 분석을 방지하고자 하는 여러 가지 프로그램들에 적용이 되었으며 현재까지도 많이 사용이 되고 있는 기술이다. 본 논문에서는 이러한 안티 디버깅 루틴에 대한 자동화 탐지 방법을 제안한다. 탐지는, 디버거 및 시뮬레이터를 통해 실행 명령어 및 API(Application Program Interface)에 대한 트레이스 정보들을 추출하고, 추출된 정보들을 비교하여 안티 디버깅 루틴으로 의심이 가는 지점을 찾는 방식으로 진행된다. 실험 결과, 알려진 25가지의 안티 디버깅 기법들 중 21가지에 대하여 정상적으로 탐지가 이루어졌다. 이와 같이, 본 기법은 특정 안티 디버깅 기술에 의존적이지 않으며, 추후 개발 및 발견되는 안티 디버깅 기술들에 대한 탐지의 경우에도 적용이 가능할 것으로 예상된다.