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

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

AES 알고리즘을 사용하여 안드로이드 어플리케이션을 보호하기 위한 견고한 역공학 방지기법 (Robust Anti Reverse Engineering Technique for Protecting Android Applications using the AES Algorithm)

  • 김정현;이강승
    • 정보과학회 논문지
    • /
    • 제42권9호
    • /
    • pp.1100-1108
    • /
    • 2015
  • 안드로이드 운영체제의 실행파일인 classes.dex파일은 Java 바이트코드 형식이므로 누구나 쉽게 역공학으로 소스코드를 분석하고 수정이 가능하다. 이러한 특징 때문에 많은 어플리케이션들이 불법 복제되어 유통됨에 따라 피해가 증가하고 있다. 이러한 문제를 해결하기 위해 본 논문은 classes.dex파일을 AES 암호화 알고리즘으로 암호화하여 배포하고, 암호화된 어플리케이션을 복호화하여 실행하는 어플리케이션 불법복제를 방지하는 기법을 제안한다. 암호화 및 복호화에 사용되는 Key는 랜덤한 값인 Salt값를 기반으로 조합하여 Hash함수에 대입하여 얻어진 Hash값을 Key로 사용하여 역공학 공격으로부터 견고함을 더했다. 실험을 통해 제안한 기법이 어플리케이션의 불법복제를 방지하는데 효과적이고, 역공학 공격을 불가능하게 하여 어플리케이션의 원천기술 보호와 리패키징으로 인한 악성코드의 전파도 방지할 수 있음을 보였다.

LLDB를 이용한 iOS 애플리케이션 역공학 분석 방법론 (Methodology of Reverse Engineering iOS application with LLDB)

  • 윤정무;류재철
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2016년도 춘계학술발표대회
    • /
    • pp.239-240
    • /
    • 2016
  • 모바일 환경이 발전하면서 다양한 스마트폰 중 안드로이드 기반의 스마트폰이 시장 점유율을 높여가고 있다. 하지만 최근 보안 이슈로 인해 애플사에서 만든 아이폰을 사용하는 사람이 증가하고 있다. 따라서 아이폰에 대한 어플리케이션 시장 역시 증가 추세이다. 하지만 안드로이드 기반 스마트폰은 어느 정도 소스코드가 공개되어있기에 개발 및 분석이 수월하지만, 애플사의 아이폰은 공개된 소스코드가 극히 적어 개발 및 분석이 상대적으로 어렵다. 따라서 아이폰 애플리케이션에서 오류 발생 시 시스템 라이브러리에서 발생하는 오류는 효율적으로 대처하기가 힘들다. 본 논문은 더 효율적으로 애플리케이션들을 개발하고 유지 및 보수 할 수 있도록 Mac OS X에서 LLDB를 이용한 아이폰 애플리케이션 역공학 분석 방법론을 제안한다.

폴리곤 기반 역공학 시스템의 후처리 기능에 관한 연구 (A study on the post-processing functions in a polygon-based reverse engineering system)

  • 박진표;박광현;최영;전용태;노형민
    • 한국정밀공학회:학술대회논문집
    • /
    • 한국정밀공학회 2001년도 춘계학술대회 논문집
    • /
    • pp.41-44
    • /
    • 2001
  • In reverse engineering, the whole surfaces of the three-dimensional(3D) product are measured using 3D positional scanners. The raw triangle meshes constructed from a scanned point set are not well suited for direct use in the downstream activities. This is because the amount of triangle meshes may be very large(from millions to hundreds of millions) and usually distorted by scanning error. Furthermore, the triangle meshes may contain several holes that must be filled. Thus, several solutions have to be addressed and implemented before a complete CAD models can be acquired. This paper discusses on the algorithms of decimation, smoothing, and hole-filling that are crucial to refine the triangle meshes. Several examples are also given and discussed to validate the system.

  • PDF

XNA기반 게임 개발 환경에서 역공학 방법을 이용한 객체지향 개념 학습 (Object-oriented Concept Learning using Reverse-engineering Method Based on XNA Game Development Environment)

  • 최영미;주문원;윤태복
    • 디지털콘텐츠학회 논문지
    • /
    • 제10권1호
    • /
    • pp.45-54
    • /
    • 2009
  • 본 논문은 게임 개발 환경에서 역공학을 이용한 객체지향개념 학습 방법을 제안한다. 흥미와 재미요소를 가지는 게임의 장점과 완성된 게임을 역으로 분석해 가며 사용된 기술을 학습자 스스로 도출해 낸다. 이 과정에서 게임에 사용된 객체지향 개념을 능동적으로 이해할 수 있는 학습 방법을 소개한다. 제안하는 방법은 XNA 게임 개발 환경에서 학습 사례를 소개하고 교수/학습자 역할에 따른 시나리오를 제시한다.

  • PDF

