MFC에서 Excel 파일 불러오기1. 준비 단계Visual Studio에서 Excel COM 라이브러리를 참조로 추가.프로젝트 속성에서 Excel OLB 파일 경로를 지정.#include "afxdisp.h"를 프로젝트에 포함.2. 주요 구현 단계COM 라이브러리 초기화: AfxOleInit()와 CoInitialize() 사용.Excel Application 객체 생성: CoCreateInstance 호출.Excel 파일 열기: Workbooks.Open 메서드를 호출하여 파일 열기.셀 데이터 읽기: 특정 워크시트와 셀 선택 후 값 가져오기.COM 해제: CoUninitialize() 호출로 리소스 해제.3. 예제 코드#include "afxdisp.h"void ReadExcelFile() { ..
커플링 심화를 이용한 DLL 포인터 마스킹 후 역 마스킹하여 Caller 검증 방법요구 사항CLASS A를 만들고, 함수 BOO, FOO 구현CLASS AImpl을 new로 할당할당된 AImpl에 특정 수로 마스크 처리DLL에서 Caller에게 마스크된 포인터를 리턴Caller는 BOO, FOO 호출 시 해당 포인터를 전달DLL에서 마스킹을 풀어 리턴된 포인터가 올바른지 체크정상적이면 AImpl 내부 함수 호출코드 예제1. DLL 내 CLASS A 정의 및 포인터 마스킹 처리DLL에서 CLASS A와 AImpl을 정의하고, 포인터를 특정 값으로 마스킹 처리한 후 Caller에게 반환합니다.// MyDLL.cpp#include #include class A {public: virtual void BO..
NONAME을 이용한 멀티스레드 세이프한 방법 1. 멀티스레드 환경에서 발생할 수 있는 문제 동시 접근 문제: 여러 스레드가 동일한 자원에 동시에 접근할 경우, 데이터 불일치 또는 충돌이 발생할 수 있습니다. 메모리 관리 문제: 객체의 생성과 해제를 DLL 내부에서 처리하지 않으면 메모리 누수나 충돌이 발생할 수 있습니다. 전역 변수 사용: 전역 변수에 여러 스레드가 접근할 경우 동기화가 필요합니다. 2. 스레드 안전성을 확보하는 방법 객체의 독립성 유지: 각 스레드가 독립적으로 객체를 사용하고, 공유 자원에 접근할 때는 동기화를 적용합니다. 동기화 메커니즘 사용: mutex, critical section 등..
NONAME을 이용한 CLASS 포인터 반환 1. NONAME을 이용한 CLASS 포인터 반환 개념 NONAME 기술을 이용해 DLL에서 클래스를 반환하는 방법은 함수 이름 대신 Ordinal을 사용하여 클래스를 생성하고, 그 포인터를 반환하는 방식입니다. 이 방법은 DLL 내에서 객체의 포인터를 외부로 안전하게 전달하며, 보안을 강화할 수 있습니다. 특히, 메모리 관리 측면에서 클래스 객체의 할당과 해제를 모두 DLL에서 처리해야 안전하게 사용할 수 있습니다. 2. DLL 클래스 포인터 반환 구조 DLL 내에서 클래스 객체를 생성하고, 그 포인터를 반환합니다. NONAME 방식으로 함수 이름을 숨기고, 외부에..
DLL EXPORT 방법 중 NONAME 기술 1. NONAME 기술이란? NONAME 기술은 DLL에서 함수나 변수를 이름 대신 번호(ordinal)로 export하는 방식입니다. 이 방법을 사용하면 DLL 크기를 줄이고, 보안을 강화할 수 있지만, 사용성과 유지보수 측면에서 어려움이 있을 수 있습니다. 2. NONAME 기술의 장점 DLL 크기 감소: 함수 이름을 저장할 필요가 없기 때문에, DLL 파일의 크기가 조금 줄어듭니다. 대규모 API나 많은 함수가 있는 DLL에서 유리합니다. 보안 강화: 함수 이름이 노출되지 않으므로, 공격자가 함수 이름을 기반으로 공격하는 것을 어렵게 만들 수 있습니다. DLL의 API가..
DLL EXPORT의 문제점 (후킹에 대한 위험) 1. 후킹(Hooking)이란? 후킹은 운영 체제나 프로그램의 API 호출 흐름을 가로채는 기술로, 특정 함수 호출이나 메시지 처리를 가로채어 조작하거나 다른 기능을 수행하도록 할 수 있습니다. 후킹은 프로그램의 정상적인 흐름을 변경해 악성 코드를 실행하거나 데이터를 탈취하는 등 여러 가지 보안 위협을 일으킬 수 있습니다. API 후킹: 프로그램이 호출하는 API 주소를 변경해 공격자가 원하는 코드가 실행되도록 하는 방법. DLL 후킹: DLL의 함수 호출을 가로채는 방식으로, 프로그램이 DLL 내 특정 함수를 호출할 때 이를 가로채 공격자의 코드를 실행하도록 유도. ..
- Total
- Today
- Yesterday
- Build
- 스쿠버다이빙
- C++
- C#
- Windows
- 암호화
- C# 고급 기술
- C
- 스쿠버 다이빙
- 외돌개
- CMake
- 서귀포블루버블
- Linux
- script
- 울릉도
- 패턴
- 현포다이브
- 제주도
- DLL
- Effective c++
- 서귀포
- 블루버블다이브팀
- 블루버블
- 블루버블다이빙팀
- C#.NET
- 성산블루버블
- OpenSource
- effective
- 네트워크 정보
- PowerShell
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |