최대한 많은 정보를 숨길 싶습니다. ldd
에서 정보를 숨기고 싶습니다. 따라서 동적으로 링크하는 대신 라이브러리에서 정적으로 링크하는 방법을 배우고 있습니다. 내가 올바른 구문은 따라서g ++ 공유 객체의 정적 버전을 연결할 수 없습니다.
g++ -ldynamiclib -o exe files.cpp staticlib.a
또 다른 유래의 게시물에서 읽었습니다, 내 현재 컴파일 코드는 다음과 같습니다
STATIC_LIB=""
STATIC_LIB="$STATIC_LIB ${PATH}/libcrypto.a"
STATIC_LIB="$STATIC_LIB ${PATH}/libdl-2.5.so" // I couldn't find the .a version for this, so I tried doing it this way, and have also tried doing just -ldl
STATIC_LIB="$STATIC_LIB ${PATH}/libstdc++.a"
STATIC_LIB="$STATIC_LIB ${PATH}/libgcc.a"
STATIC_LIB="$STATIC_LIB ${PATH}/libc.a"
g++ -g -I${INCLUDE_PATH} -o executable file1.cpp file2.cpp $STATIC_LIB
나는이 방법은 libcrypto을 위해 작동 ldd
으로 확인했습니다, 내가 가져온 외부 라이브러리이기 때문에. 그러나 이것은 다른 모든 것들에 대해서는 전혀 작동하지 않으며, 내가 ldd
을 사용했을 때 여전히 나열되어있는 것을 볼 수 있습니다. 누구든지 올바른 방법을 알고 있습니까?
P. 나는 또한 -static이나 -Wl, -Bstatic을 사용하는 등 몇 가지 다른 대안을 시도해 봤지만 그 중 하나를 사용할 수 없었다. 그것이 내 구문인지 아니면 단지 불가능한 것인지 확실하지 않습니다.
'나는 ldd에서 할 수있는 한 많은 정보를 숨길 필요가 있다는 것에 대해 다소 궁금합니다. 어쩌면 XY 문제일까요? http://meta.stackexchange.com/a/66378 – renemilk
프로그램 실행 방법을 분석하여 프로그램을 중단하는 방법에 대한 추가 정보를 얻는 것입니다. 리버스 엔지니어링. 누군가가 프로그램을 중단 시키거나 프로그램에서 정보를 얻으려고한다고 가정 할 때 가능한 한 많이 숨기려고했습니다. –