• Title/Summary/Keyword: 정적 프로그램 분석

Search Result 902, Processing Time 0.046 seconds

A Static Analysis of Android Programs (안드로이드 프로그램 정적 분석 고찰)

  • Lee, Ho-Seok
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2012.06c
    • /
    • pp.227-229
    • /
    • 2012
  • 본 논문은 Android 프로그램의 정적 분석 방법을 논의한다. Android 프로그램 정적 분석의 목적은 오류발견, 개인정보 해킹 코드 발견, 바이러스 발견, 프로그램 분류 등등이다. 본 논문에서는 Android 프로그램의 분석을 위하여 구문 패턴 정적 분석과 프로그램으로부터 객체 다이아그람과 Flowchart 를 생성하여 프로그램 동적 실행을 추정하여 분석하는 통합된 정적 분석 방법을 논의한다. 프로그램 실행 추정 분석은 프로그램에서 객체 생성, 메소드 호출, 데이터 흐름, 실행 흐름, API 호출과 진행 과정 등을 추정하여, 구문 패턴 정적 분석만으로는 파악하지 못하는 프로그램 실행의 동적 분석이 가능하도록 한다.

Preparing Set-Based Analysis for Run-time Specialization (실행시간 전문화를 위한 집합기반 분석의 준비)

  • Eo, Hyun-Jun;Yi, Kwang-Keun
    • Journal of KIISE:Software and Applications
    • /
    • v.27 no.9
    • /
    • pp.986-1002
    • /
    • 2000
  • 정적 분석을 사용하여 프로그램의 입력에 의존하는 성질을 예측하는 방법을 제안한다. 제안된 방법은 입력에 무관한 성질을 예측하도록 설계된 정적 분석을 입력에 의존하는 성질을 예측하는 분석으로 변환한다. 이 방법은 실행 중에 프로그램의 성질을 알아내기 위해서 실행중인 프로그램을 관찰하는 코드가 필요 없고 계측된 자료를 모으는 과정도 필요 없다. 정적 분석의 가장 마지막 부분을 프로그램의 실행 시간으로 미루는 것이 이 논문의 핵심 아이디어다. 먼저 정적 분석을 분석하여, 프로그램의 입력에 민감하여 프로그램의 실행시간으로 연기되어야 하는 부분을 찾아낸다. 그 후, 값을 자른 분석을 사용하여 이 부분을 재구성하여 프로그램의 입력에 대한 간단한 멤버쉽 테스트에 의해 분석이 풀어질 수 있도록 한다. 이런 재구성 과정을 통해 준비된 분석들은 프로그램의 입력이 나타나기만 하면 순간적으로, 동시에 풀려질 수 있다. 모든 과정은 엄밀하게 정의되고 증명되었다.

  • PDF

Communication Overhead Analysis for Improving Reliability in Distributed Real-Time Systems (분산 실시간 시스템에서 신뢰성 향상을 위한 통신 부하 분석)

  • Goo Hyun-Woo;Hong Young-Sik
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2005.07a
    • /
    • pp.769-771
    • /
    • 2005
  • 실시간 시스템은 논리적 정확성뿐만 아니라 시간적 정할성을 요구한다. 시간적 정확성을 만족시키기 위해 실시간 시스템의 설계자는 작업들의 스케줄 가능성에 대한 연구를 선행해야만 한다. 그리고 스케줄 가능성 분석을 위해 프로그램들에 대한 실행 시간 예측이 필요하다. 작업들의 실행 시간 예측을 위한 방법으로 측정과 정적 분석이 연구되었다. 측정 및 정적 분석은 비용 핀 확장성에 문제점을 지니고 있고 실시간 시스템의 발전을 따라가지 못하여 분석 결과의 정확성 밀 신뢰성이 만족스럽지 못하다. 본 논문에서는 정적 분석을 단일 실시간 시스템이 아닌 분산 실시간 시스템에 적용할 수 있는 확장된 정적 분석 도구의 개발에 초점을 둔다. 먼저 확장된 정적 분석 도구의 개발을 위해 통신 영향 요소의 분석 과정을 설계한다. 특히, 통신 부하의 영향 요소 중 통신 준비에 필요한 과정을 선행 예측 테이블로 작성하여 원시 프로그램 분석에 이용하고자 한다. 실행 시간에 영향을 미치는 요소들의 분석을 통해 원시 프로그램에서 자동적으로 예측된 실행 시간의 정확도와 신뢰도를 높인다.

  • PDF

