• 제목/요약/키워드: 소스코드 분석

검색결과 341건 처리시간 0.032초

Scratch-Pad Memory를 위한 코드 변환 기법 (Code Transformation Techniques for Scratch-Pad Memory)

  • 문대경;이재진
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2004년도 가을 학술발표논문집 Vol.31 No.2 (1)
    • /
    • pp.577-579
    • /
    • 2004
  • 전원을 전적으로 배터리에 의존하는 모바일 임베디드 시스템은 배터리 용량의 한계 때문에 효율적인 에너지의 사용이 매우 중요하다. 특히 memory subsystem은 전체 system에서 소모되는 에너지에서 큰 비중을 차지한다. 이 논문은 성능 면에서 cache의 대안이 되고, cache보다 간단한 구조 때문에 전력소모가 훨씬 적은 on-chip scratch-pad memory(SPM)를 효율적으로 이용할 수 있는 소스 코드 변환 방법 및 SPM 관리방법을 제안한다. 각 함수 단위로 코드 변환을 하며, 어떤 변수를 SPM에 할당하기 위한 소스코드 변환을 했을 때, 소스코드 분석만으로 알 수 있는 변수의 정적인 참조 횟수를 가중치로 고려하여, 코드 변환 후 메모리 참조에 의한 실행 시간과 에너지 소모를 계산하고 이를 바탕으로 SPM에 할당한 변수를 결정한 다음 실제 그 코드 변환을 적용한다. 제안된 코드 변환은 컴파일러에 의해 자동화 될 수 있다. 10개의 임베디드 벤치마크 프로그램을 이용하여 본 논문에서 제안하는 방법의 성능 평가를 한 결과, 실행 시간은 평균 23% 향상되고 에너지 소모는 평균 49% 감소함을 알 수 있다.

  • PDF

기계학습을 이용한 소스코드 정적 분석 개선에 관한 연구 (A Study on the Improvement of Source Code Static Analysis Using Machine Learning)

  • 박양환;최진영
    • 정보보호학회논문지
    • /
    • 제30권6호
    • /
    • pp.1131-1139
    • /
    • 2020
  • 소스코드에 대한 정적 분석은 광범위한 소스코드에 대해서 잔존하는 보안약점을 찾는 것으로 정적 분석 도구를 활용하여 점검을 하고, 그 결과에 대해서 정적 분석 전문가가 정탐 및 오탐 분석을 한다. 이 과정에서 분석양이 많고 오탐의 비율이 높아 많은 시간과 노력이 들어가게 되어 효율적으로 분석하는 방안이 요구되고 있다. 또한 전문가들은 정·오탐 분석을 할 때 결함이 발생한 라인의 소스코드만 보고 분석을 하는 경우는 드물다. 결함의 유형에 따라서 주변의 소스코드를 같이 분석하고 최종 분석 결과를 내리게 된다. 이러한 정적 분석 도구를 사용하여 전문가가 정·오탐을 판별하는 어려움을 해결하기 위해서 본 논문에서는 정적 분석 도구가 찾은 보안약점이 정탐인지 아닌지를 전문가가 아닌 인공지능을 통해 판별하는 방법을 제안한다. 또한 이러한 기계학습에 사용되는 학습 데이터(결함주변 소스코드)의 크기가 성능에 어떤 영향을 미치는지 실험을 통해 최적의 크기를 확인하였다. 이 결과를 통해 정적 분석 후 정·오탐을 분류하는 정적 분석 전문가의 업무에 도움을 줄 것으로 기대한다.

역공학 기반의 객체지향 다이어그램 추출기법에 관한 연구 (A Study on Reverse Engineering Based Object Orient Diagram Extract Technique)

  • 박상훈;김연형;류성열
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2004년도 춘계학술발표대회
    • /
    • pp.329-332
    • /
    • 2004
  • 레거시 소프트웨어를 재사용하기 위해서는 소스코드의 구조와 행위, 연관관계를 파악하는 것이 중요하다. 소스코드 분석을 통해 레거시 소프트웨어의 구조를 얻어내고 이에 대한 수정을 통해 소스코드에 반영하고자 하는 연구가 활발히 진행되고 있다. 그러나 기존의 역공학 도구들은 레거시 소프트웨어를 객체지향 다이어그램으로 정확히 추출해내지 못하였고 또한 호환성이 떨어지는 문제점을 가지고 있다. 본 연구에서는 기존의 역공학 툴들의 문제점을 보안하고 호환성을 높이며 재사용성을 향상시키기 위한 방법을 제시한다. 자바 소스코드로부터 UML클래스 다이어그램을 추출하기 위해 본 논문에서는 자바 소스코드의 파싱을 통해 클래스 다이어그램 생성에 필요한 AST를 추출하여 XML로 저장함으로써 상호운영성을 높이며 클래스간의 연관관계를 상세히 표현하기 위한 방법을 제시한다.

  • PDF

메모리 액세스 로그 분석을 통한 프로그램 표절 검출 (Program Plagiarism Detection through Memory Access Log Analysis)

  • 박성윤;한상용
    • 정보처리학회논문지D
    • /
    • 제13D권6호
    • /
    • pp.833-838
    • /
    • 2006
  • 프로그램 소스코드를 표절하는 것은 소프트웨어의 지적재산권을 침해하는 행위이다. 표절을 감추기 위하여 소스코드의 구조를 일부 바꾸거나 변수 명을 바꾸는 등의 수단을 쓰기도 하기 때문에 표절을 검출하기란 쉽지 않은 일이다. 표절 행위를 막기 위해 이를 검출하기 위한 여러 가지 방법들이 고안되었으며 대부분 프로그램의 소스코드를 다양한 방법으로 분석하여 표절 검출하려고 한다. 본 논문에서는 소스 코드에 기반하지 않고 실행중인 프로그램의 메모리 액세스 로그 분석을 통해 알고리즘 유사도를 측정하여 프로그램의 표절 여부를 검출하는 새로운 방법을 제시한다. 두 프로그램의 메모리 액세스 로그는 일반적인 스트링 비교 알고리즘을 이용하여 분석될 수 있으며, 본 논문에서는 일반적인 방법보다 특성화된 방법을 제시한다. 이를 통해 메모리 액세스 로그가 프로그램의 표절 검출도구로서 사용되어질 수 있음을 보여준다.

RTT(Round-Trip Translator) 기반의 UML과 소스코드 변환에 대한 연구 (A Study on Conversion Between UML and Source Code Based on RTT(Round-Trip Translator))

  • 김지용;조한주;김영종
    • 정보처리학회논문지:소프트웨어 및 데이터공학
    • /
    • 제8권9호
    • /
    • pp.349-354
    • /
    • 2019
  • 최근 프로그래밍 교육이 중요해짐에 따라, 객체지향 프로그래밍에 있어 작성한 소스코드가 어떻게 객체지향 개념을 반영하고 있는지를 분석하는 것은 중요하다. 본 논문에서는 UML과 소스코드의 실시간 동기화를 제공하는 웹 기반 환경에서 객체지향 개념을 분석 및 학습하기 위해 Unified Modeling Language(UML) 클래스 다이어그램과 자바 소스코드를 상호 변환하는 Round-Trip Translator(RTT)를 제안한다. RTT는 기존 Round-Trip Engineering(RTE)기반 도구를 개선시켜 구현 하였으며 작성된 UML 혹은 소스코드가 어떻게 객체지향 개념을 반영하는 지에 대한 이해도를 높이기 위한 도구이다. 본 논문은 기존 RTE 기반 도구와 RTT의 효율성과 사용자의 편의성을 비교한 결과 UML과 소스코드 상호 변환을 통해 객체지향에 대한 이해도가 향상되었음을 보여준다. 우리는 또한 학생들이 기존 도구보다 더 효율적이고 편리한 사용자 인터페이스를 제공하는 RTT 사용에 만족한다는 사실을 알아냈다.

오픈소스기반 악성코드 솔루션 분석 (The Analysis for Malicious Code Solution Based on an Open Source)

  • 한동진;정소정;김동건;최일영;최상용;이종락
    • 한국컴퓨터정보학회:학술대회논문집
    • /
    • 한국컴퓨터정보학회 2020년도 제62차 하계학술대회논문집 28권2호
    • /
    • pp.85-88
    • /
    • 2020
  • 최근 악성코드의 발전은 사이버 위협의 전방면에 걸쳐 영향을 주고 있다. DDoS, APT를 포함한 스팸 발송 등과 같은 사이버 공격은 악성코드를 기반으로 한다. 또한 이에 대응하기 위해 다양한 형태의 악성코드 솔루션이 존재하고 있다. 악성코드 솔루션은 오픈소스와 상업용 프로그램으로 나눌 수 있는데 상업용 프로그램은 악성코드뿐만 아니라 PC관리의 전반적인 부분을 담당하고 있다. 악성코드를 탐지하는 방법은 시그니처 방식과 해시DB를 이용한 방식 등 다양한 방식이 있다. 본 논문에서는 오픈소스기반 악성코드 솔루션을 비교하여 어떠한 방식이 더 효과적인가를 분석하였다. 이를 통해 악성코드 방지 프로그램을 개발하려는 개발자가 비용효과적인 악성코드 탐지 방법을 잘 선택할 수 있는 가이드라인을 제공한다.

  • PDF

