맨위로가기

역공학

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

역공학은 제품, 시스템 또는 소프트웨어의 작동 방식, 설계, 기능을 이해하기 위해 기존의 대상을 분석하는 과정이다. 이는 상업적, 군사적, 그리고 생물학적 목적 등 다양한 분야에서 사용된다. 상업적 목적은 경쟁 기술 분석, 소프트웨어 상호 운용성 확보, 문서화 복구, 하드웨어 호환성 확보 등에 활용되며, 군사적 목적은 적국의 기술 획득 및 복제에 사용된다. 소프트웨어 분야에서는 코드 분석, 취약점 분석, 불법 복제 방지 등이 주요 목적이며, 생물학에서는 유전자 조절 네트워크의 구조와 기능을 이해하는 데 활용된다. 역공학은 CAD, 3D 스캐닝, PCB 분석, 소프트웨어 디컴파일 등 다양한 기술과 도구를 활용하며, 지적 재산권 및 법적 문제와 관련하여 국가별로 상이한 법적 제한을 받는다.

더 읽어볼만한 페이지

  • 역공학 - 역컴파일러
    역컴파일러는 기계어 또는 중간 언어 코드를 분석하여 고수준 언어 코드로 재구성하는 도구로, 로더를 통한 분석, 디스어셈블리, 프로그램 분석, 데이터 흐름 분석, 타입 분석, 구조화 단계를 거쳐 고수준 언어 코드를 생성하며, 소프트웨어 상호 운용성을 위해 제한적으로 허용되지만 저작권 침해의 소지가 있다.
  • 역공학 - 역어셈블러
    역어셈블러는 기계어 코드를 어셈블리어로 변환하는 도구이며, 리버스 엔지니어링, 보안 분석 등 다양한 분야에서 활용된다.
  • 기술 경쟁 - 군비 경쟁
    군비 경쟁은 국가 간 군사력 증강 경쟁으로, 전쟁의 원인이 되거나 국제 관계를 악화시키는 요인으로 작용하며, 냉전 시대 핵무기 경쟁이나 최근 동아시아 군사적 긴장 고조와 자율 무기 시스템 개발 경쟁 등의 양상을 보인다.
  • 기술 경쟁 - 우주 경쟁
    우주 경쟁은 2차 세계 대전 이후 미국과 소련 간의 과학기술 및 군사적 경쟁으로 시작되어 인공위성 발사, 우주 비행사 배출, 달 착륙 등 우주 개발 전반에 걸쳐 심화되었으며, 로켓 기술과 통신 기술 발전을 이끌었다.
  • 산업공학 - 방법공학
    방법공학은 생산 과정에서 작업자의 효율적인 작업 방법을 설계하여 비용 절감, 신뢰성 및 생산성 향상을 목표로 하는 분야이다.
  • 산업공학 - 파일럿 플랜트
    파일럿 플랜트는 대규모 공정 플랜트 건설의 위험을 줄이기 위해 사용되는 소규모 생산 설비이며, 벤치, 파일럿, 데모 규모로 나뉘어 제약 및 석유 산업 등에서 활용된다.
역공학

2. 사용 이유

리버스 엔지니어링(역공학)은 다양한 분야에서 여러 가지 목적으로 사용된다. 원래는 상업적 또는 군사적 이점을 위해 하드웨어를 분석하는 데서 시작되었지만,[6] 현대에는 그 범위가 훨씬 넓어졌다.

역공학은 제품을 복제하거나 변경하는 것뿐만 아니라, 생산 절차에 대한 정보가 거의 없는 상태에서 디자인 특징을 추론하는 분석 과정으로도 활용된다.[6] 레거시 시스템재문서화나,[6][7] 경쟁사 제품 분석[8] 등도 역공학의 중요한 목적이다.

소프트웨어 리버스 엔지니어링은 소프트웨어 유지 보수 및 개선을 위해 소스 코드를 이해하고, 관련 정보를 추출하며, 코드의 그래픽 표현을 통해 소프트웨어 버그나 취약점을 발견하고 수정하는 데 도움을 준다.[17] 또한, 악성 코드를 탐지하고 제거하거나, 소스 코드의 무단 복제 여부를 확인하는 데에도 활용된다.[10]

멀웨어 개발자들은 리버스 엔지니어링 기술을 사용하여 운영 체제의 취약점을 찾아 컴퓨터 바이러스를 만들기도 하지만,[10] 암호 분석을 통해 대체 암호, 대칭 키 알고리즘, 공개 키 암호화의 취약점을 찾는 데에도 사용된다.[10]

일반적으로 공업 제품은 설계도나 사양서의 개략적인 내용만 공개하고, 상세한 동작 원리는 공개하지 않는다. 컴퓨터 프로그램의 소스 코드오픈 소스는 공개되어 있지만, 독점 소프트웨어는 비공개이므로 정보 보안상의 위험에도 불구하고 비밀로 취급되는 경우가 많다. 따라서 이러한 공업 제품의 기술 정보는 공개된 문헌에서 찾기 어렵고, 때로는 법적으로 "비밀"로 보호되기도 한다.

자체 개발 제품이라도 오래된 제품은 기술자가 이미 퇴직·사망했거나, 설계도나 사양서가 없어졌거나, 처음부터 작성되지 않은 경우도 있어 충분한 정보를 얻기 어렵다. 이러한 상황에서 비공개 정보를 얻고, 더 우수한 제품을 개발하기 위해 기존 제품이나 소프트웨어를 역공학하여 기술을 분석, 조사, 확인하는 것은 제품 개발의 필수적인 과정이 되었다.

일본의 기계 제조사 중에는 수입품의 역공학으로 기술을 습득한 기업도 있다. 발단은 여성 의류 제조사였지만, 수입한 미싱이 요구를 충족시키지 못하고 지원 체제도 불충분하여 역공학을 통한 복제품 제조를 계획했고, 결국 자체 설계한 공업용 자동 미싱 제조사로 변신했다.

2. 1. 상업적 목적

경쟁사의 기술 정보를 분석하는 것은 역공학의 일반적인 상업적 목적 중 하나이다.[6][8] 이를 통해 경쟁사가 실제로 무엇을 하고 있는지 파악할 수 있다.

