Цитата:
Сообщение от noise
Дак там небось ещё и указатель на указатель на указатель, или СЕ с этим тоже легко справляется? Я все же рекомендую сначала найти указатель на этот массив в объекте, потом попробывать найти указатель на него и.т.д. При чем реально попробуй искать указатели без смещения, ткнул СЕ на 1 байт массива в памяти и поиск указателя со смещением 0, как начало, так и конец массиво обычно оч просто на глаз определяется
|
CE и позволяет искать "многоуровневые" указатели. И на удивление, это не помогло. Про указатель без смещения.. А какая разница? Если я указал при поиске смещение ДО 2048, значит искать будет начиная со смещения 0 до 2048. Так же? Я не пойму чем твой метод отличается от того, который использует CE.
В общем то, для меня это уже не важно. Я брякнулся на запись в ту структуру, которую ищу. Вышел на следующую функу:
Код:
seg000:005FC87F
seg000:005FC87F ; void __cdecl Struct_memcpy(void *copyTo, int a2, const void *copyFrom)
seg000:005FC87F Struct_memcpy proc near ; CODE XREF: sub_5FC91B+1Dp
seg000:005FC87F
seg000:005FC87F copyTo = dword ptr 8
seg000:005FC87F arg_4 = dword ptr 0Ch
seg000:005FC87F copyFrom = dword ptr 10h
seg000:005FC87F
seg000:005FC87F push ebp
seg000:005FC880 mov ebp, esp
seg000:005FC882 jmp short loc_5FC89B
seg000:005FC884 ; ---------------------------------------------------------------------------
seg000:005FC884
seg000:005FC884 loc_5FC884: ; CODE XREF: Struct_memcpy+20j
seg000:005FC884 push [ebp+copyFrom]
seg000:005FC887 push [ebp+copyTo]
seg000:005FC88A call K_memcpy
seg000:005FC88F dec [ebp+arg_4]
seg000:005FC892 add [ebp+copyTo], 0B7h
seg000:005FC899 pop ecx
seg000:005FC89A pop ecx
seg000:005FC89B
seg000:005FC89B loc_5FC89B: ; CODE XREF: Struct_memcpy+3j
seg000:005FC89B cmp [ebp+arg_4], 0
seg000:005FC89F ja short loc_5FC884
seg000:005FC8A1 pop ebp
seg000:005FC8A2 retn
seg000:005FC8A2 Struct_memcpy endp
Которая просто копирует из одного буффера данные в эту самую структуру. Хукнул её и соответственно получил возможность следить за обновлением этих самых структур. Всё получилось, причём решение кросс-платформенное - в отличие от поиска указателей в памяти.