wireshark에서 lua사용하기 plugin
programming/lua 2017. 11. 3. 17:53 |http://meetup.toast.com/posts/103
'programming > lua' 카테고리의 다른 글
wireshark에서 lua사용하기 (0) | 2015.04.18 |
---|
http://meetup.toast.com/posts/103
wireshark에서 lua사용하기 (0) | 2015.04.18 |
---|
wireshark에서 lua사용하기 plugin (0) | 2017.11.03 |
---|
[autoit] 인증서 신뢰된 루트 인증기관에 등록하기 (0) | 2014.10.22 |
---|
..
RunAs ( "administrator", "@ComputerName", "비밀번호", 0, "certmgr.exe /add "&'"'&@WorkingDir&'"'&"\XXXXXX.cer -c -s -r localMachine Root")
autohotkey & devmanview 활용 (0) | 2014.12.27 |
---|
#!/usr/bin/python
import sys
import smtplib
from email.MIMEText import MIMEText
sender = 'sdfsdfsdf@gmail.com'
recipients = 'sdfsdfsdf@gmail.com'
text = sys.argv[1]
msg = MIMEText(text)
msg['Subject'] = '[Alert'
msg['From'] = sender
msg['To'] = recipients
smtpserver = 'smtp.gmail.com'
smtpuser = 'asdfasft' # set SMTP username here
smtppass = 'asfdasdf' # set SMTP password here
session = smtplib.SMTP("smtp.gmail.com", 587)
session.ehlo()
session.starttls()
session.ehlo()
session.login(smtpuser, smtppass)
smtpresult = session.sendmail(sender, [recipients], msg.as_string())
if smtpresult:
errstr = ""
for recip in smtpresult.keys():
errstr = """Could not delivery mail to: %s
Server said: %s
%s
%s""" % (recip, smtpresult[recip][0], smtpresult[recip][1], errstr)
raise smtplib.SMTPException, errstr
session.close()
시작/종료 (0) | 2012.04.10 |
---|---|
mysql원격접근 (0) | 2012.01.27 |
root비번을 잊어버렸을때.. (0) | 2011.10.09 |
내꺼
루트에서
/mysql/bin/mysql_safe &
종료
/mysql/bin/mysqladmin shutdown -p
mysql table size 변경 (0) | 2012.04.18 |
---|---|
mysql원격접근 (0) | 2012.01.27 |
root비번을 잊어버렸을때.. (0) | 2011.10.09 |
mysql table size 변경 (0) | 2012.04.18 |
---|---|
시작/종료 (0) | 2012.04.10 |
root비번을 잊어버렸을때.. (0) | 2011.10.09 |
mysql table size 변경 (0) | 2012.04.18 |
---|---|
시작/종료 (0) | 2012.04.10 |
mysql원격접근 (0) | 2012.01.27 |
socket TCP server (0) | 2010.05.10 |
---|---|
udp request (0) | 2010.05.10 |
tcp request (0) | 2010.05.10 |
외부파일실행예제 (0) | 2010.04.28 |
웹페이지 긁어오기 예제 (0) | 2010.04.09 |
session_start()사용시 주의 (0) | 2010.05.04 |
---|---|
exec(함수 (0) | 2010.04.22 |
safemode (0) | 2010.03.08 |
PHP 소스분석 (0) | 2009.10.22 |
gcc -lz옵션 (0) | 2010.05.06 |
---|---|
main, _tmain, wmain (0) | 2010.04.17 |
CString형변환 (0) | 2009.10.12 |
#!/usr/bin/perl -w##########client##########
# server.pl
#--------------------
use strict;
use Socket;
# use port 7890 as default
my $port = shift || 7890;
my $proto = getprotobyname('tcp');
# create a socket, make it reusable
socket(SOCKET, PF_INET, SOCK_STREAM, $proto)
or die "Can't open socket $!\n";
setsockopt(SOCKET, SOL_SOCKET, SO_REUSEADDR, 1)
or die "Can't set socket option to SO_REUSEADDR $!\n";
# bind to a port, then listen
bind( SOCKET, pack( 'Sn4x8', AF_INET, $port, "\0\0\0\0" ))
or die "Can't bind to port $port! \n";
listen(SOCKET, 5) or die "listen: $!";
print "SERVER started on port $port\n";
# accepting a connection
my $client_addr;
while ($client_addr = accept(NET_SOCKET, SOCKET)) {
# send them a message, close connection
print NEW_SOCKET "Smile from the server";
close NEW_SOCKET;
}
#!/usr/bin/perl -w
# client.pl
#----------------
use strict;
use Socket;
# initialize host and port
my $host = shift || 'localhost';
my $port = shift || 7890;
my $server = "10.12.12.168";
# create the socket, connect to the port
socket(SOCKET,PF_INET,SOCK_STREAM,(getprotobyname('tcp'))[2])
or die "Can't create a socket $!\n";
connect( SOCKET, pack( 'Sn4x8', AF_INET, $port, $server ))
or die "Can't connect to port $port! \n";
my $line;
while ($line = <SOCKET>) {
print "$line\n";
}
close SOCKET or die "close: $!";
echo server (0) | 2010.11.29 |
---|---|
udp request (0) | 2010.05.10 |
tcp request (0) | 2010.05.10 |
외부파일실행예제 (0) | 2010.04.28 |
웹페이지 긁어오기 예제 (0) | 2010.04.09 |
echo server (0) | 2010.11.29 |
---|---|
socket TCP server (0) | 2010.05.10 |
tcp request (0) | 2010.05.10 |
외부파일실행예제 (0) | 2010.04.28 |
웹페이지 긁어오기 예제 (0) | 2010.04.09 |
socket TCP server (0) | 2010.05.10 |
---|---|
udp request (0) | 2010.05.10 |
외부파일실행예제 (0) | 2010.04.28 |
웹페이지 긁어오기 예제 (0) | 2010.04.09 |
HTTP 파일업로드(Perl) (0) | 2009.12.30 |
wireshark 의 패킷수집절차 (0) | 2010.07.17 |
---|---|
main, _tmain, wmain (0) | 2010.04.17 |
CString형변환 (0) | 2009.10.12 |
출처: http://kaiserinlee.thoth.kr/?mid=blog&document_srl=1335548
- session_start(); 전에 출력문이 있으면 안된다.
- 그래도 안된다면 세션변수가 저장되는 폴더 권한을 777로 주었는지 확인해보자.
- 그래도 안된다면 UTF-8(BOM없음) 형식으로 저장해보자.
- 그래도 안된다면 모든 파일을 이 형식으로 저장하자.
- 그래도 안된다면 php.ini 에서 default-charset utf-8 로 설정해보라.
난 이것도 안해줘서 경고문이 떴었다 -_ㅠ
- 설정은 모두 통일하자 !
PHP backticks shell command (0) | 2010.08.04 |
---|---|
exec(함수 (0) | 2010.04.22 |
safemode (0) | 2010.03.08 |
PHP 소스분석 (0) | 2009.10.22 |
udp request (0) | 2010.05.10 |
---|---|
tcp request (0) | 2010.05.10 |
웹페이지 긁어오기 예제 (0) | 2010.04.09 |
HTTP 파일업로드(Perl) (0) | 2009.12.30 |
web login dictionary attack (0) | 2009.12.03 |
exec 에서 사용한 쉘 명령어의 동작이 끝날때까지 php 는 동작하지 않는다.
즉, exec 상태에서 멈춰 있다가 쉘 명령어의 동작이 끝난 후, php가 동작한다.
PHP backticks shell command (0) | 2010.08.04 |
---|---|
session_start()사용시 주의 (0) | 2010.05.04 |
safemode (0) | 2010.03.08 |
PHP 소스분석 (0) | 2009.10.22 |
wireshark 의 패킷수집절차 (0) | 2010.07.17 |
---|---|
gcc -lz옵션 (0) | 2010.05.06 |
CString형변환 (0) | 2009.10.12 |
Arguments 개체 (0) | 2009.10.01 |
---|
tcp request (0) | 2010.05.10 |
---|---|
외부파일실행예제 (0) | 2010.04.28 |
HTTP 파일업로드(Perl) (0) | 2009.12.30 |
web login dictionary attack (0) | 2009.12.03 |
HTTP요청 스크립트(ActivePerl) form-data (0) | 2009.11.19 |
PHP backticks shell command (0) | 2010.08.04 |
---|---|
session_start()사용시 주의 (0) | 2010.05.04 |
exec(함수 (0) | 2010.04.22 |
PHP 소스분석 (0) | 2009.10.22 |
외부파일실행예제 (0) | 2010.04.28 |
---|---|
웹페이지 긁어오기 예제 (0) | 2010.04.09 |
web login dictionary attack (0) | 2009.12.03 |
HTTP요청 스크립트(ActivePerl) form-data (0) | 2009.11.19 |
apache log shooter(GET) (0) | 2009.10.11 |
웹페이지 긁어오기 예제 (0) | 2010.04.09 |
---|---|
HTTP 파일업로드(Perl) (0) | 2009.12.30 |
HTTP요청 스크립트(ActivePerl) form-data (0) | 2009.11.19 |
apache log shooter(GET) (0) | 2009.10.11 |
WireShark HTTP파싱 스크립트 (0) | 2009.09.30 |
HTTP 파일업로드(Perl) (0) | 2009.12.30 |
---|---|
web login dictionary attack (0) | 2009.12.03 |
apache log shooter(GET) (0) | 2009.10.11 |
WireShark HTTP파싱 스크립트 (0) | 2009.09.30 |
HTTP요청 스크립트(ActivePerl) (0) | 2009.09.30 |
PHP backticks shell command (0) | 2010.08.04 |
---|---|
session_start()사용시 주의 (0) | 2010.05.04 |
exec(함수 (0) | 2010.04.22 |
safemode (0) | 2010.03.08 |
BYTE* temp;
CString cmd;
에서 cmd 의 값을 temp에 할당하려 할때.
temp=new BYTE[255];
temp=(LPBYTE)(LPCSTR)cmd;
delete []temp;
or
CString str = _T("abcd");
BYTE* pbyte = new BYTE[256];
int nSize;
nSize = str.GetLength();
CopyMemory( pbyte, str.GetBuffer(nSize), nSize );
pbyte[nSize] = 0;
or
strcpy(szNamePlace,(LPCTSTR)name);
or
CString str = "string";
BYTE* pByte;
pByte = (BYTE*)(LPTSTR)(LPCTSTR)str;
CString testString;
BYTE testByte;
testString.Format( "%s", testByte );
CString name = "몽룡이";
BYTE byte[26] = {0};
BYTE bName[26] = {0x0,};
sprintf((char*)byte, "%s", name);
memcpy(bName, byte, 26);
CString strTmp1, strTmp2;
strTmp1 = "";
strTmp2 = "";
for(int i=0; i<26; i++) {
strTmp1.Format("%02X ", bName[i]);
strTmp2 += strTmp1;
}
MessageBox(strTmp2, "", 0);
26바이트의 크기의 이름이다. 남는 공간은 0으로 채워진다
CString의 문자열을 바로 숫자로 바꾸는것은
아직 보지 못했습니다.
아마 atoi()나 atod()의 C함수를 사용해야 될것 같네요.
도움말을 참고하세요.
CString str;
int i = 6;
str.Format("%d",i); // str에 6의 문자가 들어갑니다.
바로 형변환으로 가능합니다.
bt = (BYTE)i; // 주의 : 작은 크기로 들어가기 때문에
// 255 이상의 값은 엉뚱하게 동작하겠지요.
i = (int)bt;
char * ch;
CString *str;
1) ch = (LPSTR)(LPCSTR)str;
2) ch = str.GetBuffer(str.GetLength());
3) wsprintf( ch, "%s", str);
1) str = (LPCSTR)(LPSTR)ch;
2) str = ch;
참고)
LPSTR 은 char* 입니다.
LPSTR : char stirng의 32비트 포인터, char* 와 같다.
LPCTSTR : Constant character String의 32비트 포인터
UINT : 32비트 unsigned형 정수
DWORD : unsigned long int형
BYTE : 8비트 unsigned 정수
1.CString 클래스의 GetBuffer()는 CString을 char *로 바꿔줍니다.
ex) CString strTemp = _T("test");
char *getTemp=NULL;
getTemp = malloc(strTemp.GetLength()+1);
strcpy(getTemp, strTemp.GetBuffer(strTemp.GetLength());
printf("결과:%sn", getTemp);
free(getTemp);
2. operator LPCTSTR ()도 마찬가지입니다.
ex) CString strTemp = _T("test");
char *getTemp = (LPSTR)(LPCSTR)strData;
CString -> BYTE*
CString str="1234";
BYTE *pbyte;
pbyte = (BYTE(LPSTR)(LPCSTR)str;
CString str = _T("abcd");
BYTE* pbyte = new BYTE[256];
int nSize;
nSize = str.GetLength();
CopyMemory( pbyte, str.GetBuffer(nSize), nSize );
pbyte[nSize] = 0;
char * ch;
CString *str;
1) ch = (LPSTR)(LPCSTR)str;
2) ch = str.GetBuffer(str.GetLength());
3) wsprintf( ch, "%s", str);
1) str = (LPCSTR)(LPSTR)ch;
2) str = ch;
참고)
LPSTR 은 char* 입니다.
LPSTR : char stirng의 32비트 포인터, char* 와 같다.
LPCTSTR : Constant character String의 32비트 포인터
UINT : 32비트 unsigned형 정수
DWORD : unsigned long int형
BYTE : 8비트 unsigned 정수
참고 : CString을 const char* 형태로 변경 -> (LPTSTR)(LPCTSTR)CString
LPCSTR : A 32-bit pointer to a constant character string.
LPSTR : A 32-bit pointer to a character string.
LPCTSTR : A 32-bit pointer to a constant character string that is portable for Unicode and DBCS.
LPTSTR : A 32-bit pointer to a character string that is portable for Unicode and DBCS.
대개 CString 개체의 내용은 마치 해당 개체가 C 스타일의 null로 끝나는 문자열인 것처럼 조작하는 것이 유용합니다. 이 문서에서는 다음과 같은 내용을 다룹니다.
다음 두 가지 경우를 참고하십시오.
LPCTSTR 에서 반환하는 포인터는 CString에서 사용하는 데이터 영역을 가리킵니다. CString이 범위를 벗어나 자동적으로 삭제되거나 다른 이유로 CString의 내용이 변경되면 LPCSTSR 포인터는 더 이상 유효하지 않습니다. 포인터가 가리키는 문자열은 임시 문자열로 처리됩니다.
CString theString( "This is a test" );
LPTSTR lpsz = new TCHAR[theString.GetLength()+1];
_tcscpy(lpsz, theString);
//... modify lpsz as much as you want
참 고 strcpy(또는 이식 가능한 유니코드/MBCS 함수인 _tcscpy)의 두 번째 인수는const wchar_t*(유니코드) 또는 const char*(ANSI)입니다. 위 예제에서는 이 인수에 대해 CString을 전달합니다. C++ 컴파일러에서는 자동으로 CString 클래스에 대해 정의된 변환 함수를 적용하여 CString을 LPTSTR로 변환합니다. 한 형식을 다른 형식으로 캐스팅하는 연산을 정의하는 기능은 C++에서 가장 유용한 기능 중 하나입니다.
대부분의 경우, strcmp(또는 이식 가능한 유니코드/MBCS 함수인 _tcscmp) 등의 표준 C 런타임 라이브러리 문자열 함수를 사용하여 문자열 작업을 수행하려면 CString 멤버 함수를 찾아야 합니다.
C 런타임 문자열 함수를 사용해야 하는 경우에는 C 스타일의 Null로 끝나는 문자열로 변환에서 설명하는 방법을 사용하여, CString 개체를 해당하는 C 스타일 문자열 버퍼로 복사하고 이 버퍼에서 작업을 수행한 다음 결과로 생성된 C 스타일 문자열을 다시 CString 개체에 할당할 수 있습니다.
대부분의 경우 CString 개체의 내용을 수정하거나 CString을 C 스타일 문자열로 변환하려면 CString 멤버 함수를 사용해야 합니다.
그러나 문자 버퍼가 필요한 운영 체제 함수를 사용하여 작업하는 등의 일부 경우에는 CString의 내용을 직접 수정하는 것이 좋습니다.
GetBuffer 및 ReleaseBuffer 멤버 함수를 사용하면 CString 개체의 내부 문자 버퍼에 액세스하여 CString의 내용을 직접 수정할 수 있습니다. 다음 단계는 이러한 함수를 사용하여 CString의 내용을 직접 변경하는 방법입니다.
일 부 C 함수에는 다양한 인수가 사용됩니다. 대표적인 예로 printf 함수가 있습니다. 이러한 종류의 함수를 선언하는 방식 때문에 컴파일러에서는 인수의 형식을 확인하지 못해 각 인수에 대해 수행할 변환 작업을 결정하지 못할 수 있습니다. 따라서 다양한 인수를 사용하는 함수에 CString 개체를 전달할 때는 명시적인 형식 캐스팅을 사용해야 합니다.
가변 인수를 사용하는 함수에 CString 개체를 사용하려면
CString kindOfFruit = "bananas";
int howmany = 25;
printf( "You have %d %s\n", howmany, (LPCTSTR)kindOfFruit );
문
자열 인수가 필요한 함수의 경우에는 대부분 함수 프로토타입에 CString 대신 문자(LPCTSTR)에 대한 const 포인터로
형식 매개 변수를 지정하는 것이 좋습니다. 형식 매개 변수가 문자에 대한 const 포인터로 지정되면 TCHAR 배열에 대한
포인터, 리터럴 문자열 ["hi there"
] 또는 CString 개체 중 하나를 전달할 수 있습니다. CString 개체는 자동으로 LPCTSTR로 변환됩니다. LPCTSTR을 사용할 수 있는 위치이면 어디에나 CString 개체를 사용할 수 있습니다.
인
수가 수정되지 않는 경우에는 형식 매개 변수를 상수 문자열 참조, 즉 const CString&로 지정할 수도 있습니다.
문자열이 함수에 의해 수정되는 경우에는 const 한정자를 삭제합니다. 기본 null 값이 필요하면 다음 예제에서처럼 null
문자열[""
]로 초기화합니다.
void AddCustomer( const CString& name,
const CString& address,
const CString& comment = "" );
대부분의 함수 결과에서 CString 개체를 간단히 값으로 반환할 수 있습니다.
클래스 인터페이스를 정의할 때는 멤버 함수에 대한 인수 전달 규칙을 결정해야 합니다. CString 개체를 전달하고 반환하는 데는 몇 가지 표준 규칙이 있습니다. 함수 입력에 사용하는 문자열 및 함수 출력에 사용하는 문자열에 설명된 규칙을 따르면 효율적이고 올바른 코드를 만들 수 있습니다.
문 자열을 함수에 입력하려면 대부분의 경우에는 문자열 함수 매개 변수를 LPCTSTR로 선언하는 것이 가장 좋습니다. 필요하면 생성자와 할당 연산자를 사용하여 함수 내에서 CString 개체로 변환합니다. 함수로 문자열 내용을 변경할 수 있도록 하려면 매개 변수를 상수가 아닌 CString 참조(CString&)로 선언합니다.
CString 개체는 기본 형식처럼 값 의미론 다음에 오므로 일반적으로 함수에서 CString 개체를 반환할 수 있습니다. 읽기 전용 문자열을 반환하려면 상수 CString 참조(const CString&)를 사용합니다. 다음 예제에서는 CString 매개 변수와 반환 형식의 사용 방법을 보여 줍니다.
class CName : public CObject
{
private:
CString m_firstName;
char m_middleInit;
CString m_lastName;
public:
CName() {}
void SetData( LPCTSTR fn, const char mi, LPCTSTR ln )
{
m_firstName = fn;
m_middleInit = mi;
m_lastName = ln;
}
void GetData( CString& cfn, char mi, CString& cln )
{
cfn = m_firstName;
mi = m_middleInit;
cln = m_lastName;
}
CString GetLastName()
{
return m_lastName;
}
};
...
CName name;
CString last, first;
TCHAR middle;
name.SetData( "John", 'Q', "Public" );
ASSERT( name.GetLastName() == "Public" );
name.GetData( first, middle, last );
ASSERT( ( first == "John" ) && ( last == "Public" ) );
...
wireshark 의 패킷수집절차 (0) | 2010.07.17 |
---|---|
gcc -lz옵션 (0) | 2010.05.06 |
main, _tmain, wmain (0) | 2010.04.17 |