Category Archives: Post

EPROCESS를 이용한 프로세스 ID 변경

EPROCESS에 대한 구조 이해를 위해 프로세스 정보를 일부 변경해 보도록 하겠다. 변경을 위해 커널 디버깅을 중지(Windbg에서 g키 입력) 하고 가상 머신에서 작업 관리자(Alt+Ctrl+Del 키-> 작업 관리자 선택)를 실행하고 보기 메뉴에서 열을 선택해 PID를 추가하여 Cmd.exe의 PID를 확인하도록 하자. 작업 관리자에서 PID를 확인할 수 있도록 변경하자 이후 앞서 확인한 !prcoess 명령을 이용하여 Cmd.exe를 찾아서 해당 프로그램의

Read More

멀티 프로세싱(multiprocessing)

윈도우는 다수의 프로세서가 하나의 메모리 영역과 하드웨어 자원들을 공유해서 사용하는 대칭형 다중처리(Symmetric multiprocessing, 앞으로 SMP라고 표현함)를 지원한다. 현재 대부분의 시스템들이 지원하는 시스템 구조 역시 SMP라 할 수 있다. SMP는 데이터가 어느 위치에 있든 각 프로세서가 동일한 위치를 바라볼 수 있으므로, 작업 스케줄링을 통해서 효율적으로 여러 프로세서를 이용할 수 있게 된다. 윈도우 7과 2008에서는 256개의 논리

Read More

어느 프로그램의 보안 마인드

3년전 회사에서 서버 장애로 필요한 도구를 구입하고 있더라.. 혹시나 해서 해당 도구를 역분석으로 분석해 보았다(프로그램보호를 위해 세부정보는 표시 않함). 일단 암호화는 안된 것 같고, 혹시나 꼬아 놓았나 디버거로 확인해 봤지만 역시나 보안적 마인드가 없으신 분들이셔…… 인증 방식을 확인해 보니 네트워크는 전혀 이용하지 않는 단서 발견, 오호…… 키젠 방식을 의심, 30분간 씨름 한 결과 짠~ 하고

Read More

C# if 문과 swith 문의 대한 성능 비교

필자는 가끔 if문과 swith 문에 대해서 성능이 어떻것이 나을지 궁금했다. 마이크로소프트가 직접 만들어준 내부 알고리즘으로 swith 문이 더 좋을 것 같기도 하고, CPU 연산에서는 무조건 비교이기 때문에 if문이 빠를 것 같다는 생각도 들어 이번에 만드는 프로그램이 있어 이참에 비교를 해보았다.. 패킷 개수를 측정하는 프로그램인데 그 안에서 swith문과 if문을 이용해서 패킷을 구분하는 함수를 통해 확인해 본

Read More

레지스터

아래 그림은 Ollydbg라는 디버깅 도구를 통해 확인한 레지스터 화면이다 Ollydbg에서 제공하는 레지스터 정보 창 레지스터의 총 개수는 잘 사용되지 않는 디버그(8개)와 제어(8개), FPU(8개) 레지스터를 제외하고 일반적으로 16개라 생각하면 된다. 이 레지스터는 CPU 개발사에 따라 달라지는데 기본적인 범용, 인덱스, 포인터, 세그먼트, 플래그 레지스터는 공통으로 쓰이기에 유지하게 때문이다. 좀 더 설명하자면, 인텔은 MMX, AMD는 3D Now!라는 기술에

Read More

Install Guide [Tcptraceroute – RPMforge for CentOS 6]

오늘 누군가 해외 퍼블리셔의 특정 포트가 오픈되것을 어떻게 알 수 있는지 방법을 알려달라는 요청을 받았다. 내가 써봤던 도구중에  tcptraceroute라는 도구가 생각났다. 이 도구의 가장 큰 장점  TCP 포트를 이용해서, 라우트 경로를 추적해주는 도구이다. 특정 포트가 어디에서 막혔는지 확인하는데는 아주 제격인 도구이다. CentOS 7.0에서는 yum을 이용하여 손쉽게 설치 할 수 있지만, CentOS 6.5이하에는 설치를 위해 사전

Read More

[Java] Convert string to int error, NumberFormatException

문자열중 소수점이 있는 문자열을 int로 변환할 때 에러가 발생하면 소수점때문에 나타날 가능성이 높습니다. 만약 문자열에 소수점이 표함되어 있다면, double로 변환하여 이용하시기를 권장합니다. int IntValue = (int) Double.parseDouble(value.toString()); 단 int의 최대 표현수인 정수의 표현 범위를 넘어서는 숫자라면 double로 변환하시는것이 좋습니다. Double DoubleValue = Double.parseDouble(value.toString());