리버스 엔지니어링
게시 됨: 2022-03-102022년 3월 21일 최종 업데이트
리버스 엔지니어링이 무엇이며 왜 중요한지 이야기하겠습니다. 개발자가 아닌 많은 사람들이 리버스 엔지니어링이 무엇인지 영화에서 봤기 때문에 안다고 생각하지만 이는 잘못된 생각입니다. 리버스 엔지니어링은 많은 다른 사람들에게 많은 의미를 가지고 있으며, 제가 여러분에게 말하려는 것은 다른 사람의 정의와 매우 다를 것입니다.
화이트 라벨 소프트웨어의 경우 리버스 엔지니어링은 본질적으로 프로그램을 가져와 작동 방식과 수행할 수 있는 작업을 파악하는 것입니다. 그러나 더 정확하게 말하면 리버스 엔지니어링은 기존 프로그램을 가져와서 내부 작동을 학습하여 작성자가 의도한 것과 다른 작업을 수행하도록 프로그램을 수정할 수 있도록 하는 것입니다. 우리 사이트를 탐색할 때 화이트 라벨의 의미에 대해 자세히 알아볼 수 있습니다!
소프트웨어 개발에서 우리는 무언가를 분해하고 작동 방식을 알아낼 때 리버스 엔지니어링한다고 말합니다. 리버스 엔지니어링은 소프트웨어 사용 방법과 작동 방식을 배우는 데 유용합니다. 또한 디지털 마케팅, 회사 방어, 해킹 및 기타 여러 가지와 같은 다양한 작업에 사용할 수 있습니다.
마케팅의 리버스 엔지니어링
새 마케팅 캠페인을 만들려는 경우 소프트웨어를 리버스 엔지니어링하여 소프트웨어가 수행하는 작업 또는 수행해야 하는 방법을 찾을 수 있습니다. 그런 다음 필요에 맞게 코드를 수정할 수 있습니다. 광고나 다른 유형의 마케팅에서도 동일한 작업을 수행할 수 있습니다. 또한 경쟁사, 제품의 사양 및 성능 및 기타 여러 사항에 대한 정보를 찾을 수 있습니다.
무언가를 만들고 싶다면 먼저 디자인부터 시작해야 합니다. 디자인을 만드는 데 도움이 되는 도구를 사용할 수 있지만, 사물이 적절하게 상호 작용할지 여부를 아는 것이 중요하기 때문에 사물과 함께 테스트해야 합니다. 때로는 프로그램에서 장난을 치고 잘못된 출력을 만들어 프로그램이 어떻게 작동하는지 알아내야 합니다. 특히 자동차가 어떻게 움직이는지 보고 싶다면 실제 자동차 이미지로 자동차를 운전할 수도 있습니다. 우리는 이것을 가상 운전 또는 가상 운전이라고 부릅니다.
리버스 엔지니어링이란 무엇입니까?
컴퓨터 프로그램을 분석하여 내부 구조, 소스 코드, 알고리즘 및 데이터 흐름을 결정하는 프로세스입니다. 리버스 엔지니어링의 목적은 컴퓨터 프로그램이 어떻게 작동하고 프로그램 내부에 무엇이 있는지 이해하는 것입니다. 이 정보를 읽으면 충돌 분석, 디스어셈블, 리버스 엔지니어링 또는 디버깅이라는 이름이 지정될 수 있습니다. 나는 "디버깅"을 좋아하는데 프로그래머가 하지 않는 활동처럼 들리기 때문입니다. 오늘날 대부분의 프로그래머는 자신이 리버스 엔지니어라는 사실조차 모르고 있습니다.
리버스 엔지니어링은 소프트웨어, 프로그램(또는 크래커)을 사용하여 개발자가 의도하지 않은 작업을 수행하는 프로세스입니다(그러나 때때로 발생함). 이 시나리오에서 해커는 프로그램에서 코드 결함을 발견하고 원하는 효과를 얻기 위해 이를 사용하는 방법을 알아냈습니다. 예를 들어, 해커는 게임을 리버스 엔지니어링했으며 게임이 어떻게 작동하는지 또는 어떤 종류의 정보를 배울 수 있는지 알고 있습니다.
왜 중요 함?
시장에 나와 있는 거의 모든 소프트웨어는 리버스 엔지니어링됩니다. 되돌릴 수 없는 몇 가지 프로그램이 있습니다. 마이크로소프트의 애플리케이션조차도 리버스 엔지니어링되었습니다. 회사 전체에서도 돈을 위해 소프트웨어를 리버스 엔지니어링하는 것 외에는 아무것도 하지 않습니다.
미국 정부가 소프트웨어 보호 또는 디지털 권한 관리(DRM)에 대한 법률을 통과시킨 이후 리버스 엔지니어링은 점점 더 중요해졌습니다. 리버스 엔지니어링되지 않은 경우 DRM이 있는 소프트웨어는 없으며 리버스 엔지니어링된 프로그램은 DRM으로 보호되지 않습니다. 리버스 엔지니어링이 중요한 이유는 더 많지만 이는 전체 책(또는 일련의 책)의 주제입니다.
리버스 엔지니어링은 세상을 바꿨습니다. 사람들의 생활 방식을 완전히 바꾸어 놓았습니다. 많은 장점이 있습니다.
- 원하는 대로 소프트웨어를 만들 수 있습니다.
- 프로그램에서 존재하지 않아야 하는 항목을 제거하는 방법을 찾을 수 있습니다.
- 무언가를 구성 요소로 분해하고 추가로 분석하는 것이 더 쉬워집니다.
리버스 엔지니어링 이점은 무엇입니까?
프로그램을 반대로 하여 그것이 하는 일을 보고 내부 메커니즘에 대해 배울 수 있습니다. 다른 프로그램이나 운영 체제에 영향을 주지 않고 프로그램을 변경할 수 있습니다. 이는 대부분의 프로그램이 게시자가 제공하는 라이브러리 및 운영 체제와 호환되어야 하기 때문에 상당한 이점입니다. 프로그램을 변경하면 시스템뿐만 아니라 다른 사용자의 시스템도 심각하게 손상될 수 있습니다. 리버스 엔지니어링을 통해 모든 내부 메커니즘, 라이브러리 및 작동 방식에 대한 정보에 액세스할 수 있습니다. 비용을 지불하지 않고도 라이브러리와 운영 체제를 사용할 수 있는 프로그램을 만들 수 있습니다.
리버스 엔지니어링 프로세스는 무엇입니까?
답은 리버스 엔지니어링 프로그램에 따라 다르기 때문에 이것은 복잡한 질문입니다. 제가 드릴 수 있는 최선의 대답은 "그것은 ...에 달려 있습니다."입니다. 최신 프로그램에는 디버깅 방지, 리버스 엔지니어링 방지 및 덮어쓰기 방지 코드가 있습니다. 즉, 리버스 엔지니어링에는 난독화가 많이 사용되어 시간이 낭비되고 때로는 프로그램 충돌이 발생할 수 있습니다.
난독화는 프로그램을 리버스 엔지니어링하기 어렵게 만드는 안티 리버스 엔지니어링 기술입니다. 프로그램의 서브루틴, 함수 및 기타 부분은 일반적으로 메모리의 다른 위치로 이동하고 데이터 구조는 매직 넘버로 변경됩니다. 때때로 코드는 구조에 대한 정보를 제공할 수 있는 특정 단어에 대해 암호화되거나 스캔됩니다. 이것은 항상 리버스 엔지니어를 물리치는 데 충분하지 않으므로 특정 도구로 프로그램을 분해하려고 할 때 프로그램이 충돌하는 경우가 있습니다. 많은 국가에서 소프트웨어 사본을 소유하고 어떤 식으로든 수정하지 않은 경우에도 불법입니다.
소프트웨어/프로그램을 리버스 엔지니어링하는 방법?
리버스 엔지니어링 소프트웨어에 익숙하지 않다면 먼저 접근 가능한 프로그램부터 시작하는 것이 좋습니다. 풀의 깊숙한 곳으로 뛰어 들기 전에 리버스 엔지니어링 전용 도구를 배우려고 시도하는 것이 가장 좋습니다. 초보자를 위한 좋은 도구는 IDA Pro입니다. (IDA는 침입 탐지 분석을 나타냄). 무료이며 쉽게 액세스할 수 있으며 32비트인 한 거의 모든 프로그램을 되돌릴 수 있습니다. IDA Pro는 컴파일되거나 디스어셈블된 코드를 분석하여 사용자가 읽고, 이해하고, 편집하기 쉽도록 표시합니다. IDA Pro는 리버스 엔지니어에게 좋은 도구이지만 모든 상황에 적합하지 않습니다.
또 다른 도구는 Visual Studio와 같은 디버깅 도구인 GDB입니다. 그러나 GDB는 Visual Studio처럼 실행하는 동안 코드를 디버그합니다. 차이점은 실행하는 동안 코드를 변경한 다음 프로그램 충돌을 일으킬 수 있다는 것입니다. 이렇게 하면 논리에서 오류를 볼 수 있습니다(안티 디버깅/안티 리버스 엔지니어링 메커니즘이 이를 가리지 않는다고 가정). 그런 다음 실수를 수정하거나 프로그램의 다른 부분에서 문제가 발생할 때까지 계속 실행할 수 있습니다.
리버스 엔지니어링의 위험은 무엇입니까?
대부분의 국가에서 소프트웨어를 리버스 엔지니어링하는 것은 불법입니다. 그러나 프로그램 사본을 소유하고 합법적으로 취득했음을 증명할 수 있는 한 미국의 일부 상황에서는 불법이 아닙니다(일련 번호 또는 CD 키 사용). 교육 목적으로만 허용되는 복제 방지 및 불법 복제 방지 메커니즘에 대한 예외도 있습니다. 프로그램을 리버스 엔지니어링하려면 이를 수행할 수 있는 충분한 정보가 있어야 합니다. 이것은 일반적으로 리버스 엔지니어링 중인 프로그램의 소스 코드를 이해하는 것을 의미합니다. 주로 안티 디버깅/안티 리버스 엔지니어링 메커니즘이 사용된 경우 소스 코드를 읽을 수 있다고 해도 항상 쉬운 것은 아닙니다.
리버스 엔지니어링이 무엇을 의미하며 이를 다양한 사례에 적용하는 방법에 대해 더 잘 알 수 있기를 바랍니다. 또한 귀하가 이 분야에 대해 더 많이 알게 되고 보다 현대적인 방식으로 지식 도구를 사용하여 귀하의 비즈니스와 고객이 성장하는 데 도움이 되기를 바랍니다.