자바 코드로부터 시퀸스 다이어그램 추출 기능의 설계 및 구현 (Design and Implementation of Sequence Diagram Extraction from Java Code)

  • 윤성아;김태균;윤석진
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2002년도 봄 학술발표논문집 Vol.29 No.1 (B)
    • /
    • pp.397-399
    • /
    • 2002
  • 1980년대 이후 많은 연구 개발 성과가 있는 객체 지향 패러다임의 활성화에 이어서 수년 전부터 컴포넌트 기술의 보급이 확산되고 있다. 2000년부터 한국전자통신연구원의 컴포넌트 공학 연구팀 주관으로 개발되고 있는 COBALT 시스템은 EJB 기술을 기반으로 상업성있는 컴포넌트를 개발하기 위한 환경 구축을 목적으로 한다. COBALT 시스템은 UML을 이용한 영역 모델링 기능 컴포넌트 생성 및 배치 기능, 기존의 자바 코드에 대한 역공학 기능 등을 갖추고 있다. 본 논문은 COBALT 시스템의 부 시스템으로 구현된 역공학 기능 중에서 시퀸스 다이어그램 추출 기능의 설계 및 구현 결과를 다룬다 UML 시퀸스 다이어그램은 객체들 간의 메시지 전달 상황을 모델링하기 위한 것으로 시스템의 실행 흐름을 표현한다. 본 논문에서 구현된 시퀸스 다이어그램 추출 기능을 통하여 컴포넌트 개발자는 기존에 작성된 자바 코드를 쉽게 이해할 수 있게 되므로 자바 코드의 재사용성을 향상시킬 수 있으며 재사용된 자바 코드를 이용하여 EJB 컴포넌트를 개발할 수 있다.

  • PDF

역공학 기반 금융VAN 연동 서비스 모델링을 통한 시스템 구현 연구 (A Study on System Implementation through modeling the Financial VAN(Value Added Network) Connected Service Based on Reverse engineering)

  • 김규원;박보경;장우성;문소영;김영철
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2010년도 한국컴퓨터종합학술대회논문집 Vol.37 No.1(B)
    • /
    • pp.92-96
    • /
    • 2010
  • VAN 시스템에서 운영되는 소프트웨어는 개발이 완료한 후에도 업체들의 다양한 요구 사항을 수용해야한다. 소프트웨어 개발 초기에 갖추어진 개발문서들은 오랜 유지보수 기간이 지나면 초기 개발의 내용과 많은 부분이 다르다. 이때 개발자가 각 각의 요구사항을 수용할 때 경험을 토대로 수정하기 때문에 개발문서가 정확하게 반영되지 않는다. 이러한 경우에 개발문서는 그 역할을 수행하지 못하므로 소스 코드에 의지 할 수밖에 없다. 또한 절차식 언어로 개발된 소프트웨어의 경우는 유지보수가 더 어렵다. 절차식 언어를 객체지향 언어로 변경한다면 유지보수성이 높아 질 것이다. 본 논문에서는 이러한 문제를 해결하기 위해 역공학을 이용하여 기존의 절차식 언어를 객체 지향 언어로 변경하기 위한 과정을 제안한다.

  • PDF

객체지향 역공학을 위한 소프트웨어 복잡도 측정 기법 (A Software Complexity Measurement Technique for Object-Oriented Reverse Engineering)

  • 김종완;황종선
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제32권9호
    • /
    • pp.847-852
    • /
    • 2005
  • 지난 10여년간 객체지향 코드의 관리 및 분석을 위해 객체지향 소프트웨어 시스템에 대한 다양한 복잡도 계산 기법들이 제안되었다. 이러한 기법들은 WMC(Weighted Methods per Class), LCOM(Lack of Cohesion in Methods)과 같이 소스코드 분석을 기반으로 한다. 기존 기법들의 한계는 코드에서 함수의 개수만 계산한다는 것이다. 본 논문에서는 함수의 파라메타 개수, 반환값 여부 그리고 자료형까지도 확인하는 새로운 가중치 기법을 제안하며, 이를 역공학에 적용한다. 또한 역공학과정에서 객체지향 코드를 위한 클래스 복잡도 계산 지침을 제공하기 위해 인터페이스에 가중치를 부여하는 효율적인 복잡도 측정 기법을 제안한다. 제안기법인 ECC(Enhanced Class Complexity)는 C++ 환경에서 일관성 있고 정확한 결과를 보여준다.

