• 제목/요약/키워드: 코드 도용

검색결과 40건 처리시간 0.027초

Dalvik명령어 유사도 비교를 통한 안드로이드 표절 탐지 기법 (Android plagiarism detection through Dalvik instruction similarity comparison)

  • 최성하;황나현;박희완
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2012년도 춘계학술발표대회
    • /
    • pp.796-799
    • /
    • 2012
  • 스마트폰 애플리케이션 중에서 안드로이드 앱은 자바를 기반으로 한다. 따라서 자바 프로그램과 마찬가지로 디컴파일러 도구를 활용하여 원본 소스 코드를 얻어낼 수 있기 때문에 코드 도용에 대해서 매우 취약하다. 본 논문에서는 안드로이드에 대한 코드 도용과 표절을 막기 위한 기법을 제안한다. 효과적인 코드 도용 및 표절 여부를 탐지하기 위한 방법으로서, 안드로이드 달빅(Dalvik) 코드에 대해서 요약 단계를 거친 후 유사도를 측정하는 방법을 사용한다. 기존의 안드로이드 유사도 비교 연구에서는 달빅 코드가 정확하게 일치해야만 유사도가 높게 측정될 수 있었지만, 요약 단계를 통해서 변환된 달빅 코드를 비교하면 코드 도용시 일부 코드의 의도적인 수정이 있더라도 유사도가 높게 측정된다. 그 결과, 본 논문에서 제안하는 표절 탐지 기법이 기존 연구와 비교하여 표절에 대한 탐지 능력이 우수함을 확인하였다.

안드로이드 앱 도용 탐지를 위한 API 유사도 비교 도구 구현 (API Similarity Comparison Tool Development for Detecting Theft of Android Application)

  • 최성하;이현영;조승민;박희완
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2012년도 춘계학술발표대회
    • /
    • pp.792-795
    • /
    • 2012
  • 최근 오픈 소스 커뮤니티가 활성화되고 수많은 오픈 소스들이 공개되고 있어서 많은 개발자들이 오픈 소스를 활용하고 있다. 그러나 오픈 소스도 정해진 라이선스 기반으로 공개되므로 오픈 소스를 사용할 때는 반드시 라이선스를 확인해야 한다. 본 논문에서는 안드로이드 앱의 라이선스 위반이나 코드 도용을 확인할 수 있는 방법으로서 안드로이드 앱 사이의 API 메소드 호출 유사도를 측정하는 방법을 제안한다. 원본 프로그램과 도용된 프로그램은 유사한 API 메소드를 사용할 것임을 예상할 수 있기 때문에 API 메소드 호출이 유사한 것을 확인하면 간접적으로 코드 도용을 확인할 수 있다. 본 논문에서 개발한 API 유사도 측정 도구는 안드로이드 앱의 소스 코드를 필요로 하지 않고, 안드로이드 달빅(Dalvik) 바이트 코드로부터 직접 API 호출 명령어를 분석하여 유사도를 측정한다는 특징이 있다. 본 논문에서 구현한 도구의 평가를 위해서 API 호출 유사도 비교 실험을 수행하였다. 그 결과, 실제로 API 호출 유사도가 높았던 두 앱이 서로 공통된 모듈을 포함하고 있음을 밝혀내었다. 그리고 선행 연구에서 제안했었던 안드로이드 달빅 코드 전체에 대한 유사도 비교 도구보다 비교 속도가 35% 정도 향상된 것을 확인하였다.

Windows 프로그램 도용 탐지를 위한 기능 단위 동적 API 버스마크 (A Functional Unit Dynamic API Birthmark for Windows Programs Code Theft Detection)

  • 최석우;조우영;한태숙
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제36권9호
    • /
    • pp.767-776
    • /
    • 2009
  • 소프트웨어 버스마크란 코드 도용 탐지를 위해 프로그램 자체에서 추출된 프로그램의 특징이다. 동적 API 버스마크는 실행 시간 API 호출 시퀀스로부터 추출된다. Tamada가 제안한 Windows 프로그램을 위한 동적 API 버스마크는 프로그램 실행 시작 부분의 API 시퀀스만을 추출하여 프로그램의 중요한 특성을 반영하지 못하였다. 이 논문에서는 프로그램의 핵심 기능을 실행할 때의 API 시퀀스에서 추출한 기능 단위 동적 API 버스마크를 제안한다. 기능 단위 동적 API 버스마크를 이용해 코드 도용을 탐지하기 위해서 먼저 두 프로그램을 실행하여 버스마크를 추출한다. 두 프로그램의 유사도는 프로그램에서 추출한 버스마크를 준전체 정렬 방식을 이용하여 비교하여 측정한다. 버스마크의 신뢰성을 평가하기 위하여 같은 기능을 가진 프로그램들을 대상으로 실험하였다. 강인성을 평가하기 위하여 동일한 소스 코드를 다양한 컴파일 방법으로 만들어 실험하였다. 실험 결과 본 논문에서 제안하는 기능 단위 동적 API 버스마크가 기존의 버스마크에서 탐지할 수 없었던 모듈 단위 도용을 탐지할 수 있음을 보였다.

앱 인벤터로 개발한 앱의 표절 탐지 도구 설계 및 구현 (Design and Implementation of a Plagiarism Detection Tool for Apps Created with the App-Inventor)

  • 신세훈;한동준;한원근;박희완
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2017년도 추계학술발표대회
    • /
    • pp.353-356
    • /
    • 2017
  • 앱 인벤터는 GUI 환경에서 블록 편집기를 사용하여 앱을 개발한다. 따라서 누구나 쉽게 앱 프로그래밍을 시작할 수 있다는 장점이 있다. 또한, 앱 인벤터의 공식 사이트의 gallery 공간에 공개된 수많은 공개 앱 소스(aia 파일)를 쉽게 구할 수 있기 때문에 다른 사람이 만든 앱의 소스를 그대로 가져다가 이미지만 바꿔서 자신이 만든 것처럼 앱을 공개할 수도 있다. 그러나 직접 블록 단위로 비교해보지 않고서는 표절이나 도용 여부를 판단하는 것은 쉽지 않다. 따라서 본 논문에서는 앱 인벤터로 개발한 앱들의 유사도를 자동으로 계산해주는 도구를 개발하였다. 원본 프로그램과 도용된 프로그램은 유사도가 높게 계산될 것임을 예상할 수 있기 때문에 유사도 계산 프로그램은 코드 도용을 확인하는 목적으로 활용될 수 있다. 본 논문에서 구현한 도구의 평가를 위해서 다양한 실험을 수행하였고, 실제로 유사도가 높았던 앱들이 서로 공통된 블록을 다수 포함하고 있음을 밝혀내었다. 이러한 실험결과를 바탕으로 우리가 개발한 도구가 앱 인벤터로 개발한 앱에 대해서 소스 표절이나 코드 도용을 탐지하는 목적으로 활용될 수 있을 것으로 기대한다.

정적 API 트레이스 버스마크를 이용한 자바 클래스 도용 탐지 (Detecting Java Class Theft using Static API Trace Birthmark)

  • 박희완;최석우;임현일;한태숙
    • 한국정보과학회논문지:컴퓨팅의 실제 및 레터
    • /
    • 제14권9호
    • /
    • pp.911-915
    • /
    • 2008
  • 소프트웨어 버스마크는 프로그램을 식별하는데 사용될 수 있는 프로그램의 고유한 특징을 말한다. 본 논문에서는 정적 API 트레이스 정보를 이용하여 자바 클래스 도용을 탐지하는 방법을 제안한다. 정적 API 트레이스를 생성할 때 제어 흐름을 분석하여 버스마크의 강인성을 높였고, 트레이스를 비교할 때 준전체 정렬 방법을 사용하여 서로 다른 프로그램을 구별할 수 있는 신뢰성을 높였다. XML Parser 패키지에 대한 신뢰도와 강인도 실험 결과를 통하여 본 논문에서 제안하는 정적 API 트레이스 버스마크가 자바 클래스 도용을 탐지하는데 있어서 기존의 버스마크들보다 효과적임을 보였다.

