반응형
공유(shared) 라이브러리 만들기
http://www.darknet.org.uk/2016/07/dmitry-deepmagic-information-gathering-tool/
부제 : dmitry 소스 쪼개서 사용하기
file.h
#include <stdio.h> #include <stdlib.h> #include <string.h> #define OUTPUT_LOCALITY "output.txt" FILE *wfp; fpos_t file_loc; char filename[64]; char outputfile[64]; int file_prep(); int file_open(); int file_close();
file.c
#include "file.h" int file_prep() { outputfile[strlen(outputfile)] = '\0'; if (!(wfp = fopen(outputfile, "w" ) )) { printf("Error: Unable to write to %s\n", outputfile); exit(1); } printf("Writing output to '%s'\n\n", outputfile); fclose(wfp); return 0; } int file_open() { if (!( wfp = fopen(outputfile, "a+" ) )) { printf("Error: Unable to write to %s\n", outputfile); exit(1); } return 0; } int file_close() { if (fclose(wfp)) { printf("Error: Unable to close file stream writing to %s\n", outputfile); exit(1); } return 0; }
컴파일하기
hacker@ubuntu$ gcc -shared -Wl,-soname,libfile.so.1 -o libfile.so.1.0.1 file.o hacker@ubuntu$ ls file.c file.h file.o lib2_test.c libfile.so.1.0.1 hacker@ubuntu$ sudo cp libfile.so.1.0.1 /usr/local/lib hacker@ubuntu$ ls /usr/local/lib/libfile.so.1.0.1 /usr/local/lib/libfile.so.1.0.1 hacker@ubuntu$ sudo ln -s /usr/local/lib/libfile.so.1.0.1 /usr/local/lib/libfile.so hacker@ubuntu$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib hacker@ubuntu$ sudo ldconfig
lib2_test.c 테스트 소스
#include "file.h" #include <stdio.h> #include <string.h> int main( int argc , char ** argv ) { char filebuff[255]; memset(filebuff,0x00 , sizeof(filebuff)); memset(outputfile,0x00 , sizeof(outputfile)); char * rfile = "test.txt"; char * rbuff = "insert data\n"; strcpy( outputfile, rfile ); if( strlen( outputfile ) ) { file_open(); strcpy( filebuff, rbuff ); fputs(filebuff, wfp); } return 0; }
lib2_test.c 컴파일 및 실행
hacker@ubuntu$ gcc -o lib2_test lib2_test.c -L/usr/local/lib -lfile hacker@ubuntu$ ./lib2_test hacker@ubuntu$ cat test.txt insert data
반응형
'C 언어' 카테고리의 다른 글
매크로 사용하기(php소스 쪼개서 사용하기) (0) | 2016.07.21 |
---|---|
strdup (0) | 2016.07.20 |
정적 라이브러리 만들기 (0) | 2016.07.19 |
copy file (0) | 2016.07.12 |
binary search (0) | 2016.07.12 |