본문 바로가기

리버싱19

리버싱 13 [2024.08.27]   오늘 실습 시작은 crackme7으로 진행한다7도 역시 시리얼 넘버를 입력하는 창이 나타난다  아무것도 모르는 상태에서 시리얼 넘버를 알 수는 없기 때문에Strings과 함수를 찾아봐야 된다현재의 경우 함수를 출력하는 곳에서 CmpEq와 CmpMe 두 개를 발견했다  그 외의 나머지 것들은 참고할 것이 없었기 때문에 넘어갔다  아까의 Cmp의 두 번째 함수로 이동 후 실행시켜 test와 1234를 입력한다  그런 다음 실행시키게 되면  아래의 스택에서 내가 입력한 값과 그 아래에 바로 UMICODE로 시리얼 넘버로 추정되는 값이 확인된다  그렇기 때문에 다시 새로고침 후 test와 41504641의 값을 넣고  이번에는 첫 번째 Cmp 함수에서 시작해 본다  Registered.. 2024. 8. 27.
리버싱 12 [2024.08.26]   지난 시간에 crackme4까지 진행했기 때문에 오늘은 바로 crackme5로 진행한다항상 코드를 실행하기 전에 이렇게 String 함수를 확인하면 좋다   어떤 입력 화면이 나오는지 확인하기 위해 한 번 실행을 진행했다4와 비슷하게 시리얼 넘버를 입력하라는 화면이 나타난다  그런 다음 String 함수에서 확인했던 성공 메시지 근처로 이동했다하지만 브레이크 포인트의 경우 성공 메시지에 두면 안 된다Well done의 경우 이미 성공한 명령문이기 때문에 위의 Error를 해석하고 출력할 수도 있기 때문이다그렇기 때문에 위에 비교문이 있고 비교문을 바탕으로 현재 CMP에 브레이크 포인트를 걸어야 정상 출력을 할 수 있다  수강생 중에서 한분이 먼저 정답을 알아낸 후 공개한 시리얼.. 2024. 8. 26.
리버싱 11 [2024.08.23]   지난 시간에 이어 crackme2를 복습하고 있다현재 UMICODE "D8C9D7D8" 부분에서 처음의 D8과 끝부분의 D8의 규칙성을 알아야 된다  현재의 화면에서도 알 수 있듯이 처음 부분과 끝부분의 규칙성 부분을 공부하면 좋다   이번에는 crackme3의 실습을 진행한다먼저 파일을 열고 실행을 하게 되면 해당 화면과 같이 keyfile이 없다고 나타난다여기에서 확인을 눌러야 다음 실행 명령어로 넘어갈 수 있기 때문에 확인을 눌러 준다  현재 해당하는 파일이 없기 때문에 당연하게 파일이 없다는 화면이 나타났다   함수를 확인했을 때 두 함수를 찾아볼 수 있었는데,이렇게 모르는 함수가 있다면 찾아서 확인해 보는 것이 가장 정확하다현재로서 CreateFileA 함수는 파일을 .. 2024. 8. 26.
리버싱 10 [2024.08.22]  Windows에서는 기본적으로 강한 악성코드의 경우 계속 삭제되는 경우가 있어레지스트리 편집기에서 설정을 진행해야 된다HKEY_LOCAL_MACHINE > SOFTWARE > Policies > Microsoft > Windows Defender로 접속한다  다음으로는 빈 화면에서 새로 만들기 > DWORD(32비트) 값(D)를 선택한다  이름을 DisableAntiSpyware로 설정하고, 값 데이터를 1로 지정한다  그렇게 되면 악성코드를 다운로드받을 때도 그대로 계속을 눌러 다운로드를 진행할 수 있게 된다  레지스트리 편집기로도 설정 시에도 윈도우에 의해 파일이 계속 사라지는 경우가 있다그럴 때는 추가 설정을 할 수 있는데 이번에는 로컬 그룹 정책 편집기에 들어가서관리 템플.. 2024. 8. 23.
리버싱 9 [2024.08.21]  해당 화면의 경우 홀수 값을 출력하여 1, 3, 5, 7이 출력되는 코드다  현재 화면에서의 AND 연산자는 실제로 AND 연산자의 역할을 하지 않는다곱하기로 생각하면 안 되고, 1인지 0인지를 가려내는 명령어로 해석하면 된다현재의 경우 오히려 TEST에서 AND 연산자를 사용한다고 보면 된다 TEST 연산자의 경우 Zero Flag에만 영향을 끼친다멀티 플라이는 10진수 헥사값and는 비트 연산자라고 생각하면 된다 그렇기 때문에 현재 화면에서는 짝수의 2, 4, 6, 8을 차례대로 출력하게 된다   local 1은 합산, local 2는 조건을 정하는 것이다현재 local2의 조건으로 설정된 것이 5다  그렇기 때문에 sum의 값 10과 5를 더한 값 15가 출력된다   현재의.. 2024. 8. 21.
리버싱 8 [2024.08.20] [Swtich문]    오늘 실습은 switch문을 생성하여 진행한다원래라면 Information Sercurity가 출력되어야 하지만 코드를 조작하여 값을 변경할 수도 있다  먼저 첫 번째로 CMP EAX,1로 되어 있는 것을 2로 변경시켜 값을 임의로 조작했기 때문에점프문에서 바로 151D로 넘어가고 CALL을 하게 되면 Thank you가 출력된다  두 번째로 MOV 명령어에서도 값을 1이 아닌 2로 변경시켜 주면 Thank you를 출력하게 된다  JLE의 경우 비교 결과가 작거나 같을 때 점프하는 명령어로,이 명령어는 두 값이 같은 경우에 특정 위치로 점프하는 명령어기 때문에 JE로 변경시킨다변경시키면 마찬가지로 Thank You를 출력한다  마지막으로 Zero Flag를.. 2024. 8. 20.