Static Useless-Code-Detection for Two-Stage Language (정적으로 2단계 언어의 불필요한 식 찾기)

  • Cho, Sung-Keun;Yi, Kwang-Keun
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2011.06c
    • /
    • pp.478-481
    • /
    • 2011
  • 이 논문에서는 정적으로 2단계 언어의 불필요한 식을 찾는 분석 방법을 제안한다. 불필요한 식이란 식의 실행의미가 프로그램의 결과에 영향을 미치지 않는 식을 말한다. 다단계 프로그램이 불필요한 식을 만들어내는 지 프로그램 실행전에 알 수 있다면 프로그램 실행에 드는 비용을 줄일 수 있다. 이 분석은 다형타입을 가지는 다단계 언어의 타입시스템과 타입시스템에 올라탄 분석에 기반하고 있다. 이 분석으로 프로그램 실행 시 불필요한 식이 프로그램 코드 형태로 전파되는 것을 알 수 있으며 다형타입을 이용한 정교한 분석이 가능하다.

Analysis of OS Timing Factor for Improving Reliability in Distributed Real-Time Systems (분산 실시간 시스템에서 신뢰성 향상을 위한 운영체제 영향 요소 분석)

  • Goo Hyun-Woo;Hong Young-Sik
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2006.06a
    • /
    • pp.376-378
    • /
    • 2006
  • 실시간 시스템은 논리적 정확성뿐만 아니라 시간적 정확성을 요구한다. 시간적 정확성을 만족시키기 위해 실시간 시스템의 설계자는 작업들의 스케줄 가능성에 대한 연구를 선행해야만 한다. 그리고 스케줄 가능성 분석을 위해 프로그램들에 대한 실행 시간의 예측이 필요하다. 프로그램 또는 작업들의 실행 시간 예측을 위한 방법으로 측정과 정적 분석이 연구되었다. 측정 및 정적 분석은 비용 및 확장성에 문제점을 지니고 있고 실시간 시스템의 발전을 따라가지 못하여 분석 결과의 정확성 및 신뢰성이 만족스럽지 못한 경우가 발생한다. 본 논문에서는 정적 분석을 단일 실시간 시스템이 아닌 분산 실시간 시스템에 적용할 수 있는 확장된 정적 분석 도구의 개발에 초점을 둔다. 특히, 확장된 정적 분석 도구의 개발을 위해 운영체제에서 발생되는 작업 실행 영향 요소 분석 과정을 설계한다 실시간 시스템에서 시간적 정확성을 만족하기 위해 스케줄링 기법이 가장 중요하고 이러한 스케줄링 기법은 운영체제 영향 요소 분석 대상 중 가장 중용한 요소이다. 이에 따라 스케줄러의 동작 과정의 정적 분석 및 우선 순위에 따른 작업의 큐 대기 시간예측을 통해 원시 프로그램에서 자동적으로 예측된 실행 시간의 정확도와 신뢰도를 높인다.

  • PDF

Applying Static Analysis to Improve Performance of Programs using Flash Memory Storage (플래시 메모리 저장 장치를 사용하는 프로그램의 성능 향상을 위한 정적 분석 기법의 응용)

  • Paik, Joon-Young;Cho, Eun-Sun
    • Journal of KIISE:Computing Practices and Letters
    • /
    • v.16 no.12
    • /
    • pp.1177-1187
    • /
    • 2010
  • Flash memory becomes popular storage for small devices due to its efficiency, portability, low power consumption and large capacity. Unlike on hard disks, however, write operation on flash memory is much more expensive than read operation, so that it is critical for performance enhancement to reduce the number of executions of write operation. This paper proposes static analysis to rewrite a program to reduce the total number of write operations by merging writable data in a minimum number of pages. To achieve this, we collect information about writable areas by static analysis, and about frequently executed paths by profiling for practicality, and combine both to rewrite the application program to reallocate data. The performance enhancement gained from the proposed methods is shown using a FAST simulator.