기능성에 따른 프로그래밍 소스코드 분류를 위한 Deep Learning Model 연구 (A Study on Deep Learning model for classifying programs by functionalities)

  • 윤주성;이은헌;안진현;김현철
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2016년도 추계학술발표대회
    • /
    • pp.615-616
    • /
    • 2016
  • 최근 4차 산업으로 패러다임이 변화함에 따라 SW산업이 더욱 중요하게 되었다. 이에 따라 전 세계적으로 코딩 교육에 대한 수요도 증가하게 되었고 기업에서도 SW를 잘 만들기 위한 코드 관리 중요성도 증가하게 되었다. 많은 양의 프로그래밍 소스코드를 사람이 일일이 채점하고 관리하는 것은 사실상 불가능하기 때문에 이러한 문제를 해결할 수 있는 코드 평가 시스템이 요구되고 있다. 하지만 어떤 코드가 좋은 코드인지 코드를 어떻게 평가해야하는지에 대한 명확한 기준은 없으며 이에 대한 연구도 부족한 상황이다. 최근에 주목 받고 있는 Deep Learning 기술은 이미지 처리, 자연어 처리등 기존의 Machine Learning 알고리즘이 냈던 성과보다 훨씬 뛰어난 성과를 내고 있다. 하지만 Programming language 영역에서는 아직 깊이 연구된 바가 없다. 따라서 본 연구에서는 Deep Learning 기술로 알려진 Convolutional Neural Network의 변형된 형태엔 Tree-based Convolutional Neural Network를 사용하여 프로그래밍 소스코드를 분석, 분류하는 알고리즘 및 코드의 Representation Learning에 대한 연구를 진행함으로써 이러한 문제를 해결하고자 한다.

안전한 소프트웨어 개발을 위한 정적분석 도구 시험코드 개발 (Validation Test Codes Development of Static Analysis Tool for Secure Software)

  • 방지호;하란
    • 한국통신학회논문지
    • /
    • 제38C권5호
    • /
    • pp.420-427
    • /
    • 2013
  • 최근 안전한 소프트웨어 개발을 위해 소프트웨어의 소스코드를 분석하여 보안취약점의 원인이 되는 소프트웨어 보안약점을 식별해 주는 정적분석 도구가 많이 활용되고 있다. 최적의 정적분석 도구를 선택하기 위해서는 도구가 보유한 보안약점 규칙 및 분석기능이 중요한 요소가 된다. 따라서, 본 논문은 정적분석 도구가 보유한 규칙 및 분석 성능을 평가하기 위해 개발한 시험코드를 제시하고자 한다. 시험코드는 SQL 삽입 등 43개 보안약점이 존재하는 소스코드로 정적분석 도구가 보유한 보안약점 규칙과 이를 기반으로 한 도구의 분석기능의 적절성을 평가하기 위해 사용될 수 있다.

Visual C++ 소스코드를 위한 Obfuscation 도구 구현 (Implementation of an Obfuscation Tool for Visual C++ Source Code)

  • 조병민;장혜영;노진욱;오현수;정민규;이승원;박용수;우제학;조성제
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2006년도 가을 학술발표논문집 Vol.33 No.2 (C)
    • /
    • pp.521-525
    • /
    • 2006
  • 최근 소프트웨어의 주요 알고리즘 및 자료구조 등의 지적재산권을 역공학 분석과 같이 악의적인 공격들로부터 보호하기 위한 연구가 이루어지고 있다. 본 논문에서는 산업 현장에서 많이 사용되는 Visual C++ 또는 MFC로 작성된 프로그램의 소스 코드를 역공학 공격으로부터 보호하기 위한 Obfuscation 도구를 구현하고 그 성능을 평가한다. 구현된 도구는 3가지 Obfuscation 알고리즘을 적용하여 소스 코드를 생성하며 생성된 소스 코드들은 가독성이 떨어지고 역공학 분석이 어렵도록 변환되지만, 프로그램의 본래 기능은 그대로 유지하며 성능상의 변화가 크지 않음을 실험을 통해 확인할 수 있었다.

  • PDF

오픈 소스 프로젝트 도큐멘테이션 가이드라인 연구 (A Documentation Guide to Open Source Software Project)

  • 박치남;류성열
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2006년도 추계학술발표대회
    • /
    • pp.531-534
    • /
    • 2006
  • 오픈소스 소프트웨어를 효율적으로 활용하기 위한 다양한 연구와 정책이 이루어지고 있으나 OGC에서 제기한 가이드에서 볼 수 있듯이 많은 단점을 가지고 있다. 특히 오픈 소스를 이용하여 새로운 제품을 개발하고자 하는 사람들이 제품의 선정과 구체적인 소스 코드를 분석하기 위한 문서화의 표준이 없다. 본 연구에서는 이러한 문제점을 극복하기 위한 기본적인 방안을 작성하기 위하여 오픈소스의 개발모형을 조사 분석하고, 분석된 모형에 근거한 오픈소스의 선정과 소스코드를 효율적으로 분석하기 위한 문서화 표준의 가이드라인을 작성하고자 한다. 또 이를 기반으로 오픈소스 커뮤니티 관리적 차원에서의 해결방안으로 관리항목의 기능을 분류하고 특성분류에 따른 문서화 작성지침을 제안 한다

  • PDF