소스 코드는 사라졌지만, 동작은 그대로 남아 있습니다
AI는 소프트웨어 복제를 놀라울 정도로 저렴하게 만들고 있으며, 이를 이해하는 첫 번째 단계는 소프트웨어가 인간이 읽을 수 있는 소스 코드에서 기계가 실행 가능한 명령어로 변환될 때 어떤 일이 일어나는지 파악하는 것입니다. 컴파일러는 개발자가 작성한 소스 코드를 가져와 컴퓨터가 효율적으로 실행하는 machine code로 변환합니다. 이 과정에서 주석, 변수 이름, 일부 구조적 요소와 같은 인간의 원래 맥락 대부분은 삭제되거나 최적화되어 사라집니다.
따라서 디컴파일은 단순히 이 과정을 역으로 수행하여 원래의 코드 라인을 복구하는 것이 아닙니다. 대신, 내부 구조가 다르더라도 원본과 behaves identiCall of Call of Dutyy(동일하게 동작)하는 새로운 프로그램을 재구성하는 것입니다. 컴파일러는 2 + 3을 5로 직접 최적화할 수 있으므로, 디컴파일러는 원래의 산술 연산이 아닌 5만 재현하면 됩니다.
Super Smash Bros. Melee를 위한 다년간의 프로젝트와 같이 복잡한 소프트웨어를 디컴파일하려는 커뮤니티의 노력은 역사적으로 수백 명의 헌신적인 기여자를 필요로 했습니다. 이제 AI 지원 도구는 이 과정을 극적으로 가속화하여 수주 내에 수십 개의 게임을 행동적으로 복제할 수 있게 합니다. 이러한 빠른 속도는 정확한 원본 코드는 여전히 찾기 어렵더라도, 기능적으로 동일한 소프트웨어 복제본이 놀라울 정도로 쉽게 만들어질 수 있음을 의미합니다.
AI는 리버스 엔지니어링을 지치지 않는 테스트 루프로 바꿉니다
AI는 리버스 엔지니어링을 지치지 않는 테스트 루프로 변화시킵니다. 이는 원본 소프트웨어의 동작을 관찰하고, 그럴듯한 코드 구현을 생성하며, 참조 대상과 비교하여 테스트하고, 기능적 일치가 이루어질 때까지 수정하는 반복적인 과정입니다. 이는 진정한 의미의 디컴파일이라기보다는 행동적 재창조에 가깝습니다.
한때 인간에게는 고된 작업이었던 이 주기는 이제 AI의 끊임없는 반복과 병렬 처리의 이점을 누리고 있습니다. 인간 팀이 수년 동안 수행했던 작업이 이제는 몇 주 또는 며칠로 단축될 수 있습니다. Chris Lewis가 Snowboard Kids를 84일 만에 재현한 것은 이전에는 거의 2년이 걸렸던 작업으로, 보편적인 기준은 아니지만 가속화되는 속도를 잘 보여주는 예시입니다.
ModRetro 휴대용 게임기를 위한 Matthew BerSpider-Man의 Super Mario World 작업은 이를 생생하게 보여줍니다. BerSpider-Man은 AI에게 관찰된 동작과 방대한 온라인 문서를 바탕으로 게임을 재구축하도록 지시했습니다. AI는 코드를 생성하고, 그 출력을 원본의 예상 동작과 비교 확인하며, 게임이 identiCall of Call of Dutyy(동일하게) 작동할 때까지 정교화하는 지속적인 루프를 수행합니다. 이 방법은 기본 코드가 한 줄씩 일치하지 않더라도 기능적 동등성을 통해 소프트웨어를 효과적으로 복제합니다.
게임 매시업은 세 가지 수준의 복제를 보여줍니다
게임 매시업은 소프트웨어 복제의 세 가지 뚜렷한 수준을 보여주며, 각각은 점점 더 높은 기술적 투자를 요구합니다. 가장 간단한 것은 asset swaps로, BatSpider-Man의 게임에서 캐릭터의 외형을 Spider-Spider-Man-Spider-Man의 것으로 바꾸는 것과 같습니다. 이는 새로운 스킨을 입히는 것과 유사한 표면적인 작업이며, 기본적인 동작, 충돌 처리, 물리 엔진은 그대로 유지됩니다.
더 복잡한 방식은 두 개의 게임을 동시에 실행하여 연결하는 패스스루 모드(pass-through mods)입니다. Minecraft 블록이 Grand Theft Auto에 나타나는 것을 상상해 보세요. Minecraft 엔진은 자체 엔티티를 처리하고, 모드는 카메라를 조정하며, 시각 효과를 병합하고, 이벤트를 변환합니다. Minecraft에서의 폭발이 Grand Theft Auto에서 상응하는 효과를 유발하며, 이는 서로 다른 엔진 간의 물리 및 월드 지오메트리의 정밀한 정렬을 필요로 합니다.
가장 까다롭지만 가장 강력한 접근 방식은 소프트웨어 동작을 재현하는 것입니다. 이는 단순히 에셋이나 조정된 이벤트를 넘어서 메커니즘 자체를 포팅하는 것을 의미합니다. 예를 들어, Call of Call of Duty of Call of Duty에 스케이트 메커니즘을 구현하려면 가속도, 점프 높이, 충돌 규칙을 Call of Call of Duty of Call of Duty 엔진 내에서 직접 다시 구축해야 합니다. 이는 새로운 동작에 대한 완전한 제어권을 제공하지만, 광범위한 리버스 엔지니어링과 재구현을 요구합니다. 이러한 프로젝트에 관심이 있는 분들을 위해 ModRetro Official Website에서는 커스텀 하드웨어 및 소프트웨어 빌드를 위한 커뮤니티를 제공합니다.
이 글이 마음에 드셨나요? 매일 아침 이런 글을 메일로 받아보세요.
하루 한 통 · 두 번의 클릭으로 구독 취소 · 제3자 추적 없음
소프트웨어의 해자(moat)는 줄어들고 있지만, 사라지는 것은 아닙니다.
소프트웨어의 전통적인 해자(moat)는 줄어들고 있지만 사라지지는 않았습니다. 오픈 소스로 알려진 Adobe Adobe Photoshop 복제본인 Photocraft를 예로 들어보겠습니다. 모든 제품을 대체할 수는 없지만, 이러한 AI 지원 복제는 기능적으로 동일한 대안을 제공함으로써 독점 소프트웨어 가격에 압박을 가합니다.
그럼에도 불구하고 진정한 동등성을 달성하기는 어렵습니다. AI는 검증 가능한 동작을 복제하는 데는 뛰어나지만, 성숙한 소프트웨어의 복잡하고 비결정적인 측면을 다루는 데는 어려움을 겪습니다. 신뢰할 수 있는 엣지 케이스 처리, 강력한 보안, 장기적인 유지 관리, 원활한 타사 통합은 여전히 huSpider-Man의 판단을 요구합니다. 동작을 재현하는 것은 또한 중요한 지적 재산권 문제를 야기할 수 있습니다.
깔끔하고 유지 관리가 가능한 코드를 작성하는 것도 또 다른 과제입니다. "추측 및 확인(guess-and-check)" 루프는 우아한 내부 구조보다는 기능적 결과물을 우선시합니다. 또한 소프트웨어 회사의 핵심 가치 제안이 변화하고 있습니다. 원시 코드를 복제하는 비용은 저렴해지고 있지만, 진정한 가치는 다음에 있습니다:
- 고객 지원
- 쌓아온 신뢰
- 보완 서비스
- 지속적인 업데이트
AI는 검증 가능한 작업에 뛰어나지만, 사람들이 무엇을 유용하거나 의미 있다고 느끼는지는 여전히 huSpider-Man의 독창성이 결정합니다. 소프트웨어의 미래는 코드뿐만 아니라 그 주변에 구축된 포괄적인 생태계와 관계에 달려 있습니다.
자주 묻는 질문(FAQ)
소프트웨어 디컴파일링이란 무엇인가요?
디컴파일링은 컴파일된 소프트웨어를 분석하여 그 동작을 재현하는 코드를 재구성하는 것을 의미합니다. 결과물은 일반적으로 원본 소스 코드가 아닙니다.
AI가 리버스 엔지니어링 속도를 어떻게 높일 수 있나요?
AI 코딩 에이전트는 구현을 제안하고, 관찰 가능한 동작과 비교하여 테스트하며, 이 과정을 반복할 수 있습니다. 또한 작업을 병렬 작업으로 나누어 수행할 수도 있습니다.
AI가 인터페이스만 보고 소프트웨어를 재현할 수 있나요?
AI는 눈에 보이는 워크플로우를 재현하는 데 도움을 줄 수 있지만, 복잡한 제품의 엣지 케이스, 보안, 성능 및 통합을 맞추는 것은 인터페이스를 복사하는 것보다 훨씬 어렵습니다.
소프트웨어 복제본이 원본 회사의 가치를 없애나요?
꼭 그렇지는 않습니다. 유사한 소프트웨어를 더 쉽게 만들 수 있게 되더라도 지원, 신뢰성, 업데이트, 통합, 보안 및 고객의 신뢰는 여전히 가치 있게 남을 수 있습니다.

