수정 된 버전의 printf로 라이브러리를 만든 다음 LD_PRELOAD를 호출하여 프로그램에서 printf를 호출 할 때 내 버전을 사용합니다. 누군가가 나에게 LD_PRELOAD를 사용하는 방법을 설명 할 수 있습니까? 그리고 내 코드 나 라이브러리에서해야 할 특별한 것이 있다면?LD_PRELOAD 사용에 대한 도움말
1
A
답변
-3
그것은 나쁜 생각처럼 보입니다. printf
의 버전을 다른 이름으로 지정하지 않는 이유는 무엇입니까?
5
대체 환경 변수 LD_PRELOAD
을 대체 라이브러리의 전체 경로로 설정하기 만하면됩니다. 그 이후에 실행하는 모든 프로그램은이 라이브러리를 사용하려고 시도하므로 LD_PRELOAD
이 실행하려는 프로그램을 호출하도록 설정하는 래퍼 스크립트를 만들 수 있습니다.
+4
또는 내가 선호하는 방법 (sh 또는 bash 사용) : LD_PRELOAD =/path/to/lib ./myProg –
2
- 내가 아는 한 모든 프로그램은 우선적으로 uid 또는 gid (suid 또는 guid 프로그램이라고 함)를 변경할 수 없습니다.
- 디버깅과 같은 특정 용도로만 사용해야합니다. 내가 아는 한 C에서 엘프 (elf)의 기능을 숨길 수 있습니다. 그러나 두 기술 -
LD_PRELOAD
과 섀도 잉은 extream 치료를 다루어야합니다. GLib 내부가 바뀌면서 gpgme 코드 (또는 gpg와 관련된 기타)에서 섀도 잉g_malloc
의 버그를 발견 한 것을 기억합니다.
간단한 대답은 -하지 마세요. 더 복잡한 경우 - 할 일이있는 경우에만 - 그리고 보통은하지 마십시오 (어떤 종류의 디버깅 소프트웨어를 작성하지 않는 한).
관련 문제
- 1. Moq 사용에 대한 도움말
- 2. Xcode 사용에 대한 도움말
- 3. AttachObjectGraph 사용에 대한 도움말
- 4. jQuery .prepend() 사용에 대한 도움말
- 5. rgl 패키지 사용에 대한 도움말
- 6. 저장소 패턴 사용에 대한 도움말?
- 7. std :: locale 사용에 대한 도움말?
- 8. 클립 클립 사용에 대한 도움말
- 9. Silverlight에서 시각적 트리 사용에 대한 도움말
- 10. C#에서 CreateProcessWithLogonW 사용에 대한 도움말
- 11. 셈플 및 스레드 사용에 대한 도움말
- 12. 데스크탑 응용 프로그램에서 RDA 사용에 대한 도움말?
- 13. C++ 클래스 메서드에 대한 LD_PRELOAD
- 14. PHP 및 멀티 바이트 문자 사용에 대한 도움말
- 15. Google Web Toolkit 프로젝트에서 JAVA URL 사용에 대한 도움말
- 16. Reactive Extensions 라이브러리에서 Subject 클래스 사용에 대한 도움말
- 17. 클라우드 사용에 대한 타당성?
- 18. 타이머 사용에 대한 조언
- 19. 인터페이스 사용에 대한 질문
- 20. FORMAT_MODULE_PATH 사용에 대한 조언
- 21. SelectedTab 사용에 대한 질문
- 22. LD_PRELOAD with MySQL
- 23. LD_PRELOAD 또는 LD_LIBRARY_PATH 대체
- 24. WebBrowser 사용에 대한 도움이 필요합니다.
- 25. jschat gem 사용에 대한 질문
- 26. Android : CPU 사용에 대한 질문.
- 27. CMS 사용에 대한 논쟁이 있습니까?
- 28. system.net.mail 사용에 대한 질문 사항
- 29. 잘못된 사용에 대한 종료 상태
- 30. 안드로이드에서 ASE 사용에 대한 피드백?
이것은 답변이 아닙니다. – bukzor