![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/vh4Np/btqwpnRvgrR/lLoD0yKmQe08bzAdFsgcs0/img.png)
우선 dll을 OllyDBG에 올린후, Debugging options에서 Break on new module (DLL)을 설정한다. 그렇게 F9를 통해 진행하다보면 내가 원하는 DLL이 올라오는 순간이 있다. 그 때 그 주소를 찾아가서 원하는 주소를 찾는다. ( 여기서는 스트링 탐색 기능을 사용했다. ) 그리고 내가 바로 넘어가고싶은 함수의 시작부에 New Origin here을 설정한다. 그러면 아래 사진과 같이 EIP가 해당 함수로 넘어오는 것을 확인할 수 있다. x64dbg에도 "여기를 새로운 원점으로지정" 이라는 옵션이 존재한다. 결과적으로 dll만으로는 접근할 수 없었던 포인트에 접근해 Key값을 찾아낼 수 있었다.
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cZ3iMO/btqwpmydtqh/PU9TFljewhX4HImOTarxg1/img.png)
다운로드를 받아보자 ~ 음 확장자가 숨겨져있다. 역시 이럴땐 만만한게 메모장!! 메모장으로 열어서 내용을 확인해보니 Request 등등의 패킷정보가 있다. 패킷파일이라고 의심되어 와이어샤크로 해당 파일을 열어봤다. 정확했다. 패킷들을 Export하고 확장자를 땐 파일이였다. 살펴보니 TCP 통신에 대한 패킷들이 있어서 stream별로 분리해서 살펴보았다. PNG라고 보이는가? 뭔가 다운로드 받는 모양이여서 해당 패킷들의 내용을 Export한 후 살펴보기로 했다. File-Export Objects-HTTP를 사용해 파일을 Exports 하려고보니 index.html도 보이고 해서 그냥 전부다 Export 해버렸다 !! 그리고 난 후 index.html을 눌러 내용을 확인해봤다. 이런 형태의 html이 나..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/2FAMy/btqwmudog35/kPmovpa2GyyhknYzBSzQo1/img.png)
소스코드가 나와있으므로 소스코드를 우선 확인해 보았다. 핵심 PHP 코드를 변수명만 바꿔 보았다. 코드를 살펴보면 COOKIE에서 c라는 이름을 가진놈의 value를 $a에 저장하고, GET 파라미터로 넘어온 g라는 이름을 가진놈의 value를 $b에 저장하고, POST 파라미터로 넘어온 p라는 이름을 가진놈의 value를 $c에 저장하고, $b . $a 를 통해 하나로 이어서 $d에 저장. $c를 $e에 저장. 함으로써 준비를 마친다. test함수를 살펴보면 각문자를 ASCII Code로 바꾼 뒤 사이사이에 - 문자를 넣은 문자열로 리턴해준다. 즉 비교 구문에 있는 문자열은 해당 ASCII Code로 다시 변경한 뒤 비교해주면 될 것 같다. 변경해보니 $d == 'givemepassword' || $e..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.