프로그래밍 QnA

somedayhow의 이미지

linux shell script 경로에 대해서 질문이 있습니다.


시뮬레이션을 반복하다보니 늘어나는 데이터를 감당할 수가 없어서
폴더별로 정리를 해보고 있습니다.
하지만 폴더를 바꿀때마다 실행파일인 start.sh를 수정해야 하는 번거로움이 있어서
좀 편한 방법이 없을까 질문을 해봅니다.

start.sh:

minsubsim의 이미지

fortran 실행관련 질문

fortran으로 짜여진 geant321라는 프로그램의 example을 실행하려고 합니다

소스코드는 아래 경로에 있는 것들과 동일한 내용입니다
http://cernlib.web.cern.ch/cernlib/download/2006_source/src/geant321/examples/gexam1/

관련 라이브러리 (cernlib)도 제대로 설치된것 같아서 직접 실행해 보려고 했습니다

Reper의 이미지

프로세스 마다 할당되는 스택의 주소

현재 버퍼 오버플로우를 공부하고 있습니다.

Reper의 이미지

프로세스마다 할당되는 스택

현재 버퍼 오버플로우를 공부하고 있습니다.

#include
#include

extern char **environ;

main(int argc, char *argv[])
{
char buffer[40];
int i;

if(argc != 2){
printf("argc must be two!\n");
exit(0);
}

for(i=0; environ[i]; i++)
memset(environ[i], 0, strlen(environ[i]));

if(argv[1][47] != '\xbf')
{
printf("stack is still your friend.\n");
exit(0);
}

mandugukbap의 이미지

gethostbyname()에서 DNS 서버 변경

gethostbyname 함수를 호출할 때 /etc/resolv.conf에서 DNS 서버의 주소를 읽어와 사용하는 것으로 알고 있습니다.

이 서버 주소를 제 프로그램 내에서 임의로 바꿀 방법이 있는지요?

ukyoukyo의 이미지

실행중인 명령어가 64비트인지, 32비트인지 어떻게 구별할 수 있을까요 ?



Linux, GCC 환경입니다.

64비트 OS를 설치했구요,

빌드는 32비트, 64비트 각각 개별 실행파일로 되게했습니다.


즉, 하나의 hello.c를 빌드하면 hello32, hello64 실행파일이 각각 만들어 집니다.
( gcc -m32, -m64 옵션을 사용했습니다 )



질문은,

프로그램 실행중에( runtime ) 프로그램 자신이 32비트인지, 64비트인지 구별하는 함수가 있을까요 ?

없다면 대략을 요령이라도 알려주심 감사하겠습니다...


실행 파일이름으로 구별하는건 파일이름을 사용자가 임의로 변경할 수 있으므로 제외하구요...


readelf 등등의 명령어를 보긴 봤는데, 도움이 안되는것 같아서요...

kid1402의 이미지

Event 와 CriticalSection 을 이용한 동기화 문제

8개의 스레드를 돌려 Queue 에 들어간 데이터를 처리하는 클래스가 있습니다.

즉 8개의 스레드 각각은 Queue를 Pop() 하여 데이터를 처리하고, 이때 CriticalSection을 이용하여 Queue에 대한 동기화 처리를 해줍니다. (8개의 스레드가 동시에 접근할 가능성이 있으므로)
쉽게 하기 위해 이 스레드를 PopThread라고 합니다.

다른 1개의 스레드는 같은 Queue에 처리할 데이터를 Push()합니다. 물론 이때도 Push()할 때에는 CriticalSection으로 Queue에 대한 동기화를 해줍니다. (위의 8개의 스레드가 동시에 접근하고자 하므로)
이 스레드는 PushThread 라고 합시다.

k2sguard의 이미지

공유기 내부에서 sniffing 질문입니다.

공유기 내부에 패킷 캡쳐 하는 프로그램을 심어 해당 프로그램이 특정 패킷을 잡아 서버로 보내는 프로그램입니다.

소켓은 socket(AF_INET, SOCK_PACKET, htons(ETH_P_ALL)); 으로 열었구요

특정 이더넷만 잡기 위해 옵션은 setsockopt(SOCKID, SOL_SOCKET, SO_BINDTODEVICE, "eth1", strlen("eth1") + 1);
으로 하였습니다 (옵션을 주나 안주나, 다른 이더넷을 선택하나 문제는 같습니다...)

그리고 Promiscuous Mode 설정 코드가 들어가구요 (하지만 이것도 설정 하나 안하나 문제는 같습니다.)

여기서 문제점은 공유기의 포트에 꼽혀있는 장비에서 예를들어 패킷을 10개 전송하면

제가 만든 프로그램에서는 무조건 같은 패킷을 3번씩 반복해서 잡습니다. (즉 30패킷이 잡힘)

프로그램에서 잡다한것 다빼고 소켓 recv만 해도 같은 현상이 발생하구요...
다른 sdk를 사용하는 공유기 장비에 프로그램을 넣어도 같은 문제가 발생하네요.

coathanger의 이미지

HTTP 파일 전송 및 수신 관련


안녕하세요.

HTTP로 파일전송을 하려고 합니다.
일반적으로 Client 프로그램에 http전송하는 형태로 개발하여 실제 수신하는 서버는 흔히 사용되는 IIS나 Apache를 사용하는지요?
아니면 http 파일 수신하는 서버를 자체 개발하여 운영하는지 알고 싶습니다.

그리고 만약 HTTP파일 수신 서버를 만든다고 한다며녀 HTTPS 보안통신 사용 시 공수가 많이 드는지도 알고 싶습니다.

미리 감사드립니다.

lsw2602의 이미지

visual studio 2008 에서 빌드한 library를 visual studio 2010에서 사용이 불가능 한가요?

2008로 작성된 프로젝트를 전달 받아서 2010으로 변환 후 실행파일을 빌드해서
실행을 했더니 실행 중 에러가 발생합니다. (library(dll) 파일을 링크 하는데 이게 2008에서 빌드 된 놈입니다.)
실행파일 빌드는 문제가 없는데 실행 시 에러가 나네요.
원래 그런건가요? 아주 기초적인 질문이겠지만 저에겐 어렵네요 ㅠ

에러메세지 :
응용 프로그램을 제대로 시작하지 못했습니다(0xc0150002).

답변 부탁드립니다. ㅠ

페이지

프로그래밍 QnA 구독하기