문명 5 로컬연결(LAN) 안될 때

Posted 2014. 8. 27. 07:31

IP 대역이 사설망이여야 된다.

아니면 게임 개최를 해도 방이 보이는데 접속이 안된다.

회사나 학교의 경우에는 IP 대역이 서로 로컬이여도 사설망 IP대역이 아니여서 되질 않는다.

따라서 공유기를 쓰든지 아니면 연결할 PC들의 IP를 서로끼리 통신되게 사설 IP로 바꿔주면 된다.

(정상적인 인터넷은 사용 불가)

192.168.A. XX

위와 같이 바꿔주면 된다. 보통의 경우에 같은 공간이면 IP만 바꿔도 잘 됨


ex)  아이피 설정

* PC1 

ip : 192.169.1.10

subnet : 255.255.255.0

게이트웨이 안적어도됨


* PC2

ip : 192.169.1.11

subnet : 255.255.255.0

게이트웨이 안적어도됨


* PC3

ip : 192.169.1.12

subnet : 255.255.255.0

게이트웨이 안적어도됨



cmd 결과 복사

Posted 2013. 7. 9. 02:30

cmd 창에 명령어 입력시 쉽게 결과값을 복사하는 방법이 있다.

명령어를 쓰고 |copy 를 써주면 된다.

 

ex> ping 127.0.0.1 |clip

 

붙여넣기:


Ping 127.0.0.1 32바이트 데이터 사용:
127.0.0.1의 응답: 바이트=32 시간<1ms TTL=128
127.0.0.1의 응답: 바이트=32 시간<1ms TTL=128
127.0.0.1의 응답: 바이트=32 시간<1ms TTL=128
127.0.0.1의 응답: 바이트=32 시간<1ms TTL=128

127.0.0.1에 대한 Ping 통계:
    패킷: 보냄 = 4, 받음 = 4, 손실 = 0 (0% 손실),
왕복 시간(밀리초):
    최소 = 0ms, 최대 = 0ms, 평균 = 0ms

 

이렇게 복사됨,

 

굿.

 

분명 어딘가엔 유용할 꺼라 생각함.

'기타' 카테고리의 다른 글

Samba 설치하기  (0) 2014.11.21
문명 5 로컬연결(LAN) 안될 때  (0) 2014.08.27
Windows 8 (Internet Explorer 10) 한국장학재단 출근부 입력 안될 때  (8) 2013.02.27
XE ftp 오류  (0) 2012.08.13
아파치 인증 (apache2)  (1) 2012.07.06

Codegate 2013 bin 200 write up ...?

Posted 2013. 3. 8. 21:07

문제에 딱히 설명은 없었다.

 

파일을 받고 열어보면 실행이 제대로 되지 않을 때가 있는데 관리자 권한으로 실행시켜야 한다.

 

실행하면 드라이버 이름을 입력하라고 나온다,,

 

 

 

하지만 아무거나 입력해도 딱히 변하는 값은 없고 맨 마지막에 나오는 Message 값만 다르게 나온다.

 

 

 

그리고 중간에 보면 위와 같은 내용이 보이는데 이 값을 Base64 디코딩 하면 뭔가 나올 것 같아서 해봤는데 안됬다.

 

올리디버거로 메인부터 살펴보면

 

 

이런 부분을 발견할 수 있다.

 

이때 부터 두근두근 하면서 혹시 ????를 바뀌는 부분이 있을까,,하고 찾아봤는데 못찾겠다;;;;

 

그래서 이번에는 입력값에 따라 달라지는 Message 값을 추적해 봤다.

 

 

 

 

먼저 입력 값을 compress 해준다.

 

그 다음에 base64? 는 아니지만 뭔가 비슷한 걸로 인코딩 한 뒤에 출력한다.

 

다시 그 함수를 들어가면........ 잘 모르겠다....

 

그래서 그냥 한번 쭈~~~욱 훑어보던중

 

 

이런 부분이 있었는데 마치 Base64 에서 보던것과 뭔가 비슷해 보였다,,,

 

(아래가 Base64의 인코딩 테이블이다..)

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/

 

따라서 루틴은 아래와 같다.

 

입력값 -> compress -> Base 인코딩

 

그래서 인코딩 테이블을 바꾼뒤 Base 디코딩을 한 뒤에 zlib를 사용해서 uncompress() 해주면 Key 가 나온다.

 

 

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "..\..\zlib127\zlib-1.2.7\zlib.h"

//변환할 문자열
char str[] = "8pFHHoMssjtoucpX4EdPgcrdzuKXgEFV7iNur4YzDrOdfyNOA/bp7lX=";

//Base64 테이블
char table[]="QwErTyUiOpAsDfGhJkLzXcVbNm0246813579qWeRtYuIoPaSdFgHjKlZxCvBnM+/";


int find_index(char a);      // base64 인덱스 찾아줌
void dec2bin(char *src, int a, int pos); // 10진수를 2진수로 (pos는 반환할 자리수)
int bin2dec(char *a);      // 2진수 문자열을 10진수로 반환

int main()
{
 int i, j = 0, index;
 char bin[1000] = {0,}, tmp[10];
 Bytef compressed_str[1000], uncompressed_str[1000];
 uLongf len = 1000;

 //Base64 -> bin  base 인코딩을 6자리 2진수 나열로 변환
 for(i = 0; str[i] != '\0' && str[i] != '='; i++)
 {
  index = find_index(str[i]); //base64테이블에서 index 찾아옴
  dec2bin(tmp, index, 6);  //2진수를 6글짜로 리턴
  strcat(bin, tmp); 
 }

 //bin -> char 나열된 2진수를 8자리 단위로 분리하여 변환
 for(i = 0; i < strlen(bin); i += 8)
 {
  memset(tmp,0,10);
  memcpy(tmp, bin+i, 8);
  compressed_str[j++] = bin2dec(tmp);
 }
 compressed_str[j] = '\0';

 //uncompress
 uncompress(uncompressed_str,&len, compressed_str,1000);
 
 //print
 printf("%s\n", uncompressed_str);
 return 0;
}

int find_index(char a)
{
 int i;
 for(i = 0; i < 64; i++)
 {
  if(table[i] == a)
   return i;
 }
 printf("error\n");
 exit(1);
}
void dec2bin(char *src, int a, int pos)
{
 int i, k = 1;
 
 for(i = 0; i < pos-1; i++, k*=2); 

 for(i = 0; i < pos; i++,k /= 2)
 {
  if(a & k)
   src[i] = '1';
  else
   src[i] = '0';
 }
 src[i] = '\0';
}
int bin2dec(char *a)
{
 int i, k = 1, result = 0;

 for(i = strlen(a)-1; i >= 0 ;i--, k*=2)
 {
  if(a[i] == '1')
   result += 1*k;
 }
 return result;
}

 

http://zlib.net/zlib127.zip 

 

위 링크에서 zlib를 받으면 많은 .h 파일과 .c 파일이 있을 것이다.

거기서 모든 .h 파일과 .c 파일을 프로젝트에 포함시킨 다음에 zlib.h 의 위치를 찾아서 include 시켜주면 uncompress 를 사용가능하다.

 

아래 첨부파일은 Visual Studio 2012 로 만든 프로젝트다..

 

ConsoleApplication2.7z

 

(zip은 용량이 10MB가 넘는데 7z 5MB 라니..)

 

허접한 write up ㅈㅅ

윈도우8 로 바꾸고 나서 한국장학재단 홈페이지에서 아래와 같이 출근부를 입력할 때 아무것도 나오지 않는 현상이 생겼다....

 

몇일동안 텅텅빈 공백때문에 고생좀 했다..

 

한국장학재단에서 IE 10에 대한 호환성이 좋지 못해서이다.

 

 

언젠간 한국장학재단 홈페이지를 업데이트 하겠지만 일단 해결방안은 일시적으로 브라우저 모드를 IE 9로 바꿔주면 된다.

 

IE 에서 [도구] - [F12 개발자 도구(L)]  누르거나 F12를 눌러서 개발자 도구를 실행한다.

 

그 뒤에 [브라우저 모드]에서 Internet Explorer 9(9) 를 선택한다.

 

 

 

 

위 화면에서 Internet Explorer 9(9)를 선택하면 출근부 입력화면이 제대로 나온다

 

.

 

 

'기타' 카테고리의 다른 글

문명 5 로컬연결(LAN) 안될 때  (0) 2014.08.27
cmd 결과 복사  (0) 2013.07.09
XE ftp 오류  (0) 2012.08.13
아파치 인증 (apache2)  (1) 2012.07.06
시쿨리(sikuli) 스크린샷이 안될 때  (0) 2012.06.07

XE ftp 오류

Posted 2012. 8. 13. 12:15

XE 에서 업데이트 할때 쉬운 설치를 하는데 아래와 같은 오류가 날 때가 있다.

 

msg_ftp_upload_failed

 

여러가지 이유가 있지만 나한테 발생한 이유는 root 의 ftp 계정으로 했는데 root 폴더에서 상위폴더로 벗어나지 못해서 그랬다.

 

보안상으로 상위 폴더를 넘어가는 것을 막아 놓은 것이다. 


예를들어 create32 계정을 /home/create32 폴더로 ftp 를 한정 시켜 놓으면 그 폴더의 상위로는 갈 수 없다.


따라서 ftp 설정 파일에서 상위폴더 이동 제한을 풀어줘야 한다.

 

그런데 ftp 라고 해서 다 같은 ftp 는 아니고 ftp 도 종류가 또 있는데

proftp

vsftp

wu-ftp

등등..

각각 다 설정 파일의 이름은 다르니;;;

ex) vsftp - vsftpd.conf

 

locate 명령어가 다 있는건지는 모르겠으나 나는 locate *ftp*.conf 로 파일을 찾았다.


각자 찾아서 설정을 바꿔야 한다. 


chroot_local_user=YES

 

이 부분을 NO 로 바꿔주고 재시작을 해준다.

 

service vsftpd restart

 

다음으로 XE 관리 페이지에서 [ftp 설정]에서 위치를 다시 잡아주면 끝난다.

 

그리고 보안상 다시 YES 로 해주는게 좋겠다;;;

 

아니면 chroot_list_enable=YES 이 설정으로 해당 user 를 제한시켜 놓는 것도 방법도 있다고 한다.

 

나도 잘 모르니 패쓰 .

 

 

 

아파치 인증 (apache2)

Posted 2012. 7. 6. 14:06

권한 제한을 걸 폴더에 .htaccess 파일을 만들어 놔야되는데 아파치에서 .htaccess 파일을 인식하게 하기 위해서는

아래와 같은 작업이 필요하다.

 

vi /etc/apache2/sites-available/default

 

 

 

저부분을 None 에서 All 로 바꿔준다.

 

그리고 .htaccess 파일을 만들어준다. 먼저 권한인증을 할 폴더에 파일을 만든다.

 

ex)

vi  /var/www/secret/.htaccess

 

내용은 아래와 같이 해준다. (수정할 부분은 수정해도 된다.)

 

AuthUserFile /권할설정할폴더/.htpasswd

AuthGroupFile /dev/null
AuthName "인증창에 뜨는 말"
AuthType Basic

<Limit GET POST OPTIONS>
require valid-user
</Limit>

 

ex)

AuthUserFile /var/www/secret/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic

<Limit GET POST OPTIONS>
require valid-user
</Limit>

 

다음으로 .htpasswd 파일을 만들어야 한다.

 

htpasswd -c /경로/.htpasswd 계정이름

ex)

htpasswd -c ./.htpasswd admin

 

-c 를 붙이는 이유는 새로 만들기 할때 붙인다.

-c 를 안붙이면 새로 안만들고 기존에 있는 파일에 붙여넣기 된다.

 

그리고 apache2 재시작을 해준다.

service apache2 restart

 

여기서 [ OK ] 가 떴다고 다 된게 아니다.

 

 

* Restarting web server apache2                                                               

apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
 ... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

 

 

혹시 이런 비슷한 에러가 난다면

vi /etc/apache2/httpd.conf 파일에 아래 내용을 추가해 준다.

추가할 내용:

ServerName localhost

 

그리고 재시작을 해준다.

