• 제목/요약/키워드: 라이브러리 함수 호출

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

ARM 리눅스 환경에서 ltrace 를 이용한 라이브러리 함수 호출 추적 (Tracing Library Function Calls on ARM Linux Environment using Ltrace)

  • 김홍규;김홍준;이강웅;이재진
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2012년도 한국컴퓨터종합학술대회논문집 Vol.39 No.1(A)
    • /
    • pp.140-142
    • /
    • 2012
  • 리눅스 환경에서는 빠른 개발 및 디버깅을 위한 다양한 시스템 도구들이 존재하는데 라이브러리 함수 호출을 추적할 수 있는 도구로는 ltrace 가 널리 사용되고 있다. 현재 제공되는 ltrace 에는 ARM 리눅스 환경에 대한 지원이 있지만 커널 내부의 기능 미구현으로 정확한 동작을 하지 않는 상태이다. 본 논문에서는 현재 ltrace 가 ARM 리눅스 환경에서 갖는 문제점을 제시하고, 이에 대한 방안을 ltrace 의 내부에 직접 구현하여 문제없이 실행 가능하도록 한다. 이를 통해 실제 ARM 리눅스 환경에서 Parsec 벤치마크의 7개 프로그램을 실행하고, 각 프로그램의 라이브러리 함수 호출을 추적하여 정상적으로 동작함을 보인다.

관계형 데이터베이스 시스템에서의 사용자 정의 함수 지원 (User-defined Function Support in RDBMSs)

  • 고정미;정재목;김형주
    • 한국정보과학회논문지:컴퓨팅의 실제 및 레터
    • /
    • 제5권3호
    • /
    • pp.295-304
    • /
    • 1999
  • 관계형 데이터베이스 시스템의 기능이 점차 확대되면서 사용자 정의 함수의 역할이 다양하게 되었다. 이에 따라 사용자 정의 함수의 수행 속도뿐 아니라 데이터베이스 시스템의 안정성과 보안의 중요성이 부각되었다. 사용자 정의함수 지원방식은 크게 3가지로 나눌 수 있다. : 정적로딩 방식, 공유 라이브러리 방식, 프로세스 호출 방식, 기존의 데이터베이스 시스템에서 사용되는 공유 라이브러리 방식은 속도면에서 우수하나 안정성, 보안에 대한 요구를 만족시키지 못하며 시스템에 이식할 때 문제가 있다. 우리는 프로세스 호출 방식을 개선하여 사용자 정의 함수지원을 구현하였다. 본 논문에서는 관계형 데이터베이스시스템에서 사용하는 사용자 정의함수를 구현하는데 있어서 고려해야할 점들을 살펴보고 성능을 측정한다. 성능 평가를 통해 우리가 구현한 방식이 공유 라이브러리방식과 성능차이는 적은 반면 장점이 많다는 것을 보인다.

라이브러리 퍼징의 커버리지 향상 방법 연구 (A Study of Coverage Improvement for Library Fuzzing)

  • 김서영;조민기;김종신;권태경
    • 정보보호학회논문지
    • /
    • 제30권6호
    • /
    • pp.1079-1085
    • /
    • 2020
  • 라이브러리 구현의 결함을 발견하기 위해 동적 분석 방법인 퍼징(fuzzing)이 사용되고 있다. 라이브러리 대상 퍼징은 구현된 함수만 테스트를 할 수 있으므로 더 높은 코드 커버리지를 달성하기 위해서는 구현되지 않은 함수들을 추가로 구현해주어야 한다. 하지만 라이브러리 함수들의 호출 관계를 고려하지 않고 함수를 추가하면 이미 테스트를 수행한 함수가 추가되는 문제가 발생할 수 있다. 본 논문에서는 라이브러리 퍼징의 코드 커버리지 성능을 향상시키기 위한 개선 방법을 제안한다. 먼저, 라이브러리 퍼징의 대상 함수를 효율적으로 추가하기 위해 라이브러리의 함수 호출 그래프 분석하고 구현되지 않은 라이브러리 함수를 추가 구현한다. 그리고 라이브러리의 해결하기 어려운 제약조건을 가진 분기를 탐색하는 방법으로 하이브리드 퍼징을 적용한다. OpenSSL, mbedTLS, Crypto++을 대상으로 실험한 결과, 제안한 방법이 코드 커버리지를 증가에 효과적인 것을 확인하였다.

RPC에 기반한 분산 시스템의 디버깅을 위한 이벤트 추적 기능의 설계 및 구현 (Design and Implementation of Event Trace FAcilities for Debugging RPC-oriented Distributed Systems)

  • 서영애;이은정;박창순
    • 한국정보과학회논문지:컴퓨팅의 실제 및 레터
    • /
    • 제5권3호
    • /
    • pp.313-325
    • /
    • 1999
  • 분산 프로그램의 디버깅이 순차 프로그램의 디버깅보다 어려운 이유중의 하나는 수행중인 프로세스들 간의 통신 때문이다. 비록 분산 시스템을 위해 구축된 디버거들이 많이 있음에도 불구하고 , 프로세스들간의 통신 이벤트를 효과적으로 디버깅할수 있는 실용적인 수준의 디버거는 없는 실정이다. 본 논문에서는 분산 시스템의 개발에 널리 사용되고있는 RPC 매커니즘을 이용한 프로그램간의 통신을 효과적으로 디버깅하는 방법을 제시한다. 이를 위하여 RPC 통신 이벤트를 디버깅 객체로 정의한 RPC 이벤트 모델을 제안하고 이에 기초하여 RPC 이벤트 추적 기능을 설계 및 구현하였다. RPC 프로토콜을 분석한 결과를 이용하여 메시지의 송.수신 이벤트를 추적 기능을 설계 구현하였다. RPC 프로토콜을 분석한 결과를 이용하여 메시지의 송.수신 이벤트를 라이브러리 함수의 호출과 자료의 값으로 기술하고 해당라이브러리 함수의 호출이 발생한 위치를 인지함으로써 모든 통신 이벤트의 발생을 탐지할수 있었다. 제안된 RPC 이벤트 추적기능은 현재 분산 디버거인 유니뷰 시스템에 구현되었다. 이벤트 추적 기능의 추가적 구현으로 인하여 유니뷰 시스템은 추적된 통신의 내용을 보면서 관련된 소스 코드를 보거나 프로그램을 제어하고 원격 함수 호출에 사용된 매개변수의 값을 보는 등의 행위가 가능하다. 또한 이러한 이벤트 추적기능을 수행하기 위하여 별도의 라이브러리나 수행환경이 요구되지 않으므로 실제분산시스템의 개발 환경에 적응하기가 용이한 장점을 가진다.

OpenCV 작업 환경에서 ARToolkit 라이브러리 및 OpenVRML 연동 시스템 (Linkage System of ARToolkit Library and OpenVRML in OpenCV Working Environment)

  • 김대영;이칠우
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2012년도 한국컴퓨터종합학술대회논문집 Vol.39 No.1(C)
    • /
    • pp.356-358
    • /
    • 2012
  • 본 논문에서는 OpenCV를 이용한 영상처리 작업환경에서 영상처리 결과에 따라 마커를 기반으로 한 복잡한 형태의 3D 애니메이션 객체를 띄우기 위해 사용되는 증강현실 라이브러리(ARToolkit, OpenVRML)를 함께 사용하는 시스템을 제시하였다. OpenCV 라이브러리와 증강현실 라이브러리는 카메라로부터 이미지를 얻어오기 위한 함수 및 가져온 이미지 타입이 다르고 각각의 라이브러리에 맞게 이미지를 처리하기 위한 설정 및 최종적으로 디스플레이 하기 위한 일련의 과정에 있어서 호출되는 모듈들이 상이하였다. 또한 ARToolkit내에서도 보다 복잡한 3D객체의 렌더링을 수월하게 하기 위한 OpenVRML 기반 렌더링과 개발자가 원하는 렌더링을 손쉽게 수행할 수 있는 OpenGL 기반 렌더링과의 병렬적인 연동에 있어서 두 라이브러리를 사용하는 프로젝트의 카메라 및 렌더링 설정과 렌더링 처리 절차에 차이가 있어 두 프로젝트의 기능별 모듈을 하나로 통합하였다. 그리고 영상처리 라이브러리의 이미지 처리에 대한 모듈을 전체 시스템의 처리 순서에 맞게 알맞은 함수들로 배정하여 이 함수 내에서 추후 개발자가 개발한 시스템에 맞게 직접 편집하여 활용할 수 있도록 하였다.

ONCPRC 표준을 지원하는 Java RPCD의 설계 및 구현 (Design and Implementation of a Java RPC Supporting ONC RPC Standard)

  • 이국희;한욱신;이민재;황규영
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 1999년도 가을 학술발표논문집 Vol.26 No.2 (3)
    • /
    • pp.206-208
    • /
    • 1999
  • 로컬 환경의 함수 호출 기능을 분산 환경으로 확장한 RPC는 분산 시스템 개발을 위한 필수 패키지이다. 본 논문에서는 ONC RPC 표준을 지원하는 RPC를 Java 프로그래밍 언어를 사용하여 설계하고 구현하였다. 본 논문의 Java RPC를 이용하면 웹 환경을 지원하는 분산 시스템을 쉽게 개발할 수 있다. 본 논문의 Java RPC는 외부 데이터표현의 표준 규약인 XDR 프로토콜을 처리하는 라이브러리 클래스와 TCP/IP 기반의 RPC 라이브러리 클래스를 제공한다. 또한 자동으로 RPC 응용 클래스를 생성해주는 RPCGEN 유틸리티를 제공하여, Java 프로그래밍 언어를 이용한 RPC 응용 프로그램을 손쉽게 작성할 수 있도록 한다.

  • PDF

리눅스 기반 임베디드 시스템의 성능 분석을 위한 소프트웨어 계층별 문맥 분석 기법 (Hierarchical Software Context Analysis Technique for Performance Analysis of Linux Based Embedded System)

  • 곽상헌;이호림;이남승;임성수
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2009년도 추계학술발표대회
    • /
    • pp.57-58
    • /
    • 2009
  • 임베디드 시스템이 복잡해질수록, 성능 병목을 파악할 수 있는 성능 분석도구가 요구되고 있다. 현존하는 리눅스 기반의 소프트웨어 성능 분석 도구는 전체 시스템 관점에서 소프트웨어 계층에 따라 응용 소프트웨어의 실행 흐름을 파악하기에는 한계가 있다. 본 논문에서는 모든 소프트웨어 계층에서의 실행 흐름을 일관적으로 파악할 수 있는 문맥 분석 기법을 제안한다. 이 도구를 통해서 사용자 영역의 사용자 정의 함수와 라이브러리 함수, 커널 영역에서의 시스템 호출과 커널 이벤트에 대한 호출자와 피호출자에 대한 관계를 모두 파악할 수 있다.

테스트 프레임워크를 활용한 라이브러리 퍼징 환경 구축 자동화 (Automated Building Fuzzing Environment Using Test Framework)

  • 류민수;김동영;전상훈;김휘강
    • 정보보호학회논문지
    • /
    • 제31권4호
    • /
    • pp.587-604
    • /
    • 2021
  • 라이브러리는 독립적으로 실행되지 않고 많은 응용 프로그램에서 사용되므로, 라이브러리의 취약점을 사전에 탐지하는 것은 중요하다. 라이브러리 취약점을 탐지하기 위해 동적 분석 방법인 퍼징이 사용되고 있다. 퍼징 기술은 코드 커버리지 및 크래시 발생 횟수 측면에서 개선된 결과를 보여주지만, 그 효과를 라이브러리 퍼징에 적용하기는 쉽지 않다. 특히, 라이브러리의 다양한 상태를 재현하려면 특정 함수 시퀀스를 호출하고 퍼저의 입력을 전달하여 라이브러리 코드를 실행하는 퍼징 대상 파일과 시드 코퍼스가 필요하다. 그러나 퍼징 환경(시드 코퍼스, 퍼징 대상 파일)을 준비하는 것은 라이브러리에 대한 이해와 퍼징에 대한 이해가 동시에 필요한 어려운 일이다. 이에, 본 논문에서는 테스트 프레임워크를 활용하여 라이브러리 퍼징의 용이성을 확보하고, 코드 커버리지와 크래시 탐지 성능을 향상하기 위한 개선 방법을 제안한다. 본 논문에서 제안한 시스템은 9개의 오픈 소스 라이브러리에 적용하여 기존 연구들과 비교를 통한 개선 효과를 검증하였다. 실험 결과 코드 커버리지 31.2%, 크래시 탐지 기준 58.7%의 개선효과를 확인하였고, 3개의 알려지지 않는 취약점을 탐지하였다.

RPC 이벤트 모델에 기반한 통신 이벤트의 디버깅 (Debugging of communication Events Based on the RPC Event Model)

  • 서영애;조영욱;이공선;박창순
    • 한국정보처리학회논문지
    • /
    • 제6권1호
    • /
    • pp.225-233
    • /
    • 1999
  • 분산 프로그램의 디버깅이 순차 프로그램의 디버깅보다 어려운 이유 중의 하나로 수행 중인 프로세스들간의 통신을 들 수 있다. 비록 분산 시스템을 위해 구축된 디버거들이 많이 있으나, 프로세스들 간의 통신 이벤트를 효과적으로 디버깅할 수 있는 실용적인 수준의 디버거는 없는 실정이다. 본 논문에서는 분산 시스템이 개발에서 널리 이용되는 RPC 통신을 실시간으로 추적하고 통신내용을 파악함으로써 분산 프로그램을 효율적으로 디버깅하고자 하였다. 이를 위하여 RPC 통신 이벤트를 디버깅 객체로 정의한 이벤트 모델을 제안하고 이에 기초하여 RPC 통신 이벤트 추적 기능을 구현하였다. RPC 프로토콜을 분석한 결과를 이용함으로써 메시지의 송·수신 이벤트를 라이브러리 함수의 호출과 자료의 값으로 기술할 수 있었고, 라이브러리 함수의 호출이 발생한 위치를 인지함으로써, 모든 통신 이벤트의 발생을 탐지할 수 있었다. 제안된 RPC 이벤트 추적 기능은 온라인 분산 디버거인 유니뷰 시스템에 구현되었다.

  • PDF

Comparative Analysis of NoSQL Database's Activities and Scalability Investigation With Library Introspection

  • Seo, Chang-Ho;Tak, Byungchul
    • 한국컴퓨터정보학회논문지
    • /
    • 제25권9호
    • /
    • pp.1-9
    • /
    • 2020
  • 이 논문에서는 NoSQL 데이터베이스의 동작 과정에서 발생하는 라이브러리 콜과 관련 정보들을 기록하여 내부 동작 과정을 심층적으로 분석하는 방법을 제안한다. 이를 통해 지정한 라이브러리 콜을 관찰 및 기록하며, 기록된 라이브러리 콜 정보를 통해 NoSQL 데이터베이스 간 내부 동작 차이를 비교하고, 입력 데이터 개수의 변화에 따라 발생하는 라이브러리 콜의 변화를 관찰하여 각 데이터베이스의 특징 및 확장성을 평가한다. 컴퓨팅 성능의 발전과 빅테이터의 활성화에 따라 다양하고 많은 양의 데이터를 기록 및 분석하기 위한 여러 종류의 NoSQL 데이터베이스가 등장하였으며, 각 환경에 적합한 데이터베이스를 선택하기 위해 각 데이터베이스의 확장성을 평가할 필요가 있다. 그러나 벤치마크, 성능 모델을 통한 외부 동작 관찰 또는 설계에 따른 구조적 특징 분석과 같은 기존의 방식으로는 데이터베이스가 동작하는 과정을 분석 또는 예측하기 어렵다. 따라서, 더욱 심층적인 분석을 통해 동작 과정 및 확장성을 파악하는 본 논문에서 제안하는 기법의 활용이 필요하다.