본문 바로가기
반응형

전체글253

[리버싱] 정적&동적 라이브러리 정적 라이브러리(Static library) 특정 기능의 라이브러리를 static하게 제작한다는 것은 링크단계에서 라이브러리(*.lib 파일)를 실행 바이너리에 포함시킨다는 것이다. 즉, 라이브러리의 동작 코드가 이를 사용하는 실행 바이너리 속에 포함되기 때문에 별도의 추가 작업없이 독립적으로 라이브러리 함수들을 사용할 수 있다. 하지만, 정적 라이브러리를 사용하는 프로그램이 늘어날수록 불필요하게 실행 파일들의 크기가 커지며, 라이브러리가 동시에 여러 실행 바이너리에 포함되는 경우 메인 메모리의 공간 활용 효율이 떨어진다. 동적 라이브러리(Dynamic library) : DLL 동적 라이브러리는 이를 사용하고자 하는 실행 바이너리에서 필요시 사용할 수 있도록 최소한의 정보만 포함하여 링크하거나, 독립적.. 2017. 9. 16.
[리버싱] PE파일 참조:http://www.reversecore.com PE(Portable Executable) 파일이란? Win32 운영체제라면 어디에서라도 잘 돌아가는 파일 포맷을 말한다. PE라는 개념을 도입한 이유 PE 헤더에는 실행 파일을 실행하기 위한 각종 정보(메모리 적재 방법, 실행 위치, 필요한 DLL 목록 등)가 기록되어 있다. 즉, PE구조를 통해 파일이 실행되기 위해 필요한 정보들을 볼 수 있으며, 파일 실행 시, 코드가 실행되기 전에 PE의 정보부터 읽어 들여 바이너리를 메모리에 올리기 위한 데이터 설정 작업을 하게 된다. PE 파일의 종류 - 실행 파일 계열 : exe, scr - 라이브러리 계열 : dll, ocx - 드라이버 계열 : sys - 오브젝트 파일 계열 : obj ※ obj 파일을.. 2017. 9. 14.
[웹해킹] LOS 12번 darkknight 음... 좀 까다로운 것 같다 쿼터도 막혀있고, substr도 막혀있다. 우선 admin계정을 찾아보자. 이제 비밀번호를 찾아보자. 비밀번호는 8자!!! 브루트포스 하기 위해 찾아냈다. 쿼터를 사용하지 못해서 어떻게 문제를 풀 것인가 찾아보았다. 쿼터를 사용하지 못할 때 ' and substr(str, 1, 1) = 0x61 # ' and substr(str, 1, 1) = unhex(61) # ' and substr(str, 1, 1) = char(97) # 전부 a로 변환된다. 얘네도 막혔다면 ' and hex(substr(str, 1, 1)) = 61 # ' and ascii(substr(str, 1, 1)) = 97 # ' and ord(substr(str, 1, 1)) = 97 # 나는 char.. 2017. 9. 7.
[여행] C-Bottom의 제주도 여행기 마지막날 2017-08-31 눈을 뜨니 아침... 언제 잤는지 기억도 안난다. 눈을 뜨자말자 여행의 마지막이라는 걸 알았다. 오늘은 물론 하는게 없다. 그냥 빨리 챙겨서 제주 공항으로 가는 게 우리의 할 일. 오전 11시 비행기라 우리는 빨리 출발해야했다. 주현이가 몸이 괜찮아졌는지 배가 고프다고 그랬던 것 같다. 혼자 또 그 특유의 찡찡댐으로 사람을 짜증나게 했다... 쨋든 우리는 빨리 씻고 공항으로 갔다. 우리는 시간이 없어서 딱히 사진찍고 할 시간이 없었다. 우리는 티켓을 끊고 선물을 사러 면세점에 갔다. 시간이 없어서 막 둘러보고 하진 못했다. 면세점을 나와 이제 비행기를 타러 갈랬는데 대박... 홍진경님을 봤다!! 소진이랑 같이 걸어가다가 키 큰 홍진경처럼 보이는 사람을 보고 동시에 "어, 홍진경이다" .. 2017. 9. 7.
[여행] C-Bottom의 제주도 여행기 3일차 2017-08-30 C-Bottom의 제주도 여행이 벌써 3일차이다. 역시 놀때는 시간이 매우매우 빨리간다. 나는 일어나자말자 어제 아팠던 주현이와 홍기형의 컨디션을 물어봤다. 주현이는 여전히 아파보였고, 홍기형은 멀쩡했다 !! 우리의 오늘 목적지는 바로 우도!! 제주도하면 꼭 가야한다고 들었지만 지금 껏 한번도 가보지 못했다. 설렘을 안고 숙소를 나섰다. 우리의 첫끼는 지나가다 보인 해장국집-이층으로!!! 우리는 별 기대 없이 가게에 들어섰다. 아침이라 그런지 사람도 아무도 없었다. 우리는 4명씩 나눠 앉아서 메뉴를 시켰다. 잘 기억은 나지 않지만 5천원짜리 전복라면과 전복콩나물국밥을 시켰다. 비주얼은 일단 합격~ 맛은 대박이었다... 제주도에서 먹은 것 중에 최고라고 할 만큼 맛있었다. 위치는 정확히.. 2017. 9. 3.
[리버싱] CALL, JMP, RET(RETN) 명령어에 대해 알아보자 CALL 함수를 호출할 때 사용되는 명령어 오퍼랜드가 가리키는 곳으로 프로그램의 흐름이 변경됨 JMP와 차이점은 함수가 끝나고 다시 복귀할 수 있도록 EIP값이 변경되기 전에 기존의 위치를 스택에 저장함 다시 돌아올 때는 스택에서 해당 정보를 꺼내어 복귀함 JMP 오퍼랜드가 가리키는 곳으로 프로그램의 흐름이 바로 변경됨 EIP값이 저장되지 않아 다시 돌아올 수 없음 옵션에는 127byte 범위 내에서 점프하는 short 같은 세그먼트 내에서 점프하는 near 현재 세그먼트를 벗어나는 far RET(RETN) CALL을 통해 호출된 함수에서 다시 복귀하기 위해 사용하는 명령 스택에 저장된 정보를 기반으로 흐름이 바뀌는 것이기 때문에 의미상으로는 POP EIP와 동일하지만 EIP의 내용은 직접적인 수정이 안.. 2017. 9. 3.
반응형