service apache2 restart

 

 

 

 

 

 

 

 

'기타' 카테고리의 다른 글

cmd 결과 복사  (0) 2013.07.09
Windows 8 (Internet Explorer 10) 한국장학재단 출근부 입력 안될 때  (8) 2013.02.27
XE ftp 오류  (0) 2012.08.13
시쿨리(sikuli) 스크린샷이 안될 때  (0) 2012.06.07
IP 자동으로 바꿔주기  (0) 2012.05.25

시쿨리를 설치하고 안될때

 

내 컴퓨터에서는 화면 캡쳐를 하면 시쿨리가 꺼지는 버그? 가 있었다.

 

프로세스에는 남아있지만 꺼지듯이 있었다,

 

그리고 다른 많은 컴퓨터로 해봤지만 모두 같은 현상 이였다.

 

그러다가 되는 컴퓨터를 찾아서 환경을 맞춰 보았다.

 

그 컴퓨터는 java jre6 만 설치되어 있었다.

 

내 컴퓨터 및 다른 컴퓨터를 확인한 결과 모두 jre7이 돌아가고 있었다.

 

그래서 jre7을 지우고 jre6을 했는데도 실행이 안됬다..

 

알고보니 java 설치 폴더가 Path 설정된 줄 알았더니 C:\Windows\System32 폴더에 있는 java 실행 파일이 돌아가고 있었다.

 

그래서 jre6 을 설치한 후에  C:\Program Files\Java\jre6\bin 폴더에 있는 javaw.exe 파일을 복사한 뒤에

 

C:\Windows\System32 에 덮어 씌워주면 된다. 그래도 안되면 java.exe 파일도 넣어본다

 

===================================================

정리.

 

시쿨리는 jre 6 버전과 호환이 된다. 따라서 jre6 을 설치해야 한다.

 

하지만 이미 jre7을 설치했을경우 jre7이 우선순위로 실행될 수 있기때문에 jre6으로 실행하게끔 따로 설정을 해줘야 한다.

 

jre6 설치후 환경변수 Path 맨 앞에 jre6 설치폴더 안에 있는 bin 폴더를 넣어준다.

 

예시)

윈도우키+break키 ==> 고급 시스템 설정 ==> 환경변수 ==> 시스템 변수의 Path 편집 ==> 맨 앞에 C:\Program Files (x86)\Java\jre6\bin 을 추가해 준다.

 

잘모르겠으면  Path 설정하는 방법을 찾아보자

 

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

 

'기타' 카테고리의 다른 글

cmd 결과 복사  (0) 2013.07.09
Windows 8 (Internet Explorer 10) 한국장학재단 출근부 입력 안될 때  (8) 2013.02.27
XE ftp 오류  (0) 2012.08.13
아파치 인증 (apache2)  (1) 2012.07.06
IP 자동으로 바꿔주기  (0) 2012.05.25

IP 자동으로 바꿔주기

Posted 2012. 5. 25. 10:25
만약 노트북을 들고다니는데 집에서는 IP 자동할당을 하는데 회사나 학교에서는 고정 아이피를 쓰게 되는 경우(또는 반대의 경우)

어뎁터 설정에 들어가서 로컬 영역 연결의 속성에 들어가서 바꿔줘야 한다.

이럴경우 프로그램을 다운받아서 자동으로 해주는 방법도 있지만 아에 자체 기능도 있다.

먼저 네트워크 및 공유센터를 연다.
그리고 왼쪽상당부에 어뎁터 설정 변경을 들어가주고 로컬 영역 연결의 속성을 들어간다.
그다음 목록이 주르륵 뜨는데 그중 Internet Protocol Version 4 를 더블클릭 해준다.


 

그러면 이와같은 창이 뜬다.(고딩때 학교에서 인터넷 안되서 쩔쩔매던 기억이;;;)

 


자동으로 IP 주소 받기에 체크를 하고 나면 일반탭 옆에 대체구성이 생겼다!

 


이제 여기서 설정을 하면 된다!

하지만 인터넷이 되려면 시간이 좀 걸린다는거;;
처음에 연결 안된다고 그러다 좀 있다보면 연결이 된다;; (처음에는 안되는줄알았음)
귀찮은것보다 시간이 아까우면 걍 바꿔주면 되지뭐,..ㅋㅋ

 

