본문 바로가기

프로그래밍

Curl Static 빌드 참조 시 유의해야 할 점 Curl STATIC 빌드 된 라이브러리를 참조 후 Curl 라이브러리 참조 프로젝트가 정상적으로 빌드가 안될 시 체크 해야될 부분들입니다. #define CURL_STATICLIB프로젝트 헤더 파일 최상단에 선언 해줍니다. #include 윈속2 헤더 파일에 대한 참조 여부를 확인합니다. #pragma comment(lib, "Advapi32.lib") #pragma comment(lib, "wldap32.lib") #pragma comment(lib,"Ws2_32.lib") Advapi32.lib, wldap32.lib, Ws2_32.lib 라이브러리 파일을 참조합니다. 옛날에 작업 할 때 잘 쓰던 녀석들인데 ㅡㅡ;; 최근 새롭게 작업 도중에 계속 오류가나 두시간은 삽질한거 같네요..... 다른 분들.. 더보기
체크멀 AppCheck 한계점... 1년전만 해도 체크멀의 앱체크 제품은 단순히 행위기반을 탐지하여 랜섬웨어를 차단하는 솔루션으로 기억하고 있다. 그때까지만해도 행위기반으로 어지간한 랜섬웨어들은 차단했던걸로 기억하고 있으며, 많은 취약점이 있겠지만서도... 단연 기억나는 것은 하나의 프로세스가 10개 이하의 파일을 암호화 할 때 탐지를 못하던 부분이었다. 최근에는 패치가 많이 되었는지 Ui도 변경이 되고 기능들이 많이 추가되었다. 그 중에서도 단연 눈에 보이는 것은 시스템 검사 기능이 추가된 것이라고 볼 수 있는듯 하다. 행위기반으로 인지도가 있었던 프로그램이였는데.. 왜 이런 기능이 생겼나 궁금해졌다... 시스템 검사라함은 결국 블랙리스트의 랜섬웨어 또는 멀웨어와 같은 프로그램의 해쉬 값을 저장하여 파일 IO가 일어날 때마다 비교하여 차.. 더보기
Sage Ransomware 실행 영상[세이지 랜섬웨어] 세이지 랜섬웨어 실행 영상입니다. 특별한 점은 C:\Temp 폴더에 파일은 안전했다는게특이점이네요. 더보기
리눅스 설치 USB 만들기 - CentOS, Rufus 사용기 리눅스 설치 USB를 만들기 위해 이리저리 검색하던중 Rufus 란 툴이 있어 사용해봤어요. 이건 뭐 설명할 것도 없이 ISO파일 설정만 해주면 자동으로 끝.. 이거 이전에 Universal USB Installer도 사용해봤는데 잘 안되더라구요.. 제가 사용 못해서 그런건지 모르겠지만.. Rufus 덕분에 쉽게 리눅스 설치 했어요~ 더보기
Visual Studio 2017 Curl 빌드하기~ Visual Studio 2017에서 Curl을 빌드해볼까 합니다. 우선 Curl 부터 다운로드 받아야겠죠? Curl Download 더보기
C/C++ 0xC0000005 오류 이유 - 메모리 관련 오류 코드를 작업하면서 가장 많이 보게 되는 오류가 아마도 0xC000000005 오류일 것입니다. 해당 관련 코드는 메모리를 잘못 사용하는 경우에 나는데요 위에 극단적인 코드를 예로 들어봤습니다. void main() { char *p = NULL; wsprintf(p, "%s", "1234"); printf("%s\n", p); } 할당 되지 않은 포인터 변수에 "1234" 값을 사용하려고 합니다. 당연히 오류가 나겠죠? 코드는 보시는거와 같이 0xC000000005 오류 코드로 나옵니다. 특히나 외부 메모리 사용하려고 할 때 가장 많이 발생합니다. 외부 메모리는 개발자 자신이 할당이 아닌 경우가 많다 보니 일반적인 경우 잘 사용하다가 어느 순간 외부 메모리는 해제되어 버리고... 개발자는 해당 메모리를 .. 더보기
BugCheck 50 블루스크린 발생 원인 및 해결 방법 뭐 처럼 간만에 블루스크린이 떳네요.? 특별히 작업할 일이 없어서 그런거긴해도.. 할때마다 눈물나요 ㅎㅎ 이번에 블루스크린은 Bug Check 0x50 잘못된 메모리 사용이라고 보시면 빠를듯 해요 덤프 파일에도 떡하니 나오네요 unsigned char buffer[4096] = { 0, }; unsigned char sha[MAX_PATH] = { 0, }; status = ZwCreateFile( &hFile, FILE_READ_DATA, &ObjAttr, &IoStatusBlock, 0, FILE_ATTRIBUTE_NORMAL, FILE_SHARE_READ, FILE_OPEN, FILE_SYNCHRONOUS_IO_NONALERT, NULL, 0); if (!NT_SUCCESS(status)) { st.. 더보기
MFC 정적빌드 설정하기 핏 재배포 패키지 걷어내기 기본적으로 MFC 프로젝트를 만들게되면 위와 같이 "공유 DLL에서 MFC 사용"으로 설정되어 있어요. 이 설정은 무엇이냐? 바로 비주얼스튜디오로 작업된 MFC 프로젝트에 한해서 시스템에 설정되어 있는 DLL을 참조하겠다는 거죠 시스템에 설정되어 있는 DLL을 참조하게 되면 시스템 DLL에 의해서 의존성을 가지게 되나 출력되는 EXE 파일의 용량을 획기적으로 줄일 수 있죠. 다만 시스템 DLL의 영향을 받으므로 Visual Studio 2015 버전을 사용하여 만들었다면 Visual Studio 2015 재배포 패키지 x86, x64 버전을 설치해주셔야 합니다. 아니라면 실행될 때마다 DLL이 없네요..ㅠㅠ 하는 DLL을 찾아다가 system32 경로 또는 sysWow64 경로에 넣어 주셔야 해요 그러므.. 더보기