전체 글(440)
-
인증 값 비교 문제 [gdb 적응용]
gdb에 적응하기 위해 간단한 코드를 만들어서 실습을 해보았다. 소스코드는 다음과 같다. #include #include #include int check_authentication(char *password){int auth_flag = 0;char password_buffer[16]; strcpy(password_buffer, password); if(strcmp(password_buffer,"constant") == 0)auth_flag = 1;if(strcmp(password_buffer,"love hack") == 0)auth_flag = 0; return auth_flag;} int main(int argc, char *argv[]){if(argc
2017.07.07 -
overflow_example
오버플로우는 몇 번을 공부해도 지나치지 않는 것 같다. C프로그램은 단순한 언어이므로 프로그래머가 프로그램을 원하는 대로 제어하고 효율적으로 만들 수 있다. 하지만, 한편으로는 프로그래머가 메모리 관리를 소홀히 하면 버퍼 오버플로우와 메모리 누수 현상이 일어날 수 있다. 어떤 변수가 메모리에 할당돼 있을 경우 그 변수의 내용이 메모리 경계를 벗어나지 않는지 검사하는 안전장치가 있어야 한다. 안전장치가 없을 경우, 프로그래머가 의도한 버퍼의 크기를 무시하고 더 큰 크기의 버퍼를 입력할 수 있게 된다. 프로그래머가 의도하지 않은 데이터 길이를 입력하여 프로그래머가 의도하지 않은 결과를 만들어 내는 것이 버퍼 오버플로우 / 버퍼 오버런 이라고 한다. 예제를 통해 살펴보겠다. 해당 예제의 버퍼 크기는 8바이트 ..
2017.07.06 -
[피카츄 시연]
[2p 무조건 승리]
2017.07.03 -
DES
목표: DES에 대해 공부하며 개념을 정리하면서, 개념을 토대로 소스코드를 구현 DES의 핵심요소 1. 56비트 키 2. S-BOX 설계 (비선형 함수) 3. 입출력 64비트 4. 16라운드 DES의 기본 구조 [초기치환 IP] [0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15] 58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7 총 64비트 (입력) [소스코드] unsigned char DES_INIT_IP[4]..
2017.06.22 -
피카츄 리버싱 5부...
Day 4 이번에는 게임 무한 실행에 대한 공부를 진행한다. 게임이 무한 실행되기 위한 조건은 !! 그것은 바로바로.... 공이 떨어졌을 때 체크하는 것을 우회 하는 것 무한 실행에 대해 조사하다가 다른것도 알게 되었다.1p의 피카츄가 스파이크? 를 하지 않게 하는 루틴을 찾아 내었다. jnz의 주소를 jle에 넣되 less 의 반대인 greater를 적어두자. 이 조작까지 하게 되면, 2p진영은 공이 땅에 닿았는지 체킹을 하지 않게 된다. 잠깐 영상을 감상하자. 그렇다면... 1p 진영도 무적이 되게 해서 실컷 놀기 위해서는 어떻게 해야할까? 1p가 ...너무너무 잘해서 위에서 조작 성공한 스파이크 하는 1p를 없애고 테스트를 진행함. 끝~~!!
2017.06.05 -
피카츄 리버싱 4부...
Day 3 오늘의 목적: 게임의 최대 점수를 조작. 지난 시간에, 게임의 속도를 조작해보았다. 이번에는 각 메뉴의 5포인트 10포인트 15포인트를 조작해본다. OllyDdg와 IDA라는 프로그램을 동시에 사용하였다. 1) OllyDdg에 피카츄배구를 Attach시키고, 프로그램을 실행시켜 프로세스 동작(Running)상태로 만들어 둔다. 2) 메뉴의 옵션을 클릭해본다.의심 되는 루틴이 보인다. 3) 아무거나 접근해본다. 3가지의 비교가 나오는데 누가봐도 스코어다....^^ 4) 값 수정 전에 실행해보자. 5) 5점이 되면 끝난다. 이제 이 값을 1로 조작을 하고, 기타 다른 점수 또한 10점,15점에서 임의값으로 조작을 진행한다. 6) 이제 5점 위치는 1점으로 변경되었으므로 점수 1점만 나도 게임은 종..
2017.06.05