'기타' 카테고리의 다른 글

cmd 결과 복사  (0) 2013.07.09
Windows 8 (Internet Explorer 10) 한국장학재단 출근부 입력 안될 때  (8) 2013.02.27
XE ftp 오류  (0) 2012.08.13
아파치 인증 (apache2)  (1) 2012.07.06
시쿨리(sikuli) 스크린샷이 안될 때  (0) 2012.06.07

intel 문법 gdb, objdump

Posted 2012. 5. 22. 16:12

 

 

올리디버거와는 다르게GDB 는 좀 뭔가 다르다는 걸 느낄 수가 있습니다.

이유는 CPU 인데요 Unix의 경우에는 원래 AT&T 를 썼는데 리눅스가 그걸 따랐는진 잘 몰르겠으나;;

 리눅스는 그 문법을 사용하고 있습니다...

인텔 문법에 익숙한 사람들은 좀 불편할 수도 있는데 인텔로 바꿔주는 옵션이 있습니다.

먼저 objdump 의 경우 -M intel 옵션을 붙여주면 됩니다.

예를들어

objdump -M intel -d a.out 을 쓰면 OK

 

-M intel 옵션을 안붙였을 경우

 

 


확실히 차이가 보인다.

GDB 의 경우도 당연 있습니다

set disassembly-flavor intel 을 써주면 됩니다.

 


 


 

그리고 gdb가 시작할 때마다 써줘야 하면 불편하니 홈 폴더에 .gdbinit 파일을 만들어서 써넣으면 됩니다

 

 


 


 

'기타 > GDB' 카테고리의 다른 글

GDB 사용법 x 명령어  (0) 2012.05.22

GDB 사용법 x 명령어

Posted 2012. 5. 22. 16:01

gdb 에서 소스코드를 볼수 있게 하려면 gcc 컴파일시 -g 옵션을 주면 된다.

gcc -g test.c

gdb -q a.out

list

차례로 해보면 소스코드를 보면서 디버깅을 할 수 있다.

gdb 는 x 명령어를 사용해 메모리를 조사할 수 있다.

옵션으로는
o : 8진법으로 보여줌
x : 16진법으로 보여줌
u : 10진법으로 보여줌
t : 2진법으로 보여줌

b : 1 byte 단위로 보여줌(byte)
h : 2 byte 단위로 보여줌(half word)
w: 4 byte 단위로 보여줌(word) 
g : 8 byte 단위로 보여줌(giant)

i : 역어셈블된 명령어의 명령 메모리를 볼수 있음
c : ASCII 표의 바이트를 자동으로 볼 수 있다.
s : 문자 데이터의 전체 문자열을 보여준다.

쓰는 예시는
x/o $esp
x/4wx 0xbffff2a0
x/hu $ebp
x/gt $eip

x/i $eip
x/3i $eip
x/3cb 0x8048484
x/s 0x8048484

이런식으로 쓰면 된다 그리고 옵션 앞에 또 숫자를 붙일수 있다.

x/4wx 0xbffff2a0 를 보자

맨 먼저 x 는 examine 의 약자로 메모리를 조사할때 쓴다.
그리고 / 뒤에 붙는 옵션을 보면
맨 뒤부터 보면 맨 뒤의 x는 16진수 이고 그다음 w 는 4바이트로 이위치에는 몇바이트 단위로 쓸것인지 써준다.
그리고 숫자는 몇개를 보여줄지 써주면 된다.

0xbffff2a0 부터 4바이트만큼씩 보여준다.

그리고 x/s 랑 x/c 는 0x80484d0 를 보면 6c6c6548 이렇게 있는걸 봐서 ascii 코드라는걸 짐작할 수 있다.
이건 몇번 해보다 보면 보일 것이다.
쨋든 그래서 x/s 를 해보면 문자열이 나온다.
그리고 6바이트만큼 c 옵션으로 출력한 결과도 볼만 하다.

'기타 > GDB' 카테고리의 다른 글

intel 문법 gdb, objdump  (0) 2012.05.22