'Programing'에 해당되는 글 2건

  1. 2012.07.22 IDA Pro 6.2 환경에서 PAIMEI 설치.
  2. 2010.06.01 리소스를 파일로 저장.

PAIMEI 를 설치하는 과정이 번거러워서 포스팅

1. visual studio 2010(or 2008) 설치
2. IDA 6.2 설치 (or 6.1)
3. wxPython2.8-win32-unicode-2.8.11.0-py26.exe 설치 
4. setuptools-0.6c11.win32-py2.6.exe 설치
5. uDrawGraph-3.1.1-0-win32-en.exe 설치
6. gde-win.exe 설치

7. mysql 5.1 설치
8. MySQL-python-1.2.2.win32-py2.6.exe 설치

9. paimei.zip 을 c:\에 압축 해제
10. __install_requirements.py 수행
11. __setup_mysql.py [host] [id] [pass] 수행

12. console/PAIMEIconsole.pyw 실행

※만약 pida_dump.py 수행 시 "AttributeError: 'module' object has no attribute 'get_current_instruction'" 와 같은 에러가 발생한다면,  c:\paimei\pida\instruction.py 파일을 첨부된 instruction.py 로 교체


설치에 필요한 파일들 첨부 (IDA와 Mysql은 첨부하지 않음)


PAIMEI설치.vol1.egg

PAIMEI설치.vol2.egg

PAIMEI설치.vol3.egg


Posted by EXSO
,

리소스 데이터를 파일로 저장.

구현코드 : 계산기 파일을 리소스에 포함시킨 상태로 컴파일 후 실행시 현재디렉토리에 생성

#include "stdafx.h"
#include "resource.h"

void main()
{
 HRSRC hResource;
 HGLOBAL hResData;
 LPVOID lpResource;
 DWORD dwSize;
 HANDLE hFile;
 DWORD dwNumberOfBytes;

 hResource = FindResource(GetModuleHandle(0),MAKEINTRESOURCE(IDR_FILE1), TEXT("FILE") );
 // 리소스의 핸들값을 얻어온다

 hResData = LoadResource(GetModuleHandle(0),hResource);
 // 지정된 리소스를 메모리로 로드한다. 반환값은 로드된 리소스의 핸들이다.

 lpResource = LockResource(hResData);
 // LoadResource 를 통해 메모리로 로드한 리소스의 시작 주소를 얻어온다.

 dwSize = SizeofResource(GetModuleHandle(0),hResource);
 // 리소스의 크기를 얻어온다

 hFile = CreateFile(TEXT("calc.exe"), GENERIC_WRITE, 0, 0, CREATE_ALWAYS, 0, 0);
 // 리소스를 저장할 파일을 생성한다.

 WriteFile(hFile, lpResource, dwSize, &dwNumberOfBytes, NULL);
 // 파일에 메모리상의 리소스를 저장한다.

 CloseHandle(hFile);
 // 파일의 핸들을 닫아준다.
 
}


Posted by EXSO
,