문제

원래 VS2005에 작성된 작은 유틸리티가 있습니다.

작은 변경을해야하지만 DLL 중 하나의 소스 코드는 어딘가에 손실되었습니다.

DLL을 C ++ 코드로 다시 엔지니어링하는 무료 또는 합리적인 가격의 도구가 있습니까?

도움이 되었습니까?

해결책

육각형 디 컴파일러 훌륭한 도구이지만 코드는 읽기가 매우 어려울 것이며 전체 DLL을 리버스 엔지니어링하는 데 많은 시간을 소비해야합니다.

다른 팁

당신은 또한보고 싶을 수도 있습니다 ollydbg 32 비트 어셈블러 레벨 분석 디버거입니다. 소스 코드가없는 시나리오에서 이진 코드를 분석하는 데 사용됩니다. 가벼운 무게 디버거입니다. ollydbg 샤워웨어이므로 무료로 다운로드하여 사용할 수 있습니다 .. !!

OllyDBG를 방문하십시오 여기

추신: 날로 돌아온 크래커가 사용되었습니다 소프트 디스 실행 파일로 디버깅을위한 Numega에서 레지스터 값에서 스냅 샷을 잡습니다. Softice는 고급 디버거였습니다. 크래커에게 가장 좋아하는 도구였습니다. 나는 제품의 현재 상태에 대해 모른다. Numega의 사이트에는 정보가 없었습니다. 나는 그것을 간과했을지 모르지만 그것을 찾을 수 없었습니다. Softice의 레거시 버전 (4.0x)을 손에 넣고 Softice에 WindowsXP 패치를 적용하는 것이 좋습니다. Softice와 함께 일하는 것은 "경험"입니다.

추가로 읽기 : 역전 : 리버스 엔지니어링의 비밀 Eldad Eilam

나는 당신이 가지고있는 정확한 상황과 응용 프로그램에 대한 DLL 기능의 양을 모릅니다. 그러나 대부분의 경우 알려진 기능에 따라 누락 된 DLL을 다시 작성하는 것이 좋습니다.

문서가있는 경우 특히 그렇습니다.

바이너리 코드를 어셈블러로 리버스 엔지니어링 한 다음 C ++로 다시 엔지니어링 한 다음 기존 기능을 제공하기 위해이를 수정하려고 시도하는 것은 대부분의 경우 시간이 많이 걸리고 불가능할 수도 있습니다.

작은 변경 사항이 텍스트를 편집하거나 루틴을 건너 뛰는 경우 HEX 편집기 또는 분리기를 사용할 수 있지만 원래 C ++ 코드를 볼 수는 없으며 DLL을 돌리는 도구를 찾을 수 있습니다. 코드로 돌아가면 모든 변수 이름이 사라지고 큰 혼란이 될 것입니다.

당신의 상황에 따라 약간의 레거시/바이너리 DLL을 유지하고 변경 및/또는 추가 동작을 추가 할 래퍼 DLL을 작성합니다.

아이디어는 오래된 기능을 가져 오는 새로운 DLL에서 이전 기능을 집계하는 것입니다.

게임 및 앱 크래커처럼 수행해야합니다. 분리기를 사용하고 어셈블러 코드를 해킹하십시오.

당신은 고기를 동물에게 돌려 줄 수없고 심지어 죽은 동물을 가질 수있을 것입니다 : P

.NET에서 수행 된 경우 DotNet 리플렉터를 사용하지 않겠습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top