역공학은 다음과 같은 상업적 목적으로도 활용된다.

  • 비용 절감: 전자 제품의 기능을 분석하여, 사용자가 별도의 제품을 구매할 필요가 없도록 한다.
  • 재활용: 쓸모없어진 물건을 다른 유용한 방식으로 재사용한다.
  • 디자인 개선: 생산 및 디자인 회사는 3D 스캔, 3D 재모델링 및 재설계를 통해 "역사적인" 제조 컬렉션을 작업하고, 실용적인 수공예 기반 제조 공정에 역공학을 적용할 수 있다.[12]
  • 제품 보안 분석: 구성 요소의 사양을 결정하고 비용을 추정하며 잠재적인 특허 침해를 식별하여 제품의 작동 방식을 조사한다.[11]

2. 2. 소프트웨어 분야

Reverse engineering영어은 소프트웨어 분야에서 특히 중요한 역할을 한다. 주요 목적은 다음과 같다.

  • 상호 운용성 확보: 서로 다른 소프트웨어 간의 호환성을 확보하고, 데이터 교환을 용이하게 한다.[9]
  • 문서화 복구: 소스 코드가 유실되었거나 문서화가 미흡한 소프트웨어의 기능을 복원하고 유지 보수를 쉽게 한다.[6][7]
  • 보안 강화: 소프트웨어 취약점을 분석하고, 멀웨어 공격을 방어하는 등 보안을 강화한다.[10]
  • 불법 복제 방지: 소프트웨어 불법 복제를 막고, 저작권을 보호한다.[10]
  • 학술 연구: 소프트웨어 개발 기술을 연구하고, 새로운 기술 개발에 기여한다.
  • 멀웨어 분석: 멀웨어의 작동 원리를 분석하여 대응책을 마련하고 피해를 예방한다.[10]


이러한 목적 외에도 경쟁사 분석,[8] 클린 룸 설계를 통한 저작권 침해 방지,[20] 임베디드 시스템의 사용자 지정, 크래킹 등 다양한 목적으로 활용된다.

역공학은 컴퓨터 바이러스 제작자가 바이러스를 개조해 재배포하거나,[52] DoS 공격처럼 악의적인 목적으로 사용될 수도 있다. 그러나 멀웨어 위험성 분석과 같은 보안 강화에도 활용된다.

2. 3. 군사적 목적

역공학은 다른 국가의 기술, 장치 또는 정보를 복제하는 데 사용되는데, 이는 정규군이 현장에서 획득하거나 정보 작전을 통해 얻어지는 경우가 많다. 특히 제2차 세계 대전냉전 시대에 자주 사용되었다.[6]

제2차 세계 대전 이후의 대표적인 사례는 다음과 같다:

사례내용
제리 캔제2차 세계 대전 당시 영국군과 미군은 독일군의 우수한 휘발유 통 디자인을 확인하고 역공학을 통해 복제하여 "제리 캔"으로 널리 사용하였다.
나카지마 G5N1939년, 미국 더글러스 항공기 회사(Douglas Aircraft Company)는 일본 제국 해군의 비밀 전선 역할을 한 임페리얼 재패니즈 항공(Imperial Japanese Airways)에 DC-4E 여객기 프로토타입을 판매했다. 일본 항공 산업은 장거리 중량 항공기에 대한 경험이 부족했기에, DC-4E는 나카지마 항공기 회사(Nakajima Aircraft Company)로 이전되어 분해 및 연구되었다. 일본 언론은 G5N의 날개, 엔진 및 착륙 장치는 DC-4E에서 직접 복사되었다고 보도했다.[35][36][37]
판저슈렉독일군은 제2차 세계 대전 중 미국 바주카포를 노획하여 역공학을 통해 더 큰 판저슈렉을 개발하였다.
투폴레프 Tu-41944년, 일본 상공에서 임무를 수행하던 3대의 미국 B-29 폭격기가 소련에 불시착했다. 소련은 B-29를 복사하여 3년 만에 거의 완벽한 복제품인 Tu-4를 개발했다.[38]
SCR-584 레이더제2차 세계 대전 이후 소련이 복제했으며, СЦР-584, Бинокль-Д.로 알려져 있다.
V-2 로켓전쟁 말기 서방 연합군이 V-2 및 관련 기술 문서를 노획했다. 미국은 페이퍼클립 작전을 통해 역공학에 집중하여 PGM-11 레드스톤 로켓을 개발했다.[39] 소련은 노획한 독일 기술자를 통해 기술 문서와 계획을 복제하고, 노획한 하드웨어를 사용하여 로켓의 복제품인 R-1을 만들었다. 이는 소련 로켓 프로그램의 시작이었고, R-7우주 경쟁으로 이어졌다.
K-13/R-3S 미사일
(NATO 지정 명칭 AA-2 아톨)
1958년 9월, AIM-9 사이드와인더의 소련 역공학 복제품이다. 대만(중화민국 공군,ROCAF) AIM-9B가 중국 인민해방군 미그-17을 명중시켰지만 폭발하지 않고 기체에 박힌 채로 귀환한 것을 계기로 개발되었다.[40]
투판 미사일1975년 5월, 이란과 휴즈 미사일 시스템 간의 BGM-71 TOW 및 매버릭 미사일 공동 생산 협상이 중단되고 1979년 혁명으로 계획이 무산되었다. 이란은 미사일 역공학에 성공하여 자체 복제품인 투판을 생산하고 있다.
에니그마제2차 세계 대전 중, 폴란드 및 영국 암호 해독가는 노획한 독일 "에니그마" 메시지 암호화 기계의 약점을 연구했다. 그들의 작동은 "봄베"라는 전자기 장치에서 시뮬레이션되었는데, 이는 독일군이 보낸 암호화된 메시지 해독에 도움이 되었다.
무선 항법 시스템
(빔 전투)
제2차 세계 대전 중, 영국 과학자들은 루프트바페가 야간 유도 폭격 임무를 수행하기 위해 사용한 점점 더 정교해지는 일련의 무선 항법 시스템을 분석하고 무력화했다.



중국은 전투기에서 미사일, HMMWV 자동차에 이르기까지 MiG-15, 17, 19, 21(J-2, 5, 6, 7이 됨) 및 Su-33(J-15가 됨) 등 서방 및 러시아 하드웨어의 많은 사례를 역공학했다.[41]

군사적 목적의 역공학은 적의 최신 기술을 탈취하여 분석하고, 이를 통해 자국의 군사 기술을 발전시키거나 방어 체계를 구축하는 데 활용된다.[6] 또한 집적 회로와 같이 독점 시스템으로 설계되어 수명이 짧은 부품을 사용하는 레거시 시스템의 경우, 부품 생산 중단으로 유지보수가 어려워지면 역공학을 통해 기존 칩을 분석하고 재설계하여 시스템의 수명을 연장할 수 있다.

2. 4. 기타


  • '''게임''': 게임 및 게임 엔진의 기본 메커니즘, 데이터 구조 및 독점 프로토콜을 이해하여 개발자가 모드, 사용자 지정 도구를 만들거나 호환성을 향상시킬 수 있도록 한다.
  • '''인터페이스''': 한 시스템이 다른 시스템과 인터페이스해야 하고 두 시스템이 어떻게 협상할지 설정해야 할 때 사용될 수 있다. 이러한 요구 사항은 일반적으로 상호 운용성에 존재한다.
  • '''군사 또는 상업 스파이''': 적이나 경쟁사의 최신 연구에 대해 배우기 위해 프로토타입을 훔치거나 획득하여 해체하면 유사한 제품을 개발하거나 이에 대한 더 나은 대책을 개발할 수 있다.
  • '''노후화''': 집적 회로는 종종 독점 시스템으로 설계되고 불과 몇 년 만에 쓸모없게 되는 생산 라인에서 제작되는데, 해당 부품을 사용하는 시스템은 더 이상 부품이 생산되지 않아 유지 관리할 수 없는 경우, 기능을 새로운 기술에 통합하는 유일한 방법은 기존 칩을 역공학한 다음 얻은 이해를 지침으로 사용하여 최신 도구를 사용하여 이를 재설계하는 것이다.[6][7]
  • '''제품 보안 분석''': 구성 요소의 사양을 결정하고 비용을 추정하며 잠재적인 특허 침해를 식별하여 제품이 어떻게 작동하는지 조사한다. 또한 제품 보안 분석의 일부는 시스템 구성 요소의 설계를 분해하고 분석하여 민감한 데이터를 획득하는 것이다.[11]
  • '''경쟁 기술 정보''': 경쟁사가 실제로 무엇을 하고 있는지, 즉 경쟁사가 무엇을 하고 있다고 말하는지 이해하는 것이다.
  • '''비용 절감''': 전자 제품이 무엇을 할 수 있는지 알아내면 사용자는 별도의 제품을 구매할 필요가 없을 수 있다.
  • '''재활용''': 쓸모없어진 물건은 다른 유용한 방식으로 재사용된다.
  • '''디자인''': 생산 및 디자인 회사는 실용적인 수공예 기반 제조 공정에 리버스 엔지니어링을 적용하여, 3D 스캔, 3D 재모델링 및 재설계를 통해 "역사적인" 제조 컬렉션을 작업할 수 있다.[12]
  • '''유전자 네트워크 분석''': 생물학에서 유전자 조절 네트워크의 구조와 기능을 이해하는 데 사용된다. 유전자 조절 네트워크는 거의 모든 생물학적 행동을 조절하며, 세포가 생리적 과정과 외란에 대한 반응을 수행할 수 있도록 한다. 유전자 네트워크 역공학은 분자 생물학 및 데이터 과학 방법을 사용하며, 다음 여섯 가지 방법으로 나눌 수 있다.[43]




방법설명
공동 발현두 유전자가 유사한 발현 프로파일을 보일 경우 인과 관계를 단순히 추론할 수 없더라도 관련이 있을 수 있다는 개념에 기반한다.
서열 모티프특정 전사 인자 결합 도메인을 찾기 위해 유전자 프로모터를 분석한다.
염색질 면역 침강법(ChIP)선택된 전사 인자의 게놈 전체의 DNA 결합 도메인의 프로파일을 조사하여 하위 유전자 네트워크를 추론한다.
상동성유전자 네트워크 지식을 한 종에서 다른 종으로 이전한다.
문헌텍스트 마이닝 및 수동 연구를 구현하여 잠정적이거나 실험적으로 입증된 유전자 네트워크 연결을 식별한다.
전사 복합체전사 인자 간의 단백질-단백질 상호 작용에 대한 정보를 활용하여 유전자 네트워크의 개념을 전사 조절 복합체를 포함하도록 확장한다.



유전자 네트워크의 신뢰성은 유전적 교란 실험과 동적 모델링을 통해 테스트되며, 이는 하나의 네트워크 노드를 제거하면 네트워크의 나머지 노드의 기능에 예측 가능한 영향을 미친다는 원리에 기반한다.[44] 그 적용 분야는 식물 생리학적 메커니즘 이해[45]에서 항암 치료를 위한 새로운 표적 발굴[46]에 이르기까지 다양하다.

3. 대표적인 도구 (소프트웨어)

IDA Pro와 OllyDbg는 소프트웨어 리버스 엔지니어링에 사용되는 대표적인 도구이다. 이 도구들은 어셈블리 언어 분석을 용이하게 하고, 코드 변형 기능을 제공한다.[17]

4. 리버스 엔지니어링의 방법

일반적으로 공업 제품은 설계도나 사양서에 간략한 내용만 공개하고, 상세한 동작 원리는 공개하지 않는다. 컴퓨터 프로그램의 소스 코드 역시 오픈 소스는 공개되지만, 독점 소프트웨어는 비공개이므로 정보 보안상 위험이 있어도 비밀로 유지된다.[52]

이런 상황에서 비공개 정보를 획득하고 더 우수한 제품을 개발하기 위해, 기존 제품이나 소프트웨어를 역공학하여 기술을 분석, 조사, 확인하는 것은 필수적이다. 일본의 일부 기계 제조사는 수입품 역공학으로 기술을 습득했다. 예를 들어 한 미싱 제조사는 수입 미싱의 성능과 지원 부족으로 역공학을 통해 복제품을 만들고, 자체 설계한 공업용 자동 미싱 제조사로 성장했다.

4. 1. 기계 및 장치

컴퓨터 지원 설계(CAD)가 널리 사용되면서, 역공학은 기존 물리적 부품의 3차원 가상 모델을 만들어 CAM, CAE 등 다른 소프트웨어에서 사용할 수 있게 하는 방법이 되었다.[13] 역공학 과정은 객체를 측정하고 3차원 모델로 재구성하는 것을 포함한다. 물리적 객체는 3D 스캐닝 기술(예: CMM, 레이저 스캐너, 구조광 디지털라이저, 산업용 CT 스캔)을 사용하여 측정할 수 있다. 측정된 데이터는 보통 점 구름으로 표시되는데, 이것만으로는 위상수학정보와 설계 의도가 부족하다. 점 구름을 삼각형 면으로 이루어진 메시로 변환하면 위상수학적 정보를 복구할 수 있다. 역공학은 여기서 더 나아가, 간단한 해석적 표면(평면, 원통 등)과 NURBS 표면을 사용하여 경계 표현 CAD 모델을 생성하고 설계 의도를 복구하는 것을 목표로 한다. 이렇게 복구된 모델을 통해 설계를 수정하거나 제조 계획을 생성할 수 있다.[14]