PC에 탑재된 OTP의 취약점 분석 (Vulnerabilities Analysis of the OTP Implemented on a PC)

  • 홍우찬;이광우;김승주;원동호
    • 정보처리학회논문지C
    • /
    • 제17C권4호
    • /
    • pp.361-370
    • /
    • 2010
  • OTP(One Time Password)란 사용자가 인증시 안전한 메커니즘을 이용하여 매번 다른 패스워드를 생성하여 인증하는 방식을 말한다. OTP 인증 방식을 이용할 경우 공격자는 패스워드를 가로채어 정당한 사용자로 위장할 수 없게 된다. 이러한 OTP는 H/W 기반 또는 S/W 기반 형태로 구현될 수 있다. H/W를 기반으로 하는 단말기형과 카드형의 경우 배포 및 사용의 편의성 문제로 인해 대중화에 어려움이 존재하였다. 이를 대체하기 위한 방법으로 모바일이나 PC에 S/W 형태로 구현하는 OTP가 도입되고 있다. 하지만 S/W 제품은 구현상에 취약점이 존재할 경우 악의적인 공격의 대상이 될 수 있다는 문제점이 있다. 실제로 금융보안연구원의 보고서에서는 모바일 상에 탑재된 OTP의 경우 구현상에 취약점이 존재한다고 밝혔다. 하지만 PC상에 탑재된 OTP에 대해서는 현재까지 취약점 분석 사례가 존재하지 않는다. 이에 본 논문에서는 PC에 탑재된 OTP의 보안 검토사항을 도출하고, 실제 역공학을 통해 OTP 생성 메커니즘을 파악하여 취약점 분석을 수행하였다.

레거시 애플리케이션 시스템에서 폼 기반 역공학적 객체 분석 프로세스 (Form-based Object Analysis Process by Applying Reverse Engineering in Legacy Application System)

  • 이창목;이정열;김정옥;유철중;장옥배
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2003년도 봄 학술발표논문집 Vol.30 No.1 (B)
    • /
    • pp.22-24
    • /
    • 2003
  • 레거시 애플리케이션 시스템(이하 LAS: Legacy Application System)은 차세대 비즈니스 시스템들로 통합되어야 하는 가치 있는 자산이다. 이러한 LAS의 이점을 얻기 위해, 레거시 비즈니스 시스템을 역공학적으로 분석할 수 있다. 본 논문은 LAS의 폼으로부터 의미 있는 정보를 파악하여 다음 세대의 시스템에 통합될 수 있도록 객체단위로 분할하여 분석한 다음, 이러한 정보를 이용하여 재사용 및 재공학을 할 수 있도록 하기 위한 역공학적 객체 분석 프로세스(이하 FOAP)를 제안한다. 본 논문에서 제안하는 FOAP는 4단계 즉, 폼 사용사례 분석 단계, 폼 객체 분할 단계, 객체구조 모델링 단계, 객체 모델 통합 단계 등으로 구성되어있다. 폼 사용사례 분석 단계는 폼 구조 그리고 LAS와 사용자간의 상호작용 둥의 정보를 획득하는 단계다. 폼 객체분할 단계는 폼 정보를 의미 있는 필드들로 구분하는 단계다. 객체구조 모델링 단계는 폼 객체들간의 구조적 관계와 협력 관계를 파악하여 모델링하는 단계다. 마지막으로 객체 모델 통합단계는 객체 단위의 단위 모델들을 통합하여 추상화된 정보를 포함한 상위 수준의 통합 모텔을 유도하는 단계다. FOAP에 의해 결과적으로 생성된 객체 통합 모델은 역공학 기술자들의 LAS 이해와 LAS의 정보를 새로운 시스템에 적용하는데 있어 좀 더 용이한 효율성을 제공한다.

  • PDF

폴리곤 기반 역공학 시스템의 구멍메움에 관한 연구 (A Study on Filling Polygonal Holes in a Polygon-based Reverse Engineering System)

  • 전용태;박광현;노형민;최영
    • 한국정밀공학회지
    • /
    • 제21권4호
    • /
    • pp.140-147
    • /
    • 2004
  • In reverse engineering, the whole surfaces of the three-dimensional product are measured using 3D positional scanners. The raw triangle meshes constructed from a scanned point set are not well fitted for direct use in the downstream engineering or graphic activities. No object can be fully described by a single scan. Although multiple scans are usually taken and aligned to achieve a complete model, a set of scanned points does not entirely wrap the whole object. This is because some surfaces may be inaccessible to the scanner, so some portion of the scanned surface may be missing. This paper discusses the algorithms of a hole-filling that are crucial to refine the triangle meshes. In this paper, the holes are filled with flat triangles first by subdivision operation and then smoothed with neighboring triangles. This process continues until it converges to a certain user-defined iteration number. Examples are given and discussed to validate the system.