Security

    [SHA-256] 코드 및 알고리즘 분석 - (2)

    [SHA-256] 코드 및 알고리즘 분석 - (2)

    이전 포스팅 글에서는 SHA-256의 헤더 파일을 분석하였다. 이번에는 KISA에서 제공한 SHA-256의 소스 파일을 분석하겠다. (전체 코드는 KSIA에서 다운로드할 수 있습니다.) 1. 소스파일 1.1. SHA256_Encrpyt() void SHA256_Encrpyt( IN const BYTE *pszMessage, IN UINT uPlainTextLen, OUT BYTE *pszDigest ) { SHA256_INFO info; SHA256_Init( &info ); SHA256_Process( &info, pszMessage, uPlainTextLen ); SHA256_Close( &info, pszDigest ); } 크게 위의 그림과 같이 SHA256_Encrpyt() 함수가 진행된다. ①..

    [SHA-256] 코드 및 알고리즘 분석 - (1)

    이전 포스팅 글에서는 SHA-256이 무엇인지 간단히 알아보았다. 이번에는 KISA에서 제공한 SHA-256의 C/C++ 코드를 분석하겠다. (전체 코드는 KSIA에서 다운로드할 수 있습니다.) 1. 헤더 파일 여러 가지의 매크로 함수를 사용하였다. 기본적으로 #define, #if, #ifdef, #ifndef, #undef 가 쓰인다. 1️⃣#if는 c언어에서 쓰이는 if와 기능이 똑같고, 2️⃣#ifdef는 무엇이 정의되어있는지에 대한 if 3️⃣#ifndef는 무엇이 정의되어있지 않을 때에 대한 if 4️⃣#undef는 해당 매크로 삭제 더보기 C언어 #define, #if , #ifdef , #ifndef란 안녕하세요. 오늘은 전처리기 #define, #if, #ifdef, #ifndef에대해 ..

    SHA-256 개념 간단 설명

    SHA-256 개념 간단 설명

    SHA-256 코드를 분석하기 이전에 SHA-256이 무엇인지 간단히~ 알아보겠다. SHA-256이란? 입력 메시지를 크기가 512bit인 블록 단위로 나누고 압축함수(c)를 실행하여 256bit의 해시값을 도출하는 해시함수 알고리즘이다. 여기서 IV는 초기벡터로, 첫 번째 메시지 블록(M1)을 압축함수에 실행할 때 사용되는 첫 번째 해시값(H1)이 되어준다. 그렇다면 해시함수는 무엇일까? 임의의 길이를 가진 메시지를 해시함수에 입력하면 256bit와 같은 고정 길이의 해시값을 출력한다. 해시값을 다시 해시함수에 넣기 전인 원래의 메시지로 돌아갈 수 없다는 점이 장점이다. 즉, 암호문(해시값)으로부터 평문(입력값)을 얻을 수 없다. (예측 불가능성) 자세한 내용은 시간이 되면 추후에 글을 쓰도록 하겠다~..

    [Fiddler] 피들러 패킷 변조 방법

    [Fiddler] 피들러 패킷 변조 방법

    피들러를 이용하여 HTTP 패킷을 변경하는 경우가 있다. 이때 가장 먼저! 해야 하는 것이 있다. 바로 브레이크포인트(Breakpoints) 설정하기 피들러를 많이 사용해보지 않아서 브레이크포인트를 설정하는 것을 까먹는 경우가 있다. (설정하지 않고 패킷을 변경하면 말짱 도루묵...) 그래서 브레이크포인트를 설정하고 패킷을 변조하는 과정을 포스팅하려 한다. 1. 브레이크포인트 설정하기 이때, 브레이크포인트를 설정하기 전 상황을 자세히 설명해보겠다. 1.1. 해당 페이지 접속 패킷을 변조할 페이지를 먼저 접속한다. 이때는 아래 캡처 화면과 같이 Rules - Automatic Breakpoints -Disabled로 설정되어있어야 한다. 1.2. 브레이크포인트 설정 피들러 Rules - Automatic ..