반응형

전체 글 154

Lena Reversing - tutorial 07

Lena Reversing tutorial 07 이번 튜토리얼의 목적은 MrBills 프로그램을 크랙하는 것이다. 라이센스 등록을 해야 하는데 이를 우회해서 등록을 하도록 하는 것이 목적이다. 프로그램을 실행하면 다음과 같이 나온다. 처음 뜨는 창인데 무시해도 된다. 다음에 뜨는 창이 실제 동작하게 되는 프로그램이다. 상단에 프로그램 이름과 같이 Unregistered 라는 문자열이 보인다. 우측에 About 버튼을 누르면 다음과 같다. 프로그램에 대한 소개가 나온다. 우측 하단에는 Register... 라는 버튼이 보인다. 버튼을 누르면 다음과 같이 나온다. 이메일 주소와 라이센스 번호를 입력하도록 되어있다. 아무 값이나 넣고 Register Now 버튼을 눌렀다. 다음과 같은 오류 창이 뜨는 것을 볼..

Lena Reversing - tutorial 06

Lena Reversing tutorial 06 이번 튜토리얼의 목적은 Unregistered program을 registered program으로 크랙하는 것이다. 그럼 우선 실행해보자. unregistered 가 눈에 보인다. 아래쪽에는 15일 남았다는 문자열도 쓰여있다. 다음창은 그냥 Cancel을 눌러 넘어가자. 프로그램이 실행되었다. 상단에 Unregistered와 15일 남았다는 문자열이 보인다. Help 탭의 About을 들어가니 아래쪽에 Unregistered Version이 보인다. 이와 같은 문자열들을 없애거나 수정해 주도록 하자. Ollydbg에서 열고 문자열부터 수정해주자. 아무데서나 오른쪽 마우스를 누르고 Searech for -> All referenced text strings..

Lena Reversing - tutorial 05

Lena Reversing tutorial 05 이번 튜토리얼의 목적은 주어진 VisualSite Designer 프로그램 중 10번만 실행 할 수 있는 점을 고치고 프로그램 종료시 나오는 광고창이 뜨지 않도록 하는 것이다. 그럼 프로그램을 실행시켜 보자 첫 화면에서는 하단에 시도횟수가 10번 남았다고 나온다. Start Program을 눌러보자 프로그램이 실행 된 모습이다. 앞서 나온 창을 없애고 바로 위와 같이 실행되도록 바꾸어 주어야겠다. 프로그램을 종료시키면 다음과 같은 창이 나온다. 광고창으로 보인다. 다음의 창도 없애주도록 하자. 해당 프로그램을 Ollydbg에서 열어주었다. 실행 하여 Control + F8을 누르면 F8을 계속 누르고 있는 것 처럼 쭉 진행된다. 진행되다가 다음과 같은 Ca..

Lena Reversing - tutorial 04

Lena Reversing tutorial 04 lena reversing 네번째 튜토리얼이다. 이번 튜토리얼의 목적은 unregistered 상태인 프로그램을 Registed 된 것 처럼 바꾸어 주는 것이다. 우선 설치 exe 파일이 존재한다. 이 파일을 실행시켜 PixtopainBook 이란 프로그램을 설치 해 주자. 프로그램을 실행 시키면 다음과 같이 나온다. 다음과 같이 아무 값이나 넣어서 User를 생성해 주었다. 생성 후에는 다음과 같은 창이 뜬다. 바로 로그인 버튼을 눌러주었다. 로그인 후 프로그램의 메인 화면이다. unregistered version 이라는 글씨가 상단과 중간에 보인다. 상단의 Help -> About PixtopianBook... 을 누르면 다음과 같이 나온다. 여기에도..

Lena Reversing - tutorial 03_2

Lena Reversing tutorial 03 _ 2 이번엔 RegisterMe.Oops.exe 파일을 가지고 PE header를 고쳐보려고 한다. RegisterMe.Oops.exe 파일을 실행하면 이전 RegisterMe.exe 파일과 동일하게 실행된다. Ollydbg에서 실행시켜보면 다음과 같은 오류창이 나온다. 그 후에 내용을 살펴보면 익숙치 않은 내용들을 볼 수 있다. PE header를 보기 위해 상단의 M 버튼을 클릭한다. 이중 PE header 부분의 오른쪽 마우스를 눌러 Dump를 눌러준다. 내리다 보면 다음과 같이 AddressofEntryPoint와 ImageBase 값을 볼 수 있다. 두 값을 합친 주소가 시작하는 부분이라고 볼 수 있다. 따라서 00401000부분으로 이동한다. ..

Lena Reversing - tutorial 03_1

Lena Reversing tutorial 03 _ 1 lena reversing 튜토리얼 세번째이다. 이번 튜토리얼의 목적은 기본적인 NAG 창 제거와 PE 헤더 문제이다. 우선 이번 글에서는 NAG 창을 제거하는 것을 목적으로 해결해 보려고 한다. 파일을 실행시키면 다음과 같이 나온다. 세개의 메시지 창이 뜨는데 가운데 있는 창 이외의 앞 뒤에 나오는 창들이 여기서 NAG로 보면 된다. NAG는 '잔소리' 라는 뜻으로 잔소리를 없애보자! Ollydbg에서 파일을 열어보았다. 쭉 내용을 살펴보면 MessageBoxA 두개가 보인다. Text 부분을 살펴보면 NAG 창의 내용이라는 것을 확인 할 수 있다. 이 MessageBoxA 부분을 건너뛰거나 지우도록 해보겠다. 첫번째 MessageBoxA에 들어가..

Lena Reversing - tutorial02

Lena Reversing tutorial 02 lena reversing 튜토리얼 두번째이다. 이번 튜토리얼의 파일은 첫번째 튜토리얼과 내용이 같다. 이번 튜토리얼의 목적은 이전과 같이 성공 메세지를 띄우는 것이 아닌 파일에서 요구하는 키 파일을 생성하는 것이다. 파일을 열어보면 이전과 내용이 같다는 것을 알 수 있다. CreateFileA에서 Keyfile.dat 파일을 필요로 하고 있으니 해당 파일을 아무 값이나 넣어서 생성해 주었다. 그 다음 Ollydbg에 올려 F9를 눌러 실행하니 다음과 같이 나왔다. keyfile은 인식했으나 유효하지 않은 것으로 보인다. F8을 눌러가며 진행하니 402173의 메모리주소와 16진수 10을 비교하고 있다. 그래서 402173의 메모리 주소를 가보았다. 402..

Lena Reversing - tutorial01

Lena Reversing - tutorial 01 리버싱을 공부하기에 좋은 튜토리얼이다. 총 1강부터 40강으로 구성되어 있으며 파일 다운로드와 강의는 다음의 주소에서 다운로드 가능하다. (다운로드 : https://forum.tuts4you.com/files/file/1307-lenas-reversing-for-newbies/) 그럼 첫번째 튜토리얼을 시작해보자. 다운받은 파일에는 강의파일도 포함되어 있다. 강의를 보면서 풀어도 좋으나 처음엔 무작정 시도해보자 파일은 reverseMe.exe 파일이다. Ollydbg로 파일을 열어보았다. F9 버튼을 눌러 그냥 실행해보니 다음과 같은 창이 뜬다. 새로운 라이센스를 구입하라는 창이 뜬다. 그럼 이제 다시 control + F2를 눌러 다시 실행시키고 F..

백준 1436번 영화감독 숌

백준 1436번 영화감독 숌 문제이다. 문제는 다음과 같다. 숫자 N이 주어지게 되면 N번째 666이 들어간 숫자를 찾으면 된다. 브루트포스 유형의 문제이기 때문에 숫자를 하나씩 모두 확인해주자 666이 가장 먼저 나오는 숫자는 666이기 때문에 666부터 시작하여 모든 숫자를 확인하고 666이 들어있다면 count를 1 씩 증가하여 입력값인 N과 같은 값이라면 해당 값을 출력하도록 만들어 주었다. 언어는 C++을 사용하여 프로그래밍 하였다. #include #include using namespace std; int main(){ std::ios_base::sync_with_stdio(false); int n; std::cin >> n; int a = 666; int count = 0; while(1)..

백준 1018번 체스판 다시 칠하기

백준 1018번 체스판 다시 칠하기 문제이다. 문제는 다음과 같다. M*N의 색깔이 칠해진 판이 주어지고 해당 판에서 8*8의 구간을 골라 체스판을 만드는데 체스판은 흰색과 검정색이 번갈아 나오는 체스판을 만들어야 한다. 가장 적게 칠해서 체스판을 만드는 경우 몇번만 칠하면 되는지를 구하는 문제이다. 브루트포스 유형의 문제이기 때문에 하나하나 확인해 보도록 한다. 체스판은 8*8의 크기이고 해당 크기로 주어진 판에서 자를 수 있는 모든 경우를 확인해보자 언어는 ruby를 사용하여 프로그래밍 하였다. def find1(arr, m, n) result = 64 for i in 0...m-7 for j in 0...n-7 count = 0 for k in 0...8 a = k % 2 for l in 0...8..

반응형