하이브리드 모델링은 NURBS와 파라메트릭 모델링을 함께 사용하는 것을 말한다. 기하학적 표면과 자유형 표면을 조합하면 강력한 3D 모델링이 가능하다. 자유형 데이터 영역은 정확한 기하학적 표면과 결합하여 하이브리드 모델을 만들 수 있다. 예를 들어 실린더 헤드의 역공학에는 워터 재킷, 고정밀 가공 영역과 같은 자유형 주조 기능이 포함된다.

역공학은 기업에서 기존 물리적 형상을 디지털 제품 개발 환경으로 가져오거나, 자체 제품의 3D 기록을 만들거나, 경쟁 제품을 평가하는 데 사용된다. 제품의 작동 방식, 기능, 구성 요소를 분석하고, 비용을 추정하며, 잠재적인 특허 침해를 식별하는 데 사용된다.

가치 공학은 기업에서 비용 절감 기회를 찾기 위해 제품을 해체하고 분석하는 관련 활동이다.

제조 분야에서 리버스 엔지니어링은 제품의 초기 이미지를 구현하기 위해 제작된 점토 모델이나 이미 실물이 있는 제품 등의 형상 데이터를 측정하여 CAD 데이터를 생성하는 것이다. 3D CAD 및 접촉식, 비접촉식 3차원 형상 데이터 측정 장치가 발달함에 따라 이러한 방법이 빠르게 보급되고 있다. 3D CAD를 활용한 제품 사전 검토 시, CAD로 제작하기 어려운 디자인의 미묘한 변화가 반영된 제품 데이터나, 2D 도면만 있는 제품 데이터를 3D화하는 데 활용된다.

위 그림은 자동차 개발에서의 리버스 엔지니어링의 한 예시이다. 오른쪽 위 그림부터 차례대로 점토 모델, 비접촉식 카메라 촬영 방식의 3차원 측정 장치를 이용한 형상 데이터 측정, 측정 결과인 점군 데이터의 결합, 단면선 생성, 3D CAD화, 그리고 실제 차량이 된다(CAD와 실차 사이에는 큰 단계 차이가 있다).

4. 2. 인쇄 회로 기판 (PCB)

인쇄 회로 기판(PCB)의 역공학은 특정 회로 기판에 대한 제작 데이터를 다시 만드는 것을 포함한다. 이는 주로 설계를 식별하고 설계의 기능적 및 구조적 특성을 학습하기 위해 수행된다. 또한, 특히 이 설계 정보를 쉽게 사용할 수 없는 경우 제품 뒤에 있는 설계 원리를 발견할 수 있게 해준다.

구식이 된 PCB는 기계의 전원 공급 또는 기타 전자 부품과 같은 매우 중요한 기능을 수행할 때 특히 역공학의 대상이 된다. 이러한 오래된 부품을 역공학하면 중요한 작업을 수행하는 경우 PCB를 재구성할 수 있으며, 동일한 기능을 제공하는 대안을 찾거나 오래된 PCB를 업그레이드할 수 있다.[15]

PCB의 역공학은 대체로 동일한 일련의 단계를 따른다. 먼저 PCB를 그림으로 그리거나 스캔하거나 사진을 찍어 이미지를 만든다. 그런 다음 이러한 이미지를 적절한 역공학 소프트웨어로 전송하여 새 PCB에 대한 기본적인 설계를 생성한다. 적절한 역공학에 필요한 이러한 이미지의 품질은 PCB 자체의 복잡성에 비례한다. 더 복잡한 PCB는 어두운 배경에서 조명이 잘 된 사진이 필요하고, 상당히 간단한 PCB는 기본적인 치수만으로도 간단하게 다시 만들 수 있다. PCB의 각 레이어는 초기 설계와 최대한 가깝게 최종 설계를 생성하기 위해 소프트웨어에서 신중하게 재현된다. 그런 다음, 적절한 도구를 사용하여 회로에 대한 회로도가 최종적으로 생성된다.[16]

4. 3. 소프트웨어

전기 전자 기술자 협회(IEEE)는 1990년에 소프트웨어 역공학을 시스템 구성 요소와 상호 관계를 식별하고, 다른 형태나 더 높은 수준의 추상화로 시스템을 표현하는 과정으로 정의했다.[17] 역공학은 소프트웨어 시스템을 수정하지 않는 검토 과정이며, 재공학 또는 재구조화와는 다르다. 역공학은 제품 주기의 모든 단계에서 수행될 수 있다.[17]

역공학은 재문서화와 설계 복구라는 두 가지 구성 요소로 이루어진다. 재문서화는 코드를 이해하기 쉽게 새로운 표현으로 만드는 것이고, 설계 복구는 제품에 대한 지식이나 경험을 바탕으로 기능을 이해하는 것이다.[17] 이는 개발 주기를 역순으로 진행하는 것으로 볼 수 있다.[18] 프로그램 이해라고도 불린다.[7] 역공학 워킹 컨퍼런스(WCRE)는 역공학 기술을 탐구하고 확장하기 위해 매년 개최된다.[10][19] 컴퓨터 지원 소프트웨어 공학(CASE)과 자동화된 코드 생성은 역공학 분야에 크게 기여했다.[10]

소프트웨어 무단 변경 방지 기술인 난독화는 독점 소프트웨어 및 소프트웨어 기반 시스템의 역공학 및 재공학을 방지하는 데 사용된다.

역공학에는 주로 두 가지 유형이 있다. 첫 번째는 소스 코드가 있지만, 문서화가 제대로 되지 않았거나 유효하지 않은 경우 프로그램의 상위 수준 측면을 발견하는 것이다. 두 번째는 소스 코드가 없는 경우, 소프트웨어의 가능한 소스 코드를 찾으려는 노력을 의미하며, 대부분의 사람들에게 더 익숙하다. 클린 룸 설계 기술을 사용하면 저작권 침해를 방지할 수 있다.

블랙 박스 테스트는 소프트웨어 공학에서 역공학과 많은 공통점을 가진다. 테스터는 일반적으로 API를 가지고 있지만, 제품 외부에서 공격하여 버그와 문서화되지 않은 기능을 찾는다.[20]