Design and Implementation of Static Program Analyzer Finding All Buffer Overrun Errors in C Programs (C 프로그램의 버퍼 오버런(buffer overrun) 오류를 찾아 주는 정적 분석기의 설계와 구현)

  • Yi Kwang-Keun;Kim Jae-Whang;Jung Yung-Bum
    • Journal of KIISE:Software and Applications
    • /
    • v.33 no.5
    • /
    • pp.508-524
    • /
    • 2006
  • We present our experience of combining, in a realistic setting, a static analyzer with a statistical analysis. This combination is in order to reduce the inevitable false alarms from a domain-unaware static analyzer. Our analyzer named Airac(Array Index Range Analyzer for C) collects all the true buffer-overrun points in ANSI C programs. The soundness is maintained, and the analysis' cost-accuracy improvement is achieved by techniques that static analysis community has long accumulated. For still inevitable false alarms (e.g. Airac raised 970 buffer-overrun alarms in commercial C programs of 5.3 million lines and 737 among the 970 alarms were false), which are always apt for particular C programs, we use a statistical post analysis. The statistical analysis, given the analysis results (alarms), sifts out probable false alarms and prioritizes true alarms. It estimates the probability of each alarm being true. The probabilities are used in two ways: 1) only the alarms that have true-alarm probabilities higher than a threshold are reported to the user; 2) the alarms are sorted by the probability before reporting, so that the user can check highly probable errors first. In our experiments with Linux kernel sources, if we set the risk of missing true error is about 3 times greater than false alarming, 74.83% of false alarms could be filtered; only 15.17% of false alarms were mixed up until the user observes 50% of the true alarms.

Static Analysis of Large Scale Software Repositories Using WALA and Boa (WALA와 Boa를 활용하여 대규모 소프트웨어 저장소를 정적으로 분석하는 도구 개발)

  • Park, Gyunghee;Ryu, Sukyoung
    • Journal of KIISE
    • /
    • v.44 no.10
    • /
    • pp.1081-1086
    • /
    • 2017
  • A program analysis of a large-scale open-source software repository has a significant meaning in that it allows us to examine the changes and improvements of the software in repositories, and this brings more reliable results based on a large amount of programs. In this paper, we introduce a new static analysis framework WALABOA, which enables a scalable static analysis of large-scale software repositories. In addition, we show new findings from applying WALABOA, together with a module comparing the analysis results from a static analysis and a dynamic analysis, in evaluation of the field-based analysis, one of JavaScript static analysis techniques used in WALA.

Design of a Supporting Tool for Simplifying Static Program Analysis Process (정적 프로그램 분석 과정을 단순화하기 위한 지원 툴 설계)

  • 윤준호;이병정;우치수
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2003.04c
    • /
    • pp.19-21
    • /
    • 2003
  • 정적 프로그램 분석기는 프로그램의 결점을 찾아내는 초기 목적에서 진화하여, 역공학. 재공학. 메트릭 검증 등 도구의 front-End 모듈로 많이 쓰이고 있다. 이에 대한 다양한 연구가 진행되고 있고. 또 많은 관련 도구들이 소개되었지만, 사용자가 생각을 직접 코드형태로 구현하고, 결과를 모델형태로 표현하여, 시험하고 검증할 수 있도록 도와주는 프레임웍 수준 도구들은 거의 나와있지 않다. 본 논문에서는 정적 프로그램 분석을 쉽게 할 수 있도록 지원하는 기반도구의 설계를 제안한다. 본 연구에서는 언어의 파싱과 시각화 과정의 반복되는 작업들을 추상화하고, 분석 코드를 파싱 코드와 분리함으로써 사용자로 하여금 분석 과정에 집중할 수 있도록 도와준다.

  • PDF

Detecting Java Class Theft using Static API Trace Birthmark (정적 API 트레이스 버스마크를 이용한 자바 클래스 도용 탐지)

  • Park, Hee-Wan;Choi, Seok-Woo;Lim, Hyun-Il;Han, Tai-Sook
    • Journal of KIISE:Computing Practices and Letters
    • /
    • v.14 no.9
    • /
    • pp.911-915
    • /
    • 2008
  • Software birthmark is the inherent characteristics that can identify a program. In this paper, we propose a Java class theft detection technique based on static API traces of class files. We utilize control flow analysis to increase resilience, and we apply the semi-global alignment trace comparison algorithm to increase credibility. The credibility and resilience experiments for XML parsers show that our birthmark is more efficient than existing birthmarks.