핸드레이 연습을 하려고 흔히 돌아다니는 문제 Easy_Crack을 가져와봤다 일단 OLLY에 올려보자 텍스트 입력부분을 생략하고 바로 비교문으로 왔다cmp비교문이 먼저 보인다 esp+5를 찾아가보면 내가 입력한 두번째 문자에 도달한다 그리구 00406078에 5y가 push됨 이후 test비교문이 나오는데 함수에 들어가보진 않았지만 "5y"문자열을 비교하고 같으면 eax에 0을 반환하는거 같다 이부분은 돌려보면서 esi와 eax를 따라가보니 입력한 5번째 문자부터 R3versing과 하나씩 비교한다보면 ds:[eax]와 ds:[esi]를 2씩 add하며 비교하는 것을 알 수 있다 마지막으로 입력한 첫번째 문자를 E와 비교하고 아래에는 성공과 실패 메세지를 띄워줌 결론적으로 정리해보면 이정도인듯 하다c언어..
분류 전체보기
호다닥 코드를 짜고리버싱 입문책의 가장 앞에있는 문자열 패치를 해보자 경고가 뜨길래 보니까 EP가 code section 영역 밖에있을때 뜬다고 한다컴파일을 Debug가 아닌 Release로 하고 Release폴더에 있는 실행파일을 올리면경고가 ㅅ ㅏ라진다근데 사실 크게상관없다 올리에 올린다고 당연히 원하는 메인함수 어셈이가 바로뜨진 않는다메인함수를 찾자 [F8]로 진행해보다가 친절하게 main이라고 적혀있길래 bp걸고들어가보니 OFFSET값이 PUSH되고 printf함수가 호출되는걸 볼수 있다stack window로 ㄱ ㅏ보니 현 esp에 오프셋값이 있당Dump window에서 오프셋값으로 주소를 검색해보니 hello world!바꿔준다 짠 modify한 실행파일을 저장하고싶으묜 우클릭->copy to..
32비트 실행파일(.EXE)을 올리디버거에 올리면 위와 같은 화면이 나온다.왼쪽 위부터 시계방향으로 code window register window Dump window stack window code window디버깅에 기본이 되는 디스어셈블 코드가 표시됨어셈블리어 코드를 수정할 수도 있음jump로 이동되는 주소로 선이 이어지고, 오른쪽엔 주석이 표시됨break point를 걸 시 주소에 빨간마크가 새겨짐 register windowcpu 레지스터들이 표시됨일부 레지스터는 수정도 가능 Dump window메모리에 적재되어있는 raw hex값이 표시됨아스키코드값으로도 표시되며 수정도 가능하다 stack windowesp가 가리키는 스택메모리 공간을 표시해줌 다음은 내가 올리를 사용하여 디버깅을 할때 주..
정적 분석일반적으로 런타임환경에서 수행되지 않는다. 프로그램 코드에서 가능한 모든 런타임동작을 검사하고 코딩 결함, 잠재적인 악성 코드를 찾는다.기본적으로 어셈블리어 언어에 대한 공부가 필요하며 잘 알려진 디스어셈블 툴로 ida가 존재함 정적 분석은 동적 분석에서 나타나지 않을 미래의 오류를 먼저 찾을 수 있다 동적 분석프로그램을 실행시키며 나타나는 변화를 체크하며 분석하는 것시스템 메모리, 응답 시간과 같은 시스템의 전반적인 성능을 모니터링 동적 분석은 정적 분석을 통해 알기 힘든 미묘한 결함이나 취약성을 드러낼 수 있으며 보다 편한 방법일 수 있다. 하지만 동적 분석에서는 실제로 실행되는 코드 부분에서만 결함을 찾는다는 단점이 있다.
sql 인젝션에 이해가 부족한 것 같아서los를 다시 찾았다문제가 추가되어있넹 기존 los서버가 없어지고 새로운 서버로 옮겨진듯 하다주소는 los.rubiya.kr 그리하여 첫번째 문제.. gremlin딱히 필터링이 없기에 간단한 or인젝션을 넣어준다
17번, 들어가면 체크박스가 보이고 아무 값이나 넣어보면 wrong이 뜬다 소스코드를 보니 생각할게 없다계산해준다 unlock도 구하고 Auth할 password도 구해본다 체크박스에 unlock값을 넣으면 unlock/10인 password가 나온다
15번 문제를 들어가보니 이렇다 아무키나 눌러보니 작은 별이 랜덤색으로 추가되고마우스를 올리면 별들이 삭제된다 코드를 보쟈 보아하니 mv함수가 아스키코드 기반의 event.keyCode로 되어있어 각 숫자의 아스키코드 문자들을 클릭해봤다 그중 124에 해당하는 | 을 눌러보니 짠