역공학의 다른 목적에는 보안 감사, 복사 방지 제거 ("크래킹"), 접근 제한 우회, 임베디드 시스템 사용자 지정, 추가 기능 활성화, 호기심 충족 등이 있다.
바이너리 역공학바이너리 역공학은 소프트웨어의 소스 코드를 사용할 수 없을 때 수행된다.[10] 이 과정은 ''역 코드 엔지니어링''(reverse code engineering), 또는 RCE라고도 불린다.[21] 자바 플랫폼의 바이너리 디컴파일은 Jad를 사용하여 수행할 수 있다. 역공학의 유명한 사례 중 하나는 PC BIOS의 최초 비-IBM 구현으로, 이는 IBM PC 호환 산업을 시작했다. 소프트웨어의 역공학은 미국에서 저작권법의 공정 사용 예외에 의해 보호받는다.[22] Samba 소프트웨어는 Microsoft Windows 시스템을 실행하지 않는 시스템이 Windows 시스템과 파일을 공유할 수 있도록 Windows 파일 공유 작동 방식에 대한 미공개 정보를 역공학해야 했기 때문에 소프트웨어 역공학의 전형적인 예이다.[23] Wine 프로젝트는 Windows API에 대해, OpenOffice.org는 Microsoft Office 파일 형식에 대해 동일한 작업을 수행한다. ReactOS 프로젝트는 Windows 운영 체제와의 바이너리 (ABI 및 API) 호환성을 제공하여 Windows용 소프트웨어 및 드라이버가 클린룸 역공학된 자유 소프트웨어 (GPL)에서 실행될 수 있도록 한다. WindowsSCOPE는 실행 중인 프로세스의 바이너리 수준, 그래픽 역공학을 포함하여 Windows 시스템의 라이브 메모리의 전체 내용을 역공학할 수 있게 한다.

1987년에 벨 연구소는 Mac OS System 4.1을 역공학하여 자체 RISC 머신에서 실행할 수 있게 했다.[24]
소프트웨어 분류소프트웨어 분류는 소프트웨어 샘플 간의 코드 관계를 감지하기 위해 서로 다른 소프트웨어 바이너리 간의 유사성을 식별하는 과정이다. 여러 가지 이유(취약점 감지를 위한 패치 분석 및 저작권 침해 등)로 수동으로 수행되었지만, 이제는 많은 수의 샘플에 대해 다소 자동으로 수행할 수 있다.

이 방법은 주로 길고 철저한 역공학 작업(복잡한 알고리즘 또는 대규모 소프트웨어의 전체 분석)에 사용되고 있다. 일반적으로 통계적 분류는 어려운 문제로 간주되며, 이는 소프트웨어 분류에도 해당하므로 이 작업을 잘 처리하는 솔루션/도구는 거의 없다.
소스 코드 역공학많은 UML 도구는 소스 코드를 가져와 분석하여 UML 다이어그램을 생성하는 과정을 "역공학"이라고 부른다. UML 도구 목록을 참조.

지식 발견 메타모델(KDM)은 프로그래밍 언어 구조와 상호 관계의 중간 표현을 위한 온톨로지를 제공하는 표준이다. KDM은 소스, 바이너리 및 바이트 코드의 추출 및 분석을 제공할 수 있는 도구 및 분석 환경 개발과 함께 업계에서 자리를 잡기 시작했다. 소스 코드 분석을 위해 KDM의 세분화된 표준 아키텍처는 소프트웨어 시스템 흐름, 아키텍처 및 비즈니스 레이어 지식의 추출을 가능하게 한다. 이 표준은 공통 데이터 형식(XMI)을 사용하여 상세 분석 또는 파생 분석을 위해 시스템 지식의 다양한 레이어를 상관 관계를 분석할 수 있도록 한다. KDM은 UML, BPMN, RDF 및 기타 표준과 호환되어 다른 환경으로의 마이그레이션을 가능하게 하며, 소프트웨어 시스템 변환 및 엔터프라이즈 비즈니스 레이어 분석과 같은 노력에 시스템 지식을 활용할 수 있다.
멀웨어 분석컴퓨터 바이러스 원작자 외의 인물이 컴퓨터 바이러스를 입수한 경우, 리버스 엔지니어링을 통해 소스 코드를 입수하여 새로운 기능을 추가하거나, 특정 기업이나 조직을 공격하도록 개조하여 재배포하는 사례가 끊이지 않는다(개조된 바이러스는 변종이라고 불린다).

컴퓨터 바이러스나 악의적인 조크 프로그램처럼, 저작권자가 밝힐 가능성이 없는 프로그램이 저작권 등으로 보호되는지 여부는 법적으로 논의될 수 있다.

마이크로소프트 등의 서버를 DoS 공격하는 MyDoom 바이러스는, 마이크로소프트 측이 현상금을 걸어 범인을 체포했지만, 이후에도 해당 바이러스의 변종 발생이 이어졌다. 2004년 7월 26일에는 MyDoom.O에 감염된 컴퓨터에서 검색 엔진으로 일제히 검색 요청이 쇄도하여, 일시적으로 구글(Google) 등의 주요 검색 사이트가 응답하지 않는 사건이 발생했다. MyDoom.O의 제작자는, 우연히 입수한 컴퓨터 바이러스 MyDoom에 대해, 리버스 엔지니어링을 수행하여 소스 코드를 입수·개조하여, 재배포했다고 여겨진다.

시판 소프트웨어 제품을 리버스 엔지니어링으로 분석하여, 라이선스 키와 동글(하드웨어프로텍트) 없이 작동하도록 하는 프로그램을 제작·배포하는 인물이, 불법적인 부정 복제 소프트웨어의 만연을 조장하는 사례도 있다.

한편, 멀웨어를 분석하여 위험성을 분석하는 행위 또한 리버스 엔지니어링이다.

4. 4. 프로토콜

프로토콜은 메시지 형식과 메시지 교환 방식을 설명하는 규칙 집합이다. 즉, 프로토콜은 상태 기계이다. 따라서 프로토콜 역공학 문제는 메시지 형식과 상태 기계 역공학의 두 가지 하위 문제로 나눌 수 있다.

메시지 형식은 전통적으로 프로토콜 구현이 메시지를 처리하는 방식을 분석하는 지루한 수동 프로세스를 통해 역공학되었다. 그러나 최근 연구에서는 여러 자동 솔루션을 제안했다.[25][26][27] 일반적으로 자동 접근 방식은 다양한 클러스터링 분석을 사용하여 관찰된 메시지를 클러스터로 묶거나, 메시지 처리를 추적하여 프로토콜 구현을 에뮬레이션한다.

프로토콜 상태 기계의 역공학에 대한 연구는 상대적으로 적다. 일반적으로 프로토콜 상태 기계는 통신을 수동적으로 관찰하고 관찰된 모든 메시지 시퀀스를 수용하는 가장 일반적인 상태 기계를 구축하려는 오프라인 학습 프로세스를 통해 학습하거나, 메시지의 프로빙 시퀀스를 대화형으로 생성하고 이러한 프로빙 시퀀스에 대한 응답을 수신하는 온라인 학습을 통해 학습할 수 있다. 일반적으로 소규모 상태 기계의 오프라인 학습은 NP-완전인 것으로 알려져 있지만,[28] 온라인 학습은 다항 시간 내에 수행할 수 있다.[29] 자동 오프라인 접근 방식은 Comparetti et al.에 의해 시연되었으며,[27] 온라인 접근 방식은 Cho et al.에 의해 시연되었다.[30]

4. 5. 스마트 카드

공격자는 화학 물질을 사용하여 스마트 카드의 층을 하나씩 제거하고 주사 전자 현미경(SEM)으로 사진을 찍는다.[32][33] 이 기술은 스마트 카드의 전체 하드웨어 및 소프트웨어 부분을 드러낼 수 있다. 공격자에게 가장 큰 문제는 모든 것이 어떻게 작동하는지 알아내기 위해 모든 것을 올바른 순서로 정리하는 것이다. 카드의 제작자는 버스 스크램블링과 같이 메모리 위치를 섞어 키와 작업을 숨기려고 한다.[32][33]

어떤 경우에는 스마트 카드가 작동하는 동안 프로브를 연결하여 전압을 측정하는 것도 가능하다. 카드의 제작자는 해당 공격을 감지하고 방지하기 위해 센서를 사용한다.[34] 이 공격은 많은 노력과 일반적으로 대형 칩 제조업체만 사용할 수 있는 특수 장비에 대한 상당한 투자를 요구하기 때문에 흔하지 않다. 또한 그림자 계정과 같은 다른 보안 기술이 자주 사용되므로 이 공격의 이점은 낮다.

전체 역공학은 몇 가지 주요 단계로 진행된다.

단계설명
이미지 연결SEM으로 이미지를 찍은 후, 각 레이어를 단일 샷으로 캡처할 수 없기 때문에 이미지를 함께 연결한다. SEM은 회로 영역을 훑어 전체 레이어를 커버하기 위해 수백 장의 이미지를 찍어야 한다. 이미지 스티칭은 여러 백 장의 사진을 입력으로 받아 전체 레이어의 적절하게 겹쳐진 단일 사진을 출력한다.
이미지 정렬에칭 후 샘플을 SEM에 대해 매번 정확히 같은 위치에 놓을 수 없으므로 스티칭된 레이어를 정렬해야 한다. 일반적으로 세 개의 해당 점을 선택하고 이를 기반으로 변환을 적용한다.
회로 구조 추출정렬된 스티칭된 이미지를 분할하여 중요한 회로를 강조 표시하고 흥미 없는 배경 및 절연 재료와 분리한다.
네트리스트 재구성와이어를 한 레이어에서 다음 레이어로 추적하고 회로의 모든 정보를 포함하는 회로의 네트리스트를 재구성한다.


4. 6. 유전자 네트워크

유전자 조절 네트워크는 거의 모든 생물학적 행동을 조절하며, 세포가 생리적 과정과 외란에 대한 반응을 수행할 수 있도록 한다. 따라서 유전자 네트워크의 구조와 동적 행동을 이해하는 것은 시스템 생물학의 가장 중요한 과제 중 하나이며, 기초 연구를 넘어선 여러 응용 분야에서 즉각적인 실질적 파급 효과를 갖는다.[42]

유전자 조절 네트워크를 역공학하는 데는 분자 생물학 및 데이터 과학 방법을 사용하는 여러 가지 방법이 있다. 일반적으로 다음 여섯 가지 클래스로 나눌 수 있다:[43]

  • 공동 발현 방법은 두 유전자가 유사한 발현 프로파일을 보일 경우 인과 관계를 단순히 추론할 수 없더라도 관련이 있을 수 있다는 개념에 기반한다.
  • 서열 모티프 방법은 특정 전사 인자 결합 도메인을 찾기 위해 유전자 프로모터를 분석한다. 전사 인자가 특정 유전자의 프로모터에 결합할 것으로 예측되면 조절 연결을 가설 설정할 수 있다.
  • 염색질 면역 침강법 (ChIP) 방법은 선택된 전사 인자의 게놈 전체의 DNA 결합 도메인의 프로파일을 조사하여 하위 유전자 네트워크를 추론한다.
  • 상동성 방법은 유전자 네트워크 지식을 한 종에서 다른 종으로 이전한다.
  • 문헌 방법은 텍스트 마이닝 및 수동 연구를 구현하여 잠정적이거나 실험적으로 입증된 유전자 네트워크 연결을 식별한다.
  • 전사 복합체 방법은 전사 인자 간의 단백질-단백질 상호 작용에 대한 정보를 활용하여 유전자 네트워크의 개념을 전사 조절 복합체를 포함하도록 확장한다.


종종 유전자 네트워크의 신뢰성은 유전적 교란 실험과 동적 모델링을 통해 테스트되는데, 이는 하나의 네트워크 노드를 제거하면 네트워크의 나머지 노드의 기능에 예측 가능한 영향을 미친다는 원리에 기반한다.[44]

5. 지적 재산권 및 법적 문제

지적 재산권 개념이 널리 퍼지기 전에는 역공학에 의한 복제품이 공공연히 판매되었지만, 점차 소송이 제기되면서 일부 설계를 변경하는 것으로 회피하는 수단이 취해졌다. 전기 제품이나 전자 기기에서는, 작동상 필요 없는 전자 부품을 의도적으로 부착하거나, 더미 파라미터를 설정하는 등, 설계를 통째로 복사한 것이 제품화되었을 때 쉽게 식별할 수 있도록 하는 설계가 의도적으로 포함되기도 한다.

산업 제품을 분해하여 내부 구조와 작동 원리를 탐구하는 리버스 엔지니어링 자체는 원칙적으로 "합법" 행위이며, 비밀 유지 계약 없이 합법적으로 입수할 수 있는 제품·문헌·정보에 대해 리버스 엔지니어링을 하는 데에는 문제가 없다. 다만, 해석 행위를 통해 얻은 내용 그 자체에 대한 정보를 바탕으로, 구현을 그대로 모방한 클론을 만들어 상업 제품으로 만드는 데에는 문제가 있다. 따라서, 해석 부문과 개발 부문을 나누는 클린룸 방식에 의해, 해석 결과의 "외부로부터의 정보"만으로 재구현을 한다.

소프트웨어는 저작권의 보호를 받는다 (일본의 저작권법에서는 제10조 1항 9호). 미국판례상으로는 리버스 엔지니어링은 공정 이용의 보호 범위에 속한다고 여겨지지만[53], 일본 등에는 공정 이용이 없다.

일본에서는 리버스 엔지니어링이 "불법"이라고 주장하는 측도 있었지만, ACCS가 멀웨어 해석의 필요성을 인식하면서, 안티바이러스 소프트웨어 개발을 위한 컴퓨터 바이러스 해석 목적의 리버스 엔지니어링도 불법이 아니라는 견해를 보이게 되었다. 현재 일본법에서의 취급은, 저작권의 권리 제한 중 하나로서 리버스 엔지니어링의 적법화가 검토되어 답신이 나온 단계이다.[54]

특히, 프로프라이에터리 소프트웨어에 관해서는, 법이 아닌 라이선스 또는 계약에 따라, 역 어셈블 등의 리버스 엔지니어링으로 소스 코드 추출 등을 금지한다는 내용이 적혀 있는 경우가 대부분이지만, 그러한 조항은 독점 금지법의 관점에서도 문제가 있다고도 말해진다.[55]

버전 관리 시스템 BitKeeper는 개발 회사 호의로 오픈 소스자유 소프트웨어 프로젝트에서 무상 이용이 가능했지만, 기능 제약 등으로 커뮤니티에서 불만이 높았다. 앤드루 트리젤이 무상 버전에 없는 기능을 자유 소프트웨어로 개발한 것이 발각되어 무상 버전 제공이 중단되었고, 이후 오픈 소스 시스템인 Git이 개발되어 큰 점유율을 얻게 되었다.

컴퓨터 바이러스 원작자 외 인물이 컴퓨터 바이러스를 입수하여 리버스 엔지니어링으로 소스 코드를 얻어 기능을 추가하거나, 특정 기업이나 조직을 공격하도록 개조하여 재배포하는 사례가 끊이지 않는다. 또한, 컴퓨터 바이러스나 악의적인 조크 프로그램처럼, 저작권자가 밝힐 가능성이 없는 프로그램이 저작권 등으로 보호되는지 여부는 법적으로 논의될 수 있다.

마이크로소프트 서버를 DoS 공격하는 MyDoom 바이러스는, 마이크로소프트 측이 현상금을 걸어 2004년 5월 8일까지 범인을 체포했지만, 이후에도 변종 발생이 이어졌다. 같은 해 7월 26일에는 MyDoom.O에 감염된 컴퓨터에서 검색 엔진으로 일제히 검색 요청이 쇄도하여, 구글(Google) 등의 주요 검색 사이트가 일시적으로 응답하지 않는 사건이 발생했다. MyDoom.O 제작자는, 입수한 컴퓨터 바이러스 MyDoom을 리버스 엔지니어링하여 소스 코드를 입수·개조하여 재배포했다고 여겨진다.

이 외에도, 시판 소프트웨어 제품을 리버스 엔지니어링으로 분석하여, 라이선스 키 및 동글 (하드웨어프로텍트) 없이 작동하도록 하는 프로그램을 제작·배포하여 불법 복제 소프트웨어 만연을 조장하는 사례가 있다. 한편, 멀웨어를 분석하여 위험성을 분석하는 행위 또한 리버스 엔지니어링이다.

5. 1. 한국

과거 한국에서는 이진 코드로 이루어진 실행 파일의 리버스 엔지니어링을 금지하는 법 조항이 있었다.[54] 그러나 실행 결과로 만들어진 파일이나 파일 형식에 대한 리버스 엔지니어링은 금지 대상이 아니었다. 현재 이 조항은 삭제되었다.

산업 제품의 경우, 비밀 유지 계약 없이 합법적으로 입수한 제품에 대한 리버스 엔지니어링은 원칙적으로 합법이다. 그러나 리버스 엔지니어링으로 얻은 정보를 바탕으로 구현을 그대로 모방한 제품을 상업적으로 만드는 것은 문제가 된다. 따라서 해석 부문과 개발 부문을 분리하는 클린룸 설계 방식을 통해 재구현하는 방법을 사용한다.

소프트웨어는 저작권의 보호를 받으며, 미국 판례상으로는 리버스 엔지니어링이 공정 이용에 해당한다고 인정되지만,[53] 한국에는 공정 이용과 같은 명확한 규정이 없다. 최종 사용자 사용권 계약(EULA)에서 리버스 엔지니어링을 금지하는 경우가 많다.

컴퓨터 소프트웨어 저작권 협회(ACCS) 등 일부 단체는 리버스 엔지니어링을 불법으로 간주하기도 했으나, 최근에는 멀웨어 분석 등 필요한 경우를 인정하는 추세이다. 현재 저작권법 개정을 통해 리버스 엔지니어링의 적법성 여부를 명확히 하려는 논의가 진행 중이다.[54]

5. 2. 미국

