MPD Project (Core) - Javascript 기반 메모리 에디터

Posted at 2008/06/06 10:13 // in Old Data (자료 정리중) // by drDorothy

아래 프로그램 코어부분만 떼어 놓은것..


(스크립트 예제가 다름.. - 핵이 아니라 그냥 디스 어셈블결과만 출력)

일단 압축을 풀면 3개의 파일이 나옴..

  • mpd.exe : 메인 프로그램..
  • js32.dll : 자바스크립트 처리 엔진
  • ******.js : 예제 스크립트들

실행 방법
  1. 예제 스크립트를 드래그 한다.
  2. mpd.exe에 드롭한다.
  3. 실행된다.
정말 간단하다 생각됨..
현재 구현된 API 목록은 아래에 주르륵..

#include 
#include 
#include 

// Script API 읽어오기
#include "api.h"

static JSFunctionSpec BuiltInFunc[] = {

	/* ETC 함수 */
	{"print",	Jprint,		1, 0, },
	{"exit",	Jexit,		0, 0, },
	{"free",	Jfree,		1, 0, },
	{"system",	Jsystem,	1, 0, },

	/* Detect 함수 */
	{"DetectPattern",	JDetectPattern,	5, 0, },
	{"Disassemble",		JDisassemble,	3, 0, },
	{"JXXtoJMP",		JJXXtoJMP,		1, 0, },

	/* File 함수 */
	{"GetPrivateProfileInt",		JGetPrivateProfileInt,		4, 0, },
	{"WritePrivateProfileInt",		JWritePrivateProfileInt,	4, 0, },
	{"WritePrivateProfileString",	JWritePrivateProfileString,	4, 0, },

	/* Memory 함수 */
	{"ReadProcessMemory",	JReadProcessMemory,		3, 0, },
	{"WriteProcessMemory",	JWriteProcessMemory,	4, 0, },
	{"Pointer2Array",		JPointer2Array,			2, 0, },
	{"Array2Pointer",		JArray2Pointer,			1, 0, },
	{"DumpMemory",			JDumpMemory,			2, 0, },

	/* Process 함수 */
	{"GetProcessIdByWindowName",		JGetProcessIdByWindowName,		1, 0, },
	{"GetProcessHandleByWindowName",	JGetProcessHandleByWindowName,	1, 0, },
	{"GetProcessIdByImageName",			JGetProcessIdByImageName,		1, 0, },	
	{"ProcessId2Handle",				JProcessId2Handle,				1, 0, },

	{0,}
};
2008/06/06 10:13 2008/06/06 10:13