기본 콘텐츠로 건너뛰기

2017 암호경진대회 4번

가장 쉽게 풀었죠. 30분도 안걸렸던거 같네요.
프로그램을 통해서 암호문의 유효성이 검증되는데요, 역공학을 통해서 암호문을 쉽게 찾을 수 있습니다.

답안 :
Snow White and the Seven Dwarfs!.

풀이 :
Oracle함수가 CRC를 계산하기 위해서는 중간에 평문이 복구될 것으로 보였다제공하는 dll을 이용하여 Oracle함수의 입력으로 암호문을 넣은 프로그램을 작성하였다. IDA와 Immunity Debugger를 이용해 프로그램을 역공학하여 얻을 수 있었다.

댓글

이 블로그의 인기 게시물

프로그래머스 - 행렬의 곱셈

머리속에서는 쉽지만 막상 구현하면 헷갈려서 잘 틀리는 행렬곱... class ProductMatrix { public int [][] productMatrix ( int [][] A , int [][] B ) { if ( A [ 0 ]. length != B . length ) return null ; int [][] answer = new int [ A . length ][ B [ 0 ]. length ]; for ( int i = 0 ; i < A . length ; i ++) { for ( int j = 0 ; j < B [ 0 ]. length ; j ++) { for ( int k = 0 ; k < B . length ; k ++) { answer [ i ][ j ]+=( A [ i ][ k ]* B [ k ][ j ]); } } } return answer ; } public static void main ( String [] args ) { ProductMatrix c = new ProductMatrix (); int [][] a = { { 1 , 2 }, { 2 , 3 } }; int [][] b = { { 3 , 4 }, { 5 , 6 } }; // 아래는 테스트로 출력해 보기 위한 코드입니다. System . out . println ( "행렬의 곱셈 : " + c . productMatrix ( a , b )); } }