미국에서는 영업 비밀로 보호되는 경우를 제외하고, 합법적으로 획득한 제품이나 프로세스에 대한 리버스 엔지니어링은 허용된다.[47] 저작권법의 공정 사용 조항에 따라 소프트웨어 리버스 엔지니어링이 보호받을 수 있다.[53] 디지털 밀레니엄 저작권법(DMCA) 섹션 103(f) ([https://www.law.cornell.edu/uscode/text/17/1201- 17 U.S.C. § 1201 (f)])에 따르면, 프로그램의 합법적인 소유자는 "상호 운용성"을 달성하기 위해 필요한 경우, 해당 프로그램의 보호를 역공학하고 우회할 수 있다. 여기서 상호 운용성은 다른 장치 및 프로그램과의 상호 작용, 사용, 유용한 방식으로 데이터를 주고받을 수 있는 광범위한 개념을 포함한다. 이렇게 얻은 지식을 상호 운용성 목적으로 공유하고 사용할 수 있도록 하는 제한적인 예외가 존재한다.

5. 3. 유럽 연합 (EU)

컴퓨터 프로그램 지침에 따라, 독립적으로 생성된 프로그램과의 상호 운용성을 확보하기 위한 역공학은 허용된다.[53]

6. 리버스 엔지니어링의 예시


  • 제리캔: 제2차 세계 대전 중 독일에서 개발되어 세계 각국에서 사용하게 된 연료 용기로, 영국군과 미군이 이를 역공학하여 사용하였다.
  • 국철 C57형 증기 기관차 1호기: 도면이 유실되어 탄수차의 설계도를 실제 기차에서 역공학하여 작성하였다.
  • 투판: 이란이 미국의 TOW 대전차 미사일을 모방하여 만든 대전차 미사일이다.
  • Soviet locomotive class TE1|소련 운수성 TE1형영어: 제2차 세계 대전 중 렌드리스법으로 미국이 대여한 알코 RSD-1형 디젤 기관차를 소련이 복제한 것이다.
  • 코우살: 이란이 F-5E/F 전투기를 모방한 것으로 보이는 국산 전투기이다.
  • 미야마 (항공기): 더글러스 DC-4E 여객기를 역공학하여 개발한 일본의 항공기이다.
  • 소련의 IMZ・우랄, 우크라이나의 Dnepr (motorcycle)|드네프르영어, 중국의 창장 CJ-750: 제2차 세계 대전 당시 독일군이 사용하던 BMW R 71|BMW R 71de 오토바이를 복제한 것이다.

참조

[1] 웹사이트 What is Reverse-engineering? How Does It Work https://www.techtarg[...] 2022-07-27
[2] 웹사이트 Reverse Engineering https://ethics.csc.n[...] 2022-07-27
[3] 웹사이트 Un-building blocks: a model of reverse engineering and applicable heuristics https://core.ac.uk/d[...] 2023-06-04
[4] 웹사이트 How Does Reverse Engineering Work? https://insights.glo[...] IEEE Global Spec 2018-02-26
[5] 간행물 Reverse engineering and identification in systems biology: strategies, perspectives and challenges 2014-02-06
[6] 간행물 Reverse Engineering and Design Recovery: A Taxonomy
[7] 문서 A Survey of Reverse Engineering and Program Comprehension 1996-04-19
[8] 서적 Reverse Engineering: An Industrial Perspective Springer Science & Business Media
[9] 서적 Interfaces on Trial 2.0 MIT Press
[10] 서적 Reversing: secrets of reverse engineering John Wiley & Sons
[11] 문서 Internet Engineering Task Force RFC 2828 Internet Security Glossary
[12] 서적 Advances in Manufacturing, Production Management and Process Control
[13] 간행물 Reverse engineering of geometric models–an introduction
[14] 웹사이트 Reverse Engineering http://www.physicald[...]
[15] 웹사이트 Reverse Engineering a Printed Circuit Board https://www.electron[...] 2024-02-01
[16] 웹사이트 Reverse Engineering a Printed Circuit Board https://www.electron[...] 2024-02-01
[17] 간행물 Reverse engineering and design recovery: A taxonomy http://win.ua.ac.be/[...] 2012-07-02
[18] 서적 Software Reuse and Reverse Engineering in Practice Chapman & Hall
[19] 웹사이트 Working Conference on Reverse Engineering (WCRE) http://dblp.uni-trie[...] Computer Science bibliography 2018-02-22
[20] 서적 Reverse Engineering and Testing of Black-Box Software Components: by Grammatical Inference techniques LAP LAMBERT Academic Publishing
[21] 서적 Security Warrior http://www.oreilly.c[...] O'Reilly 2006-05-25
[22] 간행물 The Law and Economics of Reverse Engineering http://www.yalelawjo[...] 2011-10-31
[23] 웹사이트 Samba: An Introduction http://www.samba.org[...] 2009-05-07
[24] 서적 Counterterrorism and Cybersecurity: Total Information Awareness Springer Science+Business Media 2013
[25] 문서 Discoverer: Automatic protocol reverse engineering from network traces
[26] 문서 Tupni: Automatic reverse engineering of input formats
[27] 문서 Prospex: Protocol specification extraction
[28] 간행물 Complexity of automaton identification from given data
[29] 간행물 Learning regular sets from queries and counterexamples
[30] 문서 Inference and Analysis of Formal Models of Botnet Command and Control Protocols http://www.domagoj-b[...]
[31] 문서 Polyglot: automatic extraction of protocol message format using dynamic binary analysis http://bitblaze.cs.b[...]
[32] 문서 Smart Card Handbook
[33] 문서 Smart cards as methods for payment http://www.crypto.ru[...]
[34] 웹사이트 Protecting & Exploiting Intellectual Property in Electronics http://www.jenkins.e[...]
[35] 서적 McDonnell Douglas Aircraft since 1920 Naval Institute Press 1988
[36] 간행물 Big Iron, big engines & bigger headaches: Building the first experimental strategic bombers 1999-11
[37] 서적 -World War II Airplanes: Volume 2 Rand McNally & Company 1978
[38] 서적 Tupolev Tu-4: Soviet Superfortress Midland 2002
[39] 웹사이트 Redstone rocket http://www.centennia[...] centennialofflight.net 2010-04-27
[40] 서적 The Chinese Air Force: Evolving Concepts, Roles, and Capabilities National Defense University Press
[41] 간행물 Technology & Innovation in China: A Case Study of Single Crystal Superalloy Development for Aircraft Turbine Blades, R4–11 http://isssp.in/wp-c[...] ISSSP National Institute of Advanced Studies, Bangalore 2011
[42] 간행물 Gene network reverse engineering: The Next Generation
[43] 간행물 Gene regulatory network inference resources: A practical overview
[44] 간행물 Reverse engineering gene networks: Integrating genetic perturbations with dynamical modeling
[45] 간행물 Reverse Engineering: A Key Component of Systems Biology to Unravel Global Abiotic Stress Cross-Talk
[46] 간행물 Reverse-engineering human regulatory networks
[47] 웹사이트 Trade Secrets 101 https://www.asme.org[...] ASME 2011-03
[48] 웹사이트 Baystate v. Bowers Discussion http://www.utsystem.[...] Utsystem.edu 2011-05-29
[49] 뉴스 Contract case could hurt reverse engineering | Developer World http://www.infoworld[...] InfoWorld 2003-06-26
[50] CELEX
[51] CELEX
[52] 문서 再配布などを禁じて、契約先にのみ公開する、といった製品は存在する。
[53] 문서 SONY COMPUTER ENTERTAINMENT v. CONNECTIX CORP., 203 F.3d 596 (9th Cir. 2000)
[54] 웹사이트 権利制限の一般規定に関する中間まとめ https://public-comme[...] 2022-02-23
[55] 문서 ソフトウェアライセンス契約等に関する独占禁止法上の考え方 ―ソフトウェアと独占禁止法に関する研究会中間報告書― http://www.meti.go.j[...] 平成14年3月20日



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com