• 제목/요약/키워드: 역공학 기반

검색결과 70건 처리시간 0.03초

모델 기반 개발방법에 기반한 임베디드 소프트웨어의 역공학 (Reverse Engineering of Embedded Software based on Model-Driven Development)

  • 나동진;이용순;김희진;유민수
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2007년도 추계학술발표대회
    • /
    • pp.782-785
    • /
    • 2007
  • 모델 기반 개발방법은 개발자가 추상화된 모델만을 설계하는 것만으로도 소프트웨어를 개발할 수 있도록 하는 방법이다. 현재까지의 모델 기반 개발방법론은 모델에서 코드를 변환하는 것은 다루고 있지만, 반대로 코드에서 모델로의 변환은 고려하고 있지 않다. 본 논문에서는 모델이 아닌 기존에 작성된 C 언어 코드를 모델로 변환하는 역공학 기법을 제안한다. 이러한 역공학 기법을 사용하면, 새로운 모델을 작성할 때 기존의 코드로부터 모델을 얻어내 적용할 수 있다. 또한, 모델을 작성하고 작성된 모델을 통해 생성된 최종코드를 수정하였을 경우 역공학을 통해 모델과 수정한 코드를 일관성 있게 유지할 수 있다. 이를 지원하기 위해 C 언어를 UML 로 변환하는 방법 및 변환된 모델의 효율적인 구성을 위한 모델 재구성 방법을 제안한다.

코드 가시화 툴체인 기반 UML 설계 추출 및 검증 사례 (Best Practices on Validation and Extraction of Object oriented Designs with Code Visualization Tool-chain)

  • 이원영;김영철
    • 인터넷정보학회논문지
    • /
    • 제23권2호
    • /
    • pp.79-86
    • /
    • 2022
  • 본 논문은 역공학 기반 소프트웨어 가시화를 통해 설계 개선 실현과 고품질화에 초점을 두고 있다. 앞으로의 4차 산업의 다양한 영역에서 새로운 기술과 복잡한 소프트웨어가 대두됨에 따라 안정성과 신뢰성을 겸비한 소프트웨어 검증이 이슈화되고 있다. 간단한 연산 소프트웨어부터 기계 학습기반의 데이터 지향 소프트웨어까지 다양한 소프트웨어 고품질화를 위한 역공학 기반 UML 설계 추출 및 가시화 방법을 제안한다. 이를 기반으로 목표 설계에 대한 정확도를 확인하고 코드 내부 복잡도 식별을 이용하여 설계 개선을 통한 소프트웨어 품질 향상을 기대한다.

자율주행자동차를 주제로 한 역공학 기반 STEAM 프로그램 개발 (The Development of STEAM Program based on Reverse Engineering on the Subject of Autonomous Vehicle)

  • 정해영;김기수;윤지아;김영민;허혜연
    • 대한공업교육학회지
    • /
    • 제44권2호
    • /
    • pp.164-183
    • /
    • 2019
  • 이 연구의 목적은 역공학을 기반으로 한 STEAM 교육 프로그램을 자율 주행 자동차를 주제로 개발하는 것이다. 이 연구의 결과는 다음과 같다. 역공학을 기반으로 한 STEAM 프로그램을 5단계를 거쳐 개발하였다. 자율 주행 자동차를 주제로 분석, 설계, 개발, 실행, 평가 단계로 개발하였다. 먼저 분석 단계에서 역공학을 기반으로 하는 STEAM 교육의 정의, 목표, 내용 영역 및 교수 및 학습 방법을 선정하였다. 또한 세부 목표와 내용 영역을 추출했다. 두번째, 설계 단계에서 전문가와의 협의를 거쳐 주제를 선정하고, 2015 개정 교육 과정과 STEAM 교육 과정의 연계성을 바탕으로 교육 목표와 학습 내용을 선정하고 정리하였다. 다음으로 개발 단계에서는 교사용 교수학습 지도서와 학생 교과서를 개발하고, 서울 소재 OO중학교 2학년 71명에게 예비 적용한 후 수정 보완하였다. 실행 단계에서는 충청남도에 위치한 OO중학교 학생 120명을 대상으로 교육 프로그램을 적용하고 효과성 분석을 위한 설문 조사를 실시하였다. 마지막으로 평가 단계에서 실시한 프로그램을 토대로 교사 및 학생 대상으로 평가가 이루어졌으며 그 결과에 따라 수정하고 보완하였다.

