LVS_OWNERDRAWFIXED, LVS_OWNERDATA, LBS_HASSTRINGS
라는 Window style 을 함께 포함하고 있는 객체인가요?
제 소스는 아니지만, 이러한 식으로 위 플래그가 있는 객체에서 긁어오는데는 문제가 없다는군요.
(델파이용 소스를 못구해서 C++ Builder 용으로. ^^)
cuperido
char *entry = new char[200];
long ListItemHold=0;
long ListEntryHold=0;
LPDWORD ReadBytes=0;
LPDWORD Process=0;
HANDLE ProcessThread;
GetWindowThreadProcessId( +++ListBox handle+++ ,Process);
ProcessThread = OpenProcess(PROCESS_VM_READ|STANDARD_RIGHTS_REQUIRED,false,(DWORD)Process);
ListItemHold = ::SendMessage(+++ListBox handle+++, LB_GETITEMDATA,0,0);
ListItemHold += ::SendMessage(+++ListBox handle+++,LB_GETCOUNT,0,0);
ReadProcessMemory(ProcessThread,(LPCVOID)ListItemHold,(LPVOID)entry,4,ReadBytes);
MoveMemory((PVOID)ListEntryHold,(CONST VOID *)entry,4);
ListEntryHold+=6;
ReadProcessMemory(ProcessThread,(LPCVOID)ListEntryHold,(LPVOID)entry, strlen(entry), ReadBytes);
CloseHandle(ProcessThread);
MessageBox(0, entry,"",MB_OK);
만신창이 님이 쓰신 글 :
: SysListView32 라는 클레스를 가지고 있습니다.
:
:
: 유영인 Cuperido 님이 쓰신 글 :
: : LB_GETITEMDATA 이라는 윈도우 메시지로 ItemData를 얻어올 수 있는 방법이 있습니다.
: : 하지만, ListBox가 LBS_HASSTRINGS 이라는 속성을 가진채로, OwnerDraw 되었을 때만
: : 가능한 방법이고요. (Item 갯수가 32768개 미만일 경우에만 가능합니다)
: :
: : 그렇지 않은 경우에는 별도의 어플리케이션 영역이라 메모리 접근이 불가능 합니다.
: : 말씀하신 대로 후킹을 하든지 해야할텐데, 찍어내는 방법이 여러가지라 어떤 API를
: : 후킹할지도 모호하네요.
: :
: : 어떤 객체인지 확실히 분석이 가능하다면 더 큰 도움을 드릴 수 있을텐데요.. :(
: :
: :
: : cuperido
: :
: :
: : 망신창이 님이 쓰신 글 :
: : : 안녕하세요.
: : :
: : : 제가 모 회사에 취직을 하게 되었는데
: : : 이전에 있다가 나간 사람이 어플리케이션을 개발하고 퇴사해 버렸습니다.
: : : 다른 정보도 없이... --;; 더군다나 소스도 날라간 상태... --;;;;;
: : : 소스도 없는 상황에서.. --;
: : :
: : : 이놈을 제어 아닌 제어 해야 될 일이 생겨 버렸습니다.. ㅠ.ㅠ
: : : 제가 만든 프로그램으로 그 프로그램(폼 디자인 예쁩니다)의 분석을 시작했었는데
: : :
: : : 핸들 찾아서 그 핸들 가진 부분의 ListBox 에 있는 값들을 가지고 와서
: : : 수정해야 될 일이 생겼습니다... (일반 ListBox 도 아니도 디자인이 예쁘더군요..)
: : : 흠.. 그리고 안에서 돌아가는 값들도 보고 제어해야 될 부분이 생기더군요.. ㅠ.ㅠ
: : :
: : : 핸들만 가지고 그 프로그램의 값들을 가져 올려고 했는데 안되고 있습니다...
: : : 어떻게 하면 그 프로그램 내부에 돌고 있는 값들을 읽어들여서 분석해서
: : :
: : : 제가 원하는 데이터로 변경 할 수 있을지 정말 막막합니다... ㅠ.ㅠ
: : : 처음 이런 일을 당해서... 저도 후킹이라는 것도 보고 있지만... 어떻게 하면 좋을지
: : :
: : : 질문드려 봅니다.... 핸들 가지고 이전에 답변 올려져 있는 것들을 보고 적용해 보았는데
: : : 안되더군요... --;; 어떤 방법이 있는지 답변 부탁드립니다...
: : :
: : :
|