dll을 C++ 코드로 변환하는 것이 불가능하므로 가능한 세부 정보를 수집하고 싶습니다. 내 dll이 아니므로 소스 코드가 없습니다. 어떤 프로그램을 사용해야합니까?DLL을 C++ 코드로 변환하는 방법은 무엇입니까?
답변
잘 숙련 된 사용자라면 DLL을 분해하고 모든 기능을 이해할 수 있습니다. 이것은 상당한 시간이 걸리지 만, 그렇게하면 손으로 소스로 되돌릴 수 있습니다.
그렇지 않으면 Dependency Walker와 같은 도구를 사용하여 의존하는 DLL 및 함수와 함수를 가져 오는 것부터 시작할 수 있습니다. 거기에서 관심있는 기능을 찾고 IDA와 같은 디스어셈블러를 사용하여 그들이하는 일을 볼 수 있습니다.
너무 많은 시간을 손에 든 어리석은 사람들을 제외하고는 아무도 * 모든 것을 뒤집을 수 없습니다. 당신은 항상 IDA와 같은 것을 가지고 관심있는 통화 경로를 따라갈 것입니다. 게다가 IDA 자체에서 수출을 볼 수 있습니다. 중개인이 필요 없습니다. +1 여전히 – 0xC0000022L
누구나 IDA를 갖고 있거나 배우고 싶어하지 않습니다. 그래서 저는 Dependency Walker를 유용한 정보를 얻는 아주 간단한 방법으로 제안합니다. (물론 IDA에 능숙하다면 당연히 모든 것을 할 수 있습니다 :)) – nneonneo
PE 파일 뷰어가 필요합니다. 이렇게하면 DLL에서 내보내기를 알 수 있으며 .text 섹션의 데이터를 가져와 기계 코드를 볼 수 있습니다.
dumpbin 도구를 사용하여 내 보낸 기능 목록을 볼 수 있습니다. C++ 함수가 익스포트되면, mangling이라는 이름으로 매개 변수를 추론 할 수 있습니다.
Visual Studio에서 리소스보기 용 파일로 "열기"만하면 DLL에서 모든 리소스를 추출 할 수 있습니다. DLL이 COM 기반 DLL 인 경우 유형 라이브러리가 내부에 리소스로 포함될 가능성이 적습니다. 그리고 유형 라이브러리가 있다면 # import하여 공용 인터페이스의 헤더 파일을 재구성 할 수 있습니다.
그 정도면 충분합니다.
나는 그 정도면 충분하다는 것에 동의하지 않습니다. 모든 시간/기술/노력에 따라 다릅니다. nneonneo의 대답을보십시오. – JBentley
- 1. 문자열을 코드로 변환하는 방법은 무엇입니까? (C#)
- 2. C# 코드를 오브젝트 코드로 변환하는 방법은 무엇입니까?
- 3. actionscript 코드를 C 코드로 변환하는 방법은 무엇입니까?
- 4. 이 방정식을 C 코드로 변환하는 방법은 무엇입니까?
- 5. C++ 코드를 iphone의 Objective C 코드로 변환하는 방법은 무엇입니까?
- 6. 자바를 C# 코드로 변환하는 도구
- 7. C# DLL을 VB DLL로 변환하는 방법
- 8. 동적 DLL을 정적 라이브러리로 변환하는 방법은 무엇입니까?
- 9. minizip wrapper를 유니 코드로 변환하는 방법은 무엇입니까?
- 10. Matlab, C++ 등에서 수학 공식을 코드로 변환하는 방법은 무엇입니까?
- 11. 유니 코드로 특수 문자를 변환하는 방법은 무엇입니까?
- 12. UTF-8을 유니 코드로 변환하는 방법은 무엇입니까?
- 13. 자바에서 예외를 오류 코드로 변환하는 방법은 무엇입니까?
- 14. VBscript를 파이썬 코드로 변환하는 방법은 무엇입니까?
- 15. ANSI 텍스트를 유니 코드로 변환하는 방법은 무엇입니까?
- 16. C를 MIPS 어셈블리 코드로 변환하는 방법은 무엇입니까?
- 17. 문자열을 Java 8에서 코드로 변환하는 방법은 무엇입니까?
- 18. C++ 공용 형식을 C# 코드로 변환하는 방법?
- 19. DLL을 C++ 소스 코드로 디 컴파일 할 수있는 도구는 무엇입니까?
- 20. C#에서 C? dll을 호출하는 방법은 무엇입니까?
- 21. .h 파일 + dll을 일종의 .Net 래퍼로 변환하는 방법은 무엇입니까?
- 22. winform 코드로 변환하는 방법?
- 23. Windows-1250으로 인코딩 된 문자열을 유니 코드로 변환하는 방법은 무엇입니까?
- 24. 이 C++ 코드를 어셈블리로 변환하는 방법은 무엇입니까?
- 25. Python에서 C++로 스크립트를 변환하는 방법은 무엇입니까?
- 26. 어셈블리 REP STOS를 C 코드로 변환하는 방법
- 27. C 코드를 JNI 코드로 변환하는 방법
- 28. 파이썬 코드를 C 코드로 변환하는 것이 어렵습니까?
- 29. matlab 코더로 'pchip'을 c 코드로 변환하는 방법
- 30. 자바 스크립트 코드를 C# 코드로 변환하는 방법
인기있는 바이너리 리버스 엔지니어링 툴은 IDA Pro입니다. 가장 기본적인 요구 사항을 충족하는 무료 버전이 있습니다. – datenwolf
DLL의 기능을 이해하고 있습니까? 얼마나 큽니까? 원래 그 언어가 쓰여진 언어를 아십니까? 당신은 실제로 무엇을 성취하려고합니까? –
태그로 "핵심 구문"을 추가했습니다. 그들을 찾아 봐. –