매우 간단한 예제니 중요한 부분만 집고 넘어가자.





체크 버튼을 눌렀을 때 실행되는 루틴인데 메모리상에 그려진 비트맵과 리소스로 읽어들인 비트맵을 비교하는 루틴이다.


처음엔 이 루틴을 넘어가면 해결이 되는 건가 싶었으나, 루틴을 통과해도 프로그램에는 아무런 변화가 없다.


해서, 해답 키는 리소스 안에 그려져 있을 거라는 생각이 들었다.


처음엔 리소스내용을 프로그램에 띄어볼까 했는데 코드 인젝션까지 하는 건 너무 번거로운 작업이 될 것 같아 리소스 데이터만 추출하기로 했다.


먼저 헥스에디터로 bmp 파일 헤더와 이미지 헤더를 복사해 넣고 리소스 데이터를  뒷부분에 넣어준다. 



방금 그림판이 만들어낸 비트맵 헤더다.

42 4D - BM (비트맵 파일 헤더의 첫 시작 PE 포맷의 PE와 같은 의미다.)

36 B8 0B 00 (헤더까지 합친 파일의 총 크기, 비트맵을 복원할땐 사용되지 않는다.)

00 00 (예약)

00 00 (예약)

36 00 00 00 (실제 이미지 데이터의 시작 오프셋)

28 00 00 00 (이미지 헤더의 크기)

80 02 00 00 ->  Width 값

90 01 00 00 ->  Height 값

01 00 18 00 00 00 00 00 00 B8 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00


이 헤더를 그대로 쓰면 이미지를 불러올수 없으니 Width 와 Height 를 수정하자 


80 02 00 00 -> C8 00 00 00 (ImagePrc에서 사용하는 이미지 Width)

90 01 00 00 -> 96 00 00 00 (ImagePrc에서 사용하는 이미지 Height)


헤더 수정이 끝나면 리소스에서 긁어온 이미지 데이터를 헤더 뒤에 붙여넣자.


그럼 정상적으로 bmp 이미지를 불러올 수 있고


그곳엔 키 값이 적혀있다.




'취미 > WarGame' 카테고리의 다른 글

[reversing.kr] Ransomware  (0) 2015.02.24
[reversing.kr] Direct3D FPS  (1) 2015.02.24
[reversing.kr] Position  (0) 2013.10.30
[reversing.kr] replace  (0) 2013.10.25
[reversing.kr] Easy_UnpackMe  (0) 2013.10.24
Posted by $Zero
:

회사에서 마이그레이션 테스트 서버를 만들기 위해 CentOS 6.5를 설치하던 중 만난 에러. 


이미지 파일을 Unetbootin 으로 USB에 풀고 설치시 발생.


해결법 -> 


USB에서 /repodata/TRANS.TBL 파일을 열어보면 해당 repodata폴더에 있는 파일들의 리스트와 명칭이 다르다.


/repodata 밑에 있는 md5 해쉬 값으로 된 파일 명들을 모두 TRANS.TBL 에 들어있는 목록과 일치하도록 rename 을 한 뒤 다시 설치를 시도하면 에러 없이 정상적으로 설치가 진행 된다. 




Posted by $Zero
:

삼바를 외부에서 사용하기 위해서는 서버와 139 포트로 연결이 가능해야 한다. 


삼바를 외부에서 사용하려고 할 때 몇가지 문제가 있는데, 


첫째로 윈도우는 기본적으로 139포트외에 다른 포트로 변경할 방법이 없다. 

(심지어 해당 서비스의 포트포워딩도 프로그램을 해킹하지 않는 이상 불가하다.)


둘째, 139포트는 웜바이러스가 기승을 부리던 포트라 어지간한 통신사는 라우터 자체에서 해당 포트의 사용을 막아버렸다. 


웜바이러스와는 거리가 먼, 리눅스 및 유닉스 사용자는 억울하기 그지 없는 처사다. 


그래도 다행인건 리눅스 및 유닉스는 삼바연결시 포트를 마음대로 바꿀 수 있다는 점이다. 


해서 리눅스와 유닉스는 외부에서 삼바를 사용하는 것이 크게 문제가 되지 않는다. 

단지 서버쪽 포트를 기본139가 아닌 8888과 같은 임의의 포트로 변경하고 클라이언트에서도 8888포트로 연결해서 사용하면 된다 


가장 큰 문제는 사용률이 가장 높은 윈도우에서 발생한다. 


서버측에서 포트를 변경한다 한들 윈도우즈의 네트워크 드라이브는 139포트 밖에 사용할 수 없기에 연결을 할 수가 없다. 


아직까지 내가 아는 방법은 2가지 뿐이다. 


1. 통신사측에 139포트를 열어달라고 요청하든지


2. 꼼수를 부려 윈도우즈의 139 포트 출력을 다른 포트로 포워딩 시키는 것이다. 


일반적으로 포트 포워딩은 들어오는 패킷의 포트를 내부 PC의 다른 포트로 받아들이는 것인데 


이와 반대로 내부 PC가 외부로 패킷을 보낼때 원본 패킷의 포트를 뜯어 고치는 것이다. 


윈도우즈입장에서는 139포트로 연결을 요청하면 중간에 프록시와 같은 프로그램이 연결을 가로채 139포트를 8888포트로 변경해서 외부로 보낸다고 이해하면 되겠다.


매우 귀찮고 번거롭지만 윈도우즈에서 별다른 방법이 없다. 


이 방법 역시 서버측 포트는 139가 아닌 다른 포트를 사용 해야한다. 

(139는 통신사에 의해 막혀있으므로..)



http://devbug.me/412 (해당 유틸과 사용법)





Comicglass SMB 사용 - 2016-05-30 작성 -


정말 오랜만에 SMB를 사용할 일이 생겼다.


ComicGlass의 SMB를 이용하여 내 방에 있는 NAS를 스트리밍하려고 한 것인데,


139포트가 통신사에 의해 막혀있다는 사실을 망각한 채 외부에선 왜 오류가 나지라는 의문으로 하루를 보냈다. -_-


공유기를 연결하여 포트포워딩으로 8888포트를 사용하게 했건만..


ComicGlass가 포트변경을 지원하지 않는 것 같다.

URL에 :8888을 넣어도 아무런 반응이 없다.


보안에 영 찝찝해서 잘 안쓰지만 별 방법이 없을 것 같다.


공유기의 VPN 서버를 활용하는 수 밖에...


공유기의 VPN 서버를 경유 하니 NAS에서 오픈한 SMB서버에 접속이 매우 잘 된다.


VPN서버를 열어둔다는 게 매우 찝찝하지만.. 별 방법이 없으니 - -










Posted by $Zero
: