Program Analysis 2

MFC Bitmap Clipboard Copy

Clipboard에 데이터를 복사하려하는데 비트맵의 모든 데이터를 넣으면 에러가 발생합니다. 어떤 데이터를 복사해 주어야하는지 알아보겠습니다. 비트맵 파일의 구조를 먼저 알아보겠습니다. 비트맵은 File Header, Info Header, Pixel Data 로 이루어져있습니다. 각 14 Byte, 40 Byte, 3*Data Byte가 할당됩니다 여기서 Data는 BGR데이터로 상하반전되어 들어가기 떄문에 주의가 필요합니다. 이는 Intel CPU에서 Reverse Word 방식을 사용하기 떄문에 Byte단위로 역순으로 저장하면 word나 dword단위로 읽으면 정방향으로 입력되기 떄문입니다. // ARGB byte a = read(1); byte r = read(1); byte g = read(1)..

Program Analysis 2022.08.30

BandiCam Recording 기능 분석

회사에서 Recording 관련 이슈를 맞게 되었고 추가 기능을 지원하고자 했었습니다. 관련 작업과 관련되어 프로그램에 대해 분석했던 내용을 작성합니다. c winapi를 사용하여 내부 기능을 동작하는 방법을 분석하였습니다. 여러 상용 프로그램들 중에 반디캠의 Recetangle area, Fullscreen 기능을 살펴보았고 구현 방법을 살펴보았습니다. Screen Recording - Rectangle on a screen recording 시 dialog 안에 있는 곳이 recording 됩니다. 해당 기능은 dialog를 만들고 내부의 dialog 위치, 크기를 가져오면 됩니다. 하지만 해당 다이얼로그의 내부가 투명해야하고 양 옆의 크기를 늘리고, 줄일 수 있어야 합니다. 해당 기능을 제공하기 위..

Program Analysis 2022.07.29