Design and Implementation of Birthmark Technique for Unity Application

  • Heewan Park
    • 한국컴퓨터정보학회논문지
    • /
    • 제28권7호
    • /
    • pp.85-93
    • /
    • 2023
  • 소프트웨어 버스마크란 프로그램의 소스 코드가 없는 상태에서도 바이너리 파일로부터 추출 가능한 소프트웨어에 내재된 고유한 특징을 의미한다. 사람의 유전자처럼 유사도를 수치로 계산할 수 있기 때문에 소프트웨어 도용과 복제 여부를 판단하는데 사용할 수 있다. 본 논문에서는 유니티를 이용하여 개발된 안드로이드 애플리케이션에 대한 새로운 버스마크 기법을 제안한다. 유니티 기반 안드로이드 애플리케이션은 C# 언어를 이용하여 코드를 작성하며 프로그램의 핵심 로직은 DLL 모듈에 포함되기 때문에 일반적인 안드로이드 애플리케이션과는 다른 방법으로 접근해야 한다. 본 논문에서 제안한 유니티 버스마크 추출 및 비교 시스템을 구현하여 신뢰도와 강인도를 평가하였다. 평가 결과에 의해서 유니티 버스마크 기법은 유니티 기반으로 제작된 안드로이드 애플리케이션의 코드 도용이나 불법 복제를 예방하는데 효과가 있을 것으로 기대한다.

안드로이드 앱 도용 탐지를 위한 유사도 비교 연구 (A Study on Similarity Comparison for Detecting Theft of Android Application)

  • 박세익;박희광;최성하;박희완
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2011년도 추계학술발표대회
    • /
    • pp.868-871
    • /
    • 2011
  • 소프트웨어 버스마크는 모든 프로그램에 이미 포함되어 있으며 서로 다른 프로그램을 식별하는데 사용될 수 있는 프로그램의 고유한 특징을 말한다. 본 논문에서는 소프트웨어 버스마크를 이용하여 안드로이드 앱 사이의 유사도를 측정하고 코드 도용 탐지에 활용하는 방법을 제안하였고, 다양한 카테고리의 안드로이드 앱에 대한 유사도 비교 실험을 하였다. 먼저, 같은 개발사에서 만든 유사한 프로그램을 대상으로 버스마크 유사도를 측정한 결과 유사도가 매우 높다는 것을 확인하였다. 또한, 서로 다른 개발사에서 만든 유사한 카테고리의 프로그램을 비교하였고 비슷한 프로그램이라도 서로 다른 개발사에서 만든 앱이기 때문에 유사도가 낮다는 것을 확인하였다. 마지막으로, 서로 다른 개발사의 유사한 프로그램들 중에서 유사도가 높게 측정된 경우를 탐지한 실험 결과를 제시하였다. 이러한 유사 앱들은 실제로 공통 클래스를 함께 포함하고 있었다. 실험 결과들을 바탕으로 소프트웨어 버스마크가 안드로이드 앱 사이의 공통 클래스를 탐지하는데 활용될 수 있음을 확인하였고, 더 나아가 안드로이드 앱에서의 코드 도용을 탐지하는 목적으로도 활용될 수 있음을 보여주었다.

API k-gram 기반의 안드로이드 버스마크 (An Android Birthmark based on API k-gram)

  • 박희완
    • 정보처리학회논문지:컴퓨터 및 통신 시스템
    • /
    • 제2권4호
    • /
    • pp.177-180
    • /
    • 2013
  • 소프트웨어 버스마크는 프로그램을 인식하는데 사용될 수 있는 고유한 특징을 의미한다. 소프트웨어 버스마크는 단순한 프로그램 변환에 의해서 삭제되지 않기 때문에 코드 도용을 탐지하는데 사용된다. 본 논문에서는 안드로이드 앱에 대한 API k-gram 기반의 버스마크 기법을 제안한다. 안드로이드 SDK는 프로그래머가 쉽게 앱을 개발할 수 있도록 다양한 라이브러리를 제공한다. 그리고 안드로이드 SDK를 사용하기 위해서는 반드시 API 메소드 호출을 이용해야만 한다. API 메소드 호출 명령어는 다른 명령어로 바꾸거나 삭제하기 어렵기 때문에 애플리케이션의 고유한 특징으로서 사용될 수 있다. 본 논문에서 제안하는 버스마크의 효용성을 보여주기 위해서 기존의 버스마크 기법과 비교하였고 오픈소스 앱을 대상으로 평가하였다. 실험으로부터 API k-gram 버스마크가 기존 버스마크보다 신뢰도와 강인도가 높은 것을 확인하였다.

연산자 요약을 이용한 k그램 소프트웨어 버스마크 (Software Birthmark Based on k-gram Using Operator Abstraction)

  • 이기화;우균
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2013년도 춘계학술발표대회
    • /
    • pp.687-690
    • /
    • 2013
  • 소프트웨어 버스마크 기법은 도용이 의심되는 소프트웨어의 소스 코드를 얻을 수 없을 때 사용할 수 있는 소프트웨어 도용 탐지 기법이다. 이 기법은 프로그램의 바이너리나 자바 클래스 파일에서 프로그램 고유의 특징인 버스마크를 추출한 다음 프로그램간 버스마크 유사도 측정을 통해 도용을 탐지한다. 이 논문에서는 선행 연구된 k그램 버스마크 기법에 연산자 요약이라는 아이디어를 접목한 연산자 요약 k그램 버스마크 기법을 제안한다. 연산자 요약이란 연산자 우선순위가 같은 연산자의 JVM 명령어를 묶어 요약번호로 나타내는 것이다. 연산자 요약 k그램 버스마크 기법은 연산자 요약과 제어 흐름을 고려하여 생성한 연속된 k개의 요약번호 시퀀스 집합을 버스마크로 정의한다. 버스마크를 평가하기 위해 선택 정렬 메소드와 버블 정렬 메소드를 대상으로 신뢰도 실험과 강인도 실험을 하였다. 실험 결과 연산자 요약 k그램 버스마크 기법이 선행 연구된 Tamada 버스마크 기법과 k그램 버스마크 기법보다 높은 신뢰도와 강인도를 보였다.

레이아웃 파일 변환을 이용한 안드로이드 난독화 기법의 설계 및 구현 (Design and implementation of Android obfuscation technique using layout file transformation)

  • 박희완
    • 한국융합학회논문지
    • /
    • 제11권11호
    • /
    • pp.1-7
    • /
    • 2020
  • 안드로이드 앱은 주로 apk 파일 형태로 배포되고, apk 파일의 압축 해제하면 앱 디자인과 관련된 xml 파일, 이미지, 사운드와 같은 리소스 파일을 추출할 수 있다. 만일 은행이나 금융과 관련된 앱의 리소스가 도용되어 가짜 앱이 배포된다면 개인정보가 유출되거나 금융사기를 당할 수 있다. 따라서 앱을 배포할 때 코드뿐만 아니라 디자인을 도용하기 어렵게 만드는 노력이 필요하다. 본 논문에서는 xml 파일을 자바 코드로 변환한 후 프로가드(Proguard)를 이용하여 난독화하는 도구를 구현하였고 실행 성능을 평가하였다. 본 논문에서 제안하는 레이아웃 난독화 기법을 사용하면 앱구동 성능을 높일 수 있으며 화면 디자인 도용으로 인한 불법 복제 피해를 예방하는 효과도 있을 것으로 기대한다.