• Title/Summary/Keyword: 소프트웨어 역공학

Search Result 87, Processing Time 0.021 seconds

CHES 2020로 살펴본 부채널 분석 보안 컨퍼런스 연구 동향

  • ;Kim, Hui-Seok
    • Review of KIISC
    • /
    • v.30 no.6
    • /
    • pp.67-81
    • /
    • 2020
  • CHES는 암호 알고리즘의 하드웨어/소프트웨어 구현의 설계 및 분석에 대한 다양한 성과가 발표되는 부채널 분석 분야 최대 규모의 보안 컨퍼런스이다. 본 기고는 CHES 컨퍼런스에 발표된 논문들에 대하여 부채널 공격 관점, 부채널 대응 및 구현 관점, CHES에서 주제로 다루는 암호 알고리즘의 추이 관점으로 구분하여 동향을 분석한다. 이를 위하여 오류주입 공격, 머신러닝 기반 부채널 공격, 캐시공격, 부채널 누출 검증 방법론과 부채널 역공학 기술 등 다양한 부채널 공격을 소개하고 최신 논문 주제의 흐름에 대하여 논의한다. 또한, 소프트웨어 고차 마스킹과 하드웨어 TI, PUF/난수 발생기 등의 부채널 대응기술 및 구현 동향을 분석하며, CHES에 발표된 논문들이 주제로 다루는 대칭키, 공개키 암호 및 화이트박스 암호 추이를 분석한다. 이러한 CHES 컨퍼런스의 주제별 연구 동향 분석 결과는 부채널 분석 연구자에게 유용한 정보를 제공하고 향후 연구 방향에 대한 중요한 지표가 될 수 있을 것이다.

Development of Graphical Solution for Computer-Assisted Fault Diagnosis: Preliminary Study (컴퓨터 원용 결함진단을 위한 그래픽 솔루션 개발에 관한 연구)

  • Yoon, Han-Bean;Yun, Seung-Man;Han, Jong-Chul;Cho, Min-Kook;Lim, Chang-Hwy;Heo, Sung-Kyn;Shon, Cheol-Soon;Kim, Seong-Sik;Lee, Seok-Hee;Lee, Suk;Kim, Ho-Koung
    • Journal of the Korean Society for Nondestructive Testing
    • /
    • v.29 no.1
    • /
    • pp.36-42
    • /
    • 2009
  • We have developed software for converting the volumetric voxel data obtained from X-ray computed tomography(CT) into computer-aided design(CAD) data. The developed software can used for non-destructive testing and evaluation, reverse engineering, and rapid prototyping, etc. The main algorithms employed in the software are image reconstruction, volume rendering, segmentation, and mesh data generation. The feasibility of the developed software is demonstrated with the CT data of human maxilla and mandible bones.

Reengineering Legacy systems into Design Patterns of Component Base Design (CBD) (기존 시스템에서 CBD 지원을 위한 설계 패턴 재공학)

  • Kim Cuk-Boh
    • Journal of Internet Computing and Services
    • /
    • v.5 no.1
    • /
    • pp.1-13
    • /
    • 2004
  • The effect of Application system with class units is not sufficient because of independency and reuse of Component elements due to component abstraction based on only source code. Therefore We need to apply design pattern approach to represent not only the problem abstraction but also information and relationship between system elements for generic solutions of specific domain, Also, it is essential to software reverse engineering acquiring the correct understandings of the system through examining the existing systems and utilizing the acquired knowledges as reusable resources. In this paper, the extraction algorithm with JAVA and the validity of applying reverse engineering with extracting design patterns from source codes of the existing object-oriented system; are devised. The architecture of automatic tool is designed and implemented for 1) automatic extraction of design patterns and 2) reuse tool for retrieving, editing and rebuilding of design patterns.

  • PDF

An Implementation of Control Flow Obfuscator for C++ Language (C++언어를 위한 Control Flow Obfuscator 구현 및 평가)

  • Noh Jin-Uk;Cho Byoung-Min;Oh Hyun-Soo;Chang Hye-Young;Jung Min-Gyu;Lee Seung-Won;Park Yong-Soo;Woo Je-Hak;Cho Seong-Je
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2006.06c
    • /
    • pp.295-297
    • /
    • 2006
  • 많은 소프트웨어 개발자들은 자신들의 프로그램들이 역공학 공격의 대상이 되는 것을 우려하고 있다. 특히 프로그램 내에 핵심적인 알고리즘이 내재되어 있는 경우 역공학 공격을 대비하는 기법이 필수적이다. 또한, 유비쿼터스 컴퓨팅 시대가 발전할수록 프로그램의 규모가 대형화됨에 따라 공동 개발자들 간에 프로그램 소스가 공유될 기회가 많아졌고, 그 결과 프로그램 소스 수준의 보호 기법도 필요하게 되었다. 본 논문에서는 C++ 프로그램 보호를 위해 Control Flow Obfuscator 도구를 구현하여 실험하였으며, 실험 결과 크지 않은 오버헤드로 악의적인 공격으로부터 프로그램을 분석을 어렵게 할 수 있음을 보인다.

  • PDF

A design for reverse engineering based model change information analysis and visualization framework (역공학 기반 모델간 변경분석 및 시각화 도구의 설계)

  • Kwon, Jin-Wook;Lee, Jung-Sun;Cao, Thi Ly;Lee, Woo-Jin
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2010.06b
    • /
    • pp.140-143
    • /
    • 2010
  • 소프트웨어를 유지보수하고 관리하는 과정에서 변경된 정보가 프로그램 구조에서의 어느 부분을 나타내고 그 변경이 전체 구조에서 어떤 영향을 미치는가에 대한 체계적이고 효율적인 관리방법이 필요하게 되었다. 기존의 상용화 프로그램에서 채택하고 있는 코드레벨에서의 라인과 라인상의 비교분석 정보만으로는 프로그램의 변경을 구조적인 관점에서 바라보기가 힘들었다. 이 논문에서는 역공학을 이용해서 변경전후의 프로그램 모델구조 정보를 얻고 그 정보를 서로 비교 분석하는 방법을 제시한다. 또, GMF(graphical modeling framwork)로 프로그램의 모델정보를 클래스 다이어그램 형태로 보여주며 비교분석된 정보를 다이어그램에서 보여줄 수 있는 시각화 규칙을 제시한다. 변경된 정보를 다이어그램에서 쉽게 파악할 수 있게 표현함으로써 프로그램 개발자가 아니라도 유지보수에서의 변경을 구조적으로 알 수 있고 관리할 수 있다.

  • PDF

An Evaluation of the Proguard, Obfuscation Tool for Android (안드로이드를 위한 난독화 도구 프로가드(Proguard) 성능 평가)

  • Park, Heewan;Park, Heekwang;Ko, Kwangman;Choi, Kwanghoon;Youn, Jonghee
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2012.04a
    • /
    • pp.730-733
    • /
    • 2012
  • 소프트웨어는 대부분 바이너리 형태로 배포되기 때문에 역공학 분석이 쉽지 않다. 그러나 안드로이드는 자바를 기반으로 한다. 즉, 자바 언어로 프로그래밍하고 생성된 클래스 파일을 dx라는 도구를 사용하여 안드로이드용 달빅(Dalvik) 코드로 변환한다. 따라서 안드로이드 역시 자바의 취약점을 가지고 있고, 자바용으로 개발된 역공학 도구에 의해서 쉽게 분석될 수 있다. 한편으로 자바 프로그램의 저작권을 보호하고 핵심 알고리즘이 노출되지 않도록 다양한 난독화 도구들이 개발되었다. 그 중에서 안드로이드 SDK에 포함되어 함께 배포되고 있기 때문에 널리 사용되고 있는 프로가드(Proguard)에 대해서 대표적인 기능 및 사용법, 프로가드로 난독화된 코드가 원본과 비교하여 어떻게 변경되었는지 평가한다. 그리고 프로가드가 가지고 있는 한계를 알아보고, 이것을 극복할 수 있는 방법을 모색한다.

Power Consumption Analysis of High-Level Obfuscation for Mobile Software (모바일 소프트웨어를 위한 고급수준 난독처리 기법의 전력 소모량 분석)

  • Lee, Jin-Young;Chang, Hye-Young;Cho, Seong-Je
    • Journal of KIISE:Computing Practices and Letters
    • /
    • v.15 no.12
    • /
    • pp.1008-1012
    • /
    • 2009
  • Obfuscation is known as one of the most effective methods to protect software against malicious reverse engineering transforming the software into more complicated one with still preserving the original semantic. However, obfuscating a program can increase both code size of the program and execution time compared to the original program. In mobile devices, the increases of code size and execution time incur the waste of resources including the increase of power consumption. This paper has analyzed the effectiveness of some high-level obfuscation algorithms as well as their power consumption with implementing them under an embedded board equipped with ARM processor. The analysis results show that there is (are) an efficient obfuscation method(s) in terms of execution time or power consumption according to characteristics of a given program.

Detecting Android Emulators for Mobile Games (Focusing on Detecting Nox and LD Player) (모바일 게임용 안드로이드 에뮬레이터 탐지 기법 (Nox와 LD Player 탐지 기법 중심으로))

  • Kim, Nam-su;Kim, Seong-ho;Pack, Min-su;Cho, Seong-je
    • Journal of Software Assessment and Valuation
    • /
    • v.17 no.1
    • /
    • pp.41-50
    • /
    • 2021
  • Many game and financial apps have emulator detection functionality to defend against dynamic reverse engineering attacks. However, existing Android emulator detection methods have limitations in detecting the latest mobile game emulators that are similar to actual devices. Therefore, in this paper, we propose a method to effectively detect Android emulators for mobile games based on Houdini module and strings of a library. The proposed method detects the two emulators, Nox and LD Player through specific strings included in libc.so of bionic, and an analysis of the system call execution process and memory mapping associated with the Houdini module.

Constructing an Open Source Based Software System for Reusable Module Extraction (재사용 모듈 추출을 위한 오픈 소스 기반 소프트웨어 시스템 구축)

  • Byun, Eun Young;Park, Bokyung;Jang, Woosung;Kim, R. Young Chul;Son, Hyun Seung
    • KIISE Transactions on Computing Practices
    • /
    • v.23 no.9
    • /
    • pp.535-541
    • /
    • 2017
  • Today, the scale of the computer software market has increased, and massive sized software has been developed to satisfy diverse requirements. In this context, software complexity is increasing and the quality of software is becoming more difficult to manage. In particular, software reuse is important for the improvement of the environments of legacy systems and new system development. In this paper, we propose a method to reuse modules that are certified by quality. Reusable levels are divided into code area (method, class, and component), project domain, and business levels. Based on the coupling and cohesion of software complexity, we propose a reusable module extraction mechanism with reusability metrics, which constructs a visualization of the "reusable module's chunk" based on the method and class levels. By applying reverse engineering to legacy projects, it is possible to identify reusable modules/objects/chunks. If these modules/objects/chunks are to be reused to develop an extension system or similar new system, we need to ensure software reliability in order to reduce the time and cost of software development.

Program Slicing in the Presence of Complicated Data Structure (복잡한 자료 구조를 지니는 프로그램 슬라이싱)

  • Ryu, Ho-Yeon;Park, Joong-Yang;Park, Jae-Heung
    • The KIPS Transactions:PartD
    • /
    • v.10D no.6
    • /
    • pp.999-1010
    • /
    • 2003
  • Program slicing is s method to extract the statements from the program which have an influence on the value of a variable at a paricular point of the program. Program slicing is applied for many applications, such as program degugging, program testing, program integration, parallel program execution, software metrics, reverse engineering, and software maintenance, etc. This paper is the study to create the exact slice in the presence of Object Reference State Graph to generate more exactly static analysis information of objects in the program of the presence of complicated data structure.