안드로이드 어플리케이션 역공학 보호기법

  • 하동수;이강효;오희국
    • 정보보호학회지
    • /
    • 제25권3호
    • /
    • pp.19-28
    • /
    • 2015
  • 현재 가장 높은 점유율을 보이고 있는 스마트 모바일 디바이스 플랫폼인 안드로이드는 바이트코드 기반의 어플리케이션을 동작시킨다. 바이트코드는 특성상 역공학에 취약하여 원본 코드의 노출이나 수정 후 재배포가 쉽게 이루어질 수 있다. 이를 보완하는 방법으로 난독화, 실행압축, 코드 분리, 기타 안티 리버싱 기법 등이 존재하지만, 이런 보호기법을 단독으로 사용하면 그 효과가 높지 않다. 이들은 각각 장단점을 가지고 있는데, 여러 기법을 조합해서 사용하면 보안성을 한층 높일수 있다. 그렇다고 각 기법의 특징을 무시한 채 무작정 사용하게 되면 오히려 어플리케이션의 성능이 낮아지고 크기가 늘어나는 문제가 발생한다. 따라서 보호기법의 정확한 이해와 필요에 맞는 올바른 선택적 사용이 중요하다. 본 논문에서는 지금까지 사용되어 온 안드로이드 어플리케이션 역공학 보호기법의 유형과 특징에 대하여 살펴보고, 보안성을 높이기 위한 올바른 조합과 선택에 대해 고찰한다.

C++ 원시코드에서 객체 모델로의 역공학 기술에 관한 연구 및 구현 (A Study on the reverse engineering technique)

  • 유일준;홍찬기
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 1998년도 가을 학술발표논문집 Vol.25 No.2 (1)
    • /
    • pp.511-513
    • /
    • 1998
  • 본 연구에서는 Object Modeling Technique를 기반으로 C++ 원시코드로부터 클래스 계층구조의 정보를 추출하여 데이터베이스에 저장하고 계층구조를 이해하기 위한 클래스 계층구조를 디자인으로 도식화하여 이를 다시 디자인 상태에서 C++ 원시코드와 동적 연결이 가능한 역공학 도구를 제안한다. 본 연구는 C++ 원시코드와 클래스 계층 구조를 표현하는 디자인과 상호 동적 연결이 가능하므로 C++원시코드의 이해와 관리가 효율적이다.

규칙기반 역공학 도구의 구현 및 평가 (A implementation and evaluation of Rule-Based Reverse-Engineering Tool)

  • 진영배
    • 한국컴퓨터정보학회논문지
    • /
    • 제9권3호
    • /
    • pp.135-141
    • /
    • 2004
  • 소프트웨어의 종류가 다양하고, 커짐에 따라서 유지 보수 문제는 더욱 복잡하고 어렵게 되고, 프로그램 에러의 교정이나 요구 사항의 변경, 사용자에 대한 요구가 점차 증가되면서 소프트웨어의 유지 보수가 소프트웨어 생명 주기에서 가장 비용을 많이 차지하는 부분이 되었다. 본 논문에서는 객체지향 시스템에서 소프트웨어 재구성 환경을 위한 역공학 도구를 설계, 구현하였다. 이 도구는 클래스 정보를 이용한 규칙기반 역공학 도구이다. 프로그램 유지보수자가 프롤로그를 이용한 시스템 쿼리를 사용할 수 있도록 하였다. 대부분의 유사한 클래스를 추출하기 위한 재구조화 방법과 변수와 함수 사이의 관계에 근거를 둔 방법을 사용하였다. 추출된 클래스의 가시성이 자동적으로 산출되고, 논리언어를 이용한 쿼리를 사용함으로서 실질적인 유지보수가 이루어지도록 하였다. 또한 이 도구를 평가하는 방법을 제안하였다.

  • PDF

