• Title/Summary/Keyword: 역공학 기반

Search Result 70, Processing Time 0.029 seconds

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

  • Na, DongJin;Lee, Yongsoon;Kim, Heejin;Ryu, Minsoo
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2007.11a
    • /
    • pp.782-785
    • /
    • 2007
  • 모델 기반 개발방법은 개발자가 추상화된 모델만을 설계하는 것만으로도 소프트웨어를 개발할 수 있도록 하는 방법이다. 현재까지의 모델 기반 개발방법론은 모델에서 코드를 변환하는 것은 다루고 있지만, 반대로 코드에서 모델로의 변환은 고려하고 있지 않다. 본 논문에서는 모델이 아닌 기존에 작성된 C 언어 코드를 모델로 변환하는 역공학 기법을 제안한다. 이러한 역공학 기법을 사용하면, 새로운 모델을 작성할 때 기존의 코드로부터 모델을 얻어내 적용할 수 있다. 또한, 모델을 작성하고 작성된 모델을 통해 생성된 최종코드를 수정하였을 경우 역공학을 통해 모델과 수정한 코드를 일관성 있게 유지할 수 있다. 이를 지원하기 위해 C 언어를 UML 로 변환하는 방법 및 변환된 모델의 효율적인 구성을 위한 모델 재구성 방법을 제안한다.

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

  • Lee, Won-Young;Kim, Robert YoungChul
    • Journal of Internet Computing and Services
    • /
    • v.23 no.2
    • /
    • pp.79-86
    • /
    • 2022
  • This paper focuses on realizing design improvement and high quality through visualization of reverse engineering-based software. As new technologies and complex software emerge in various areas of the fourth industry in the future, software verification with both stability and reliability is becoming an issue. We propose a reverse engineering-based UML design extraction and visualization for high-quality software ranging from simple computational software to machine learning-based data-oriented software. Through this study, it is expected to improve software quality through design improvement by checking the accuracy of the target design and identifying the code complexity.

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

  • Chong, HaeYoung;Kim, KiSoo;Yoon, JiA;Kim, YoungMin;Huh, HyeYeon
    • 대한공업교육학회지
    • /
    • v.44 no.2
    • /
    • pp.164-183
    • /
    • 2019
  • The purpose of this study is to develop a STEAM program based on reverse engineering. To achieve the purpose of this study, STEAM program was developed on the subject of autonomous vehicle. The results of this study are summarized as follows. The program was developed based on STEAM program development model based on reverse engineering. Developed in a five step procedure (analysis, design, development, implementation, evaluation) with the subject of autonomous vehicle. First, in the analysis step, we explored the definition, goal, content area, and teaching and learning methods of STEAM based on reverse engineering. We extracted the goals and content areas to be included in the educational program. Second, in the design step, topics were selected through consultation with experts. At this time, based on the linkage between the 2015 revised curriculum and the STEAM curriculum, we selected and organized educational goals and learning contents. Third, in the development step, we developed a teacher 's guidebook and student' s textbook, and applied the program to 71 students in the second grade of OO middle school in Seoul. Fifth, at the evaluation stage, the evaluation was made by experts and students based on the program that was implemented, and revised and supplemented based on the results.

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

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

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

  • 유일준;홍찬기
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 1998.10b
    • /
    • pp.511-513
    • /
    • 1998
  • 본 연구에서는 Object Modeling Technique를 기반으로 C++ 원시코드로부터 클래스 계층구조의 정보를 추출하여 데이터베이스에 저장하고 계층구조를 이해하기 위한 클래스 계층구조를 디자인으로 도식화하여 이를 다시 디자인 상태에서 C++ 원시코드와 동적 연결이 가능한 역공학 도구를 제안한다. 본 연구는 C++ 원시코드와 클래스 계층 구조를 표현하는 디자인과 상호 동적 연결이 가능하므로 C++원시코드의 이해와 관리가 효율적이다.

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

  • Bae Jin Young
    • Journal of the Korea Society of Computer and Information
    • /
    • v.9 no.3
    • /
    • pp.135-141
    • /
    • 2004
  • With the diversified and enlarged softwares, the issue of software maintenance became more complex and difficult and consequently, the cost of software maintenance took up the highest portion in the software life cycle. We design Reverse Engineering Tool for software restructuring environment to object-oriented system. We design Rule - Based Reverse - Engineering using Class Information. We allow the maintainer to use interactive query by using Prolog language. We use similarity formula, which is based on relationship between variables and functions, in class extraction and restructuring method in order to extract most appropriate class. The visibility of the extracted class can be identified automatically. Also, we allow the maintainer to use query by using logical language. So We can help the practical maintenance. Therefore, The purpose of this paper is to suggest reverse engineering tool and evaluation reverse engineering tool.

  • PDF

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

  • Park, Heewan
    • The Journal of the Korea Contents Association
    • /
    • v.16 no.5
    • /
    • pp.13-20
    • /
    • 2016
  • Most software is distributed as a binary file format, so reverse engineering is not easy. But Android is based on the Java and running on virtual machine. So, Android applications can be analyzed by reverse engineering tools. To overcome this problem, various obfuscation techniques are developed. In android environment, the Proguard is most widely used because it is included in the Android SDK distribution package. The Proguard can protect the Java source code from reverse engineering analysis. But it has no function to protect resources like images, sounds and databases. In this paper, we proposed and implemented resource obfuscation framework to protect resources of android application. We expect that this framework can protect android resources effectively.

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

  • Park, Heewan;Kim, Heung-Soo
    • Proceedings of the Korean Society of Computer Information Conference
    • /
    • 2014.01a
    • /
    • 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 (안드로이드 콘텐츠 지적재산권 침해 방지를 위한 난독화 도구의 설계 및 구현)

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

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

  • Park, Sang-Hoon;Kim, Yun-Hyung;Rhew, Sung-Yul
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2004.05a
    • /
    • pp.329-332
    • /
    • 2004
  • 레거시 소프트웨어를 재사용하기 위해서는 소스코드의 구조와 행위, 연관관계를 파악하는 것이 중요하다. 소스코드 분석을 통해 레거시 소프트웨어의 구조를 얻어내고 이에 대한 수정을 통해 소스코드에 반영하고자 하는 연구가 활발히 진행되고 있다. 그러나 기존의 역공학 도구들은 레거시 소프트웨어를 객체지향 다이어그램으로 정확히 추출해내지 못하였고 또한 호환성이 떨어지는 문제점을 가지고 있다. 본 연구에서는 기존의 역공학 툴들의 문제점을 보안하고 호환성을 높이며 재사용성을 향상시키기 위한 방법을 제시한다. 자바 소스코드로부터 UML클래스 다이어그램을 추출하기 위해 본 논문에서는 자바 소스코드의 파싱을 통해 클래스 다이어그램 생성에 필요한 AST를 추출하여 XML로 저장함으로써 상호운영성을 높이며 클래스간의 연관관계를 상세히 표현하기 위한 방법을 제시한다.

  • PDF