안드로이드 콘텐츠 저작권 침해 방지를 위한 서버 기반 리소스 난독화 기법의 설계 및 구현 (Design and Implementation of Server-based Resource Obfuscation Techniques for Preventing Copyrights Infringement to Android Contents)

  • 박희완
    • 한국콘텐츠학회논문지
    • /
    • 제16권5호
    • /
    • pp.13-20
    • /
    • 2016
  • 소프트웨어는 대부분 바이너리 파일 포맷으로 배포되기 때문에 역공학 분석이 쉽지 않다. 그러나 안드로이드는 자바를 기반으로 하며 가상머신 위에서 동작한다. 따라서 안드로이드 역시 자바와 유사하게 역공학 도구에 의해서 쉽게 분석될 수 있다. 이 문제를 극복하기 위해서 다양한 난독화 기법이 제안되었다. 안드로이드 환경에서는 안드로이드 SDK에 포함되어 배포되는 난독화 도구인 프로가드(Proguard)가 가장 널리 사용된다. 프로가드는 자바 소스 코드를 역공학 분석으로부터 보호할 수 있다. 그러나 이미지, 사운드, 데이터베이스와 같은 리소스를 보호하는 기능은 가지고 있지 않다. 본 논문에서는 안드로이드 앱의 리소스를 보호할 수 있는 리소스 난독화 기법을 제안하고 구현하였다. 본 논문에서 제안하는 리소스 난독화 기법을 적용하면 효과적으로 리소스 도용을 예방할 수 있을 것으로 기대한다.

안드로이드 리소스 도용 방지를 위한 난독화 도구의 설계 및 구현 (Design and Implementation of An Obfuscation Tool for Preventing the Theft of Android Resources)

  • 박희완;김흥수
    • 한국컴퓨터정보학회:학술대회논문집
    • /
    • 한국컴퓨터정보학회 2014년도 제49차 동계학술대회논문집 22권1호
    • /
    • pp.93-97
    • /
    • 2014
  • 소프트웨어는 대부분 바이너리 형태로 배포되기 때문에 역공학 분석이 쉽지 않다. 그러나 안드로이드는 자바를 기반으로 한다. 자바는 클래스 파일의 형태로 배포되는데 클래스 파일은 자바 소스 프로그램의 정보를 대부분 유지하고 있기 때문에 역공학 기술을 적용하기가 타 언어에 비해 쉽다. 이 문제에 대처하기 위해서 프로그램의 기능을 그대로 유지하고, 프로그램을 분석하기 어려운 형태로 변환하는 다양한 난독화 방법이 제안되었다. 안드로이드 환경에서는 안드로이드 SDK와 함께 배포되는 난독화 도구인 프로가드(Proguard)가 가장 널리 사용된다. 그러나 프로가드는 문자열 난독화를 기능을 제공하지 않는다. 본 논문에서는 프로가드의 한계를 보완할 수 있는 문자열 난독화 기법을 제안하고 구현하였다. 본 논문에서 제안하는 문자열 난독화 기법을 먼저 소스 코드에 적용하고, 이후 프로가드의 난독화 기능을 추가로 사용한다면 안드로이드 프로그램을 역공학 분석으로부터 보호하는 효과적인 방법으로 사용될 수 있을 것이다.

  • PDF

안드로이드 콘텐츠 지적재산권 침해 방지를 위한 난독화 도구의 설계 및 구현 (Design and Implementation of An Obfuscation Tool for Preventing the Infringement of Intellectual Property Rights of Android Contents)

  • 김흥수;박희완
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2014년도 춘계학술발표대회
    • /
    • pp.483-486
    • /
    • 2014
  • 소프트웨어는 대부분 바이너리 형태로 배포되기 때문에 역공학 분석이 쉽지 않다. 그러나 안드로이드는 자바를 기반으로 한다. 자바는 클래스 파일의 형태로 배포되는데 클래스 파일은 자바 소스 프로그램의 정보를 대부분 유지하고 있기 때문에 역공학 기술을 적용하기가 타 언어에 비해 쉽다. 이 문제에 대처하기 위해서 프로그램의 기능을 그대로 유지하고, 프로그램을 분석하기 어려운 형태로 변환하는 다양한 난독화 방법이 제안되었다. 안드로이드 환경에서는 안드로이드 SDK와 함께 배포되는 난독화 도구인 프로가드(Proguard)가 가장 널리 사용된다. 그러나 프로가드는 리소스 보호 기능을 제공하지 않는다. 본 논문에서는 프로가드의 한계를 보완할 수 있는 리소스 난독화 기법을 제안하고 구현하였다. 본 논문에서 제안하는 리소스 난독화 기법을 먼저 소스 코드에 적용하고, 이후 프로가드의 난독화 기능을 추가로 사용한다면 안드로이드 프로그램을 역공학 분석으로부터 보호하는 효과적인 방법으로 사용될 수 있을 것이다.

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

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

  • PDF