Форум: "Прочее";
Текущий архив: 2014.05.04;
Скачать: [xml.tar.bz2];
Внизthreadvar, _GetTls, FS:tlsArray Найти похожие ветки
← →
DevilDevil © (2013-11-05 22:21) [40]> Rouse_ © (05.11.13 18:19) [37]
Розыч, в чём наши точки зрения различаются
Ты считаешь, даже в рамках Win32 различается. Более того одни и те же поля могут и перемещаются на разные смещения в TEB в зависимости от версии Windows. Если я наврал - скажи.
Я предполагаю, что сама структура строго не регламентирована, расширяется, но имеет на Win32 режим обратной совместимости. Т.е. условно говоря на какой-то ранней версии Windows поле было вообще никак не помечено, а в современных версиях детализация полей и размер самой структуры - больше.
Я обнаружил определённые поля, названные UserReserved, которые занимают 20 байт на Win32 в диапазоне 0x700 - 0x714. Пытаюсь определить, константный ли диапазон имеют эти поля, и можно ли реально их использовать под свои нужды.
В свою очередь ты начал выводить логи. И я предположил, что это логи софта, который отслеживает занятые поля в TEB и индивидуально для каждой ОС выводит названия полей, зарегистрированных в ней. Т.е. условно говоря если мы занимаем поля из UserReserved[], то твой софт должен явно на это указать.
Теперь скажи, в чём я заблуждаюсь. И если твой (или другой твой используемый) софт с такой задачей справляется - прогони пожалуйста через него 2 моих экзешника: http://zalil.ru/34795905. Чтобы не было разночтений. Exe-шники как раз заполняют ожидаемую область.
Если конечно не сложно
← →
Rouse_ © (2013-11-05 22:40) [41]
> Я обнаружил определённые поля, названные UserReserved, которые
> занимают 20 байт на Win32 в диапазоне 0x700 - 0x714. Пытаюсь
> определить, константный ли диапазон имеют эти поля, и можно
> ли реально их использовать под свои нужды.
Ты оперируешь неверной информацией.
> В свою очередь ты начал выводить логи. И я предположил,
> что это логи софта, который отслеживает занятые поля в TEB
> и индивидуально для каждой ОС выводит названия полей, зарегистрированных
> в ней. Т.е. условно говоря если мы занимаем поля из UserReserved[],
> то твой софт должен явно на это указать.
Именно это он и делает.
> Теперь скажи, в чём я заблуждаюсь. И если твой (или другой
> твой используемый) софт с такой задачей справляется - прогони
> пожалуйста через него 2 моих экзешника: http://zalil.ru/34795905.
> Чтобы не было разночтений. Exe-шники как раз заполняют
> ожидаемую область.
1. Ты оперируешь неверной информацией.
2. Я тебе все дал, включая исполняемый файл. Зачем мне прогонять, когда ты сам можешь это сделать? :)
← →
Rouse_ © (2013-11-05 22:47) [42]ЗЫ: если у тебя затруднения в использовании моего софта для детекта - это решаемо в аське (а судя по всему это оно и есть).
Пиши завтра - решим, но лучше через форум, конечно...
← →
DevilDevil © (2013-11-05 22:51) [43]> Rouse_ © (05.11.13 22:40) [41]
> Ты оперируешь неверной информацией.
> 1. Ты оперируешь неверной информацией.
я предполагаю, что ты обладаешь недостаточно детализированной информацией
я думаю, что описанный тобой Win32ClientInfo внутри содержит описанный мной UserReserved
> Именно это он и делает.
> 2. Я тебе все дал, включая исполняемый файл. Зачем мне прогонять,
> когда ты сам можешь это сделать? :)
если у в программе указано, что с 0x6cc по 0x7c4 располагается Win32ClientInfo - то запускать программу действительно не имеет смысла
← →
Rouse_ © (2013-11-05 22:53) [44]
> DevilDevil © (05.11.13 22:51) [43]
> я предполагаю, что ты обладаешь недостаточно детализированной
> информацией
> я думаю, что описанный тобой Win32ClientInfo внутри содержит
> описанный мной UserReserved
Думаю ты ошибаешся. Оффсет UserReserved фиксирован.
> если у в программе указано, что с 0x6cc по 0x7c4 располагается
> Win32ClientInfo - то запускать программу действительно не
> имеет смысла
Не буду спорить с твоим мнением...
← →
DevilDevil © (2013-11-05 22:56) [45]> Rouse_ © (05.11.13 22:53) [44]
> Думаю ты ошибаешся. Оффсет UserReserved фиксирован.
тогда об чём мы спорим ? )
он с 0x700 по 0x714 под x86 и с 0x878 по 0x890 под x64 ?
← →
Rouse_ © (2013-11-05 23:24) [46]
> DevilDevil © (05.11.13 22:56) [45]
> тогда об чём мы спорим ? )
> он с 0x700 по 0x714 под x86 и с 0x878 по 0x890 под x64 ?
Хочешь краснеть на релизе - вперед. Ты сам так решил...
← →
DevilDevil © (2013-11-05 23:25) [47]Ну я спросил
Ты же сам сказал, что "Оффсет UserReserved фиксирован."
← →
Rouse_ © (2013-11-05 23:26) [48]
> Ты же сам сказал, что "Оффсет UserReserved фиксирован."
Есесно, только я приводил немного не те оффсеты :)
← →
DevilDevil © (2013-11-05 23:41) [49]> Rouse_ © (05.11.13 23:26) [48]
ну дак ты не тяни
чему равны фиксированные оффсеты UserReserved и каков их размер ?
← →
Rouse_ © (2013-11-05 23:48) [50]
> DevilDevil © (05.11.13 23:41) [49]
> ну дак ты не тяни
> чему равны фиксированные оффсеты UserReserved и каков их
> размер ?
Хм...
Писатель явно не читатель...
По моим ссылкам оффсет данного параметра тоже видимо непонятен.
Беда.
Ты не вникаешь в суть того, что тебе пишут - это смело и забавно.
Я думаю на этой ноте я прекращу нашу беседу.
← →
DevilDevil © (2013-11-05 23:53) [51]Ясно
По какой-то непонятной причине опять оказался я виноват :)
← →
DevilDevil © (2013-11-06 00:14) [52]И да
Я тут как бы тоже ссылочки приводил
http://en.wikipedia.org/wiki/Win32_Thread_Information_Block
http://source.winehq.org/source/include/winternl.h#L297
http://code.ohloh.net/file?fid=--ONVyuzSJsn_16mM5LU8NcCz2A&cid=4x157wI30IQ&s=teb&browser=Default&fp=363563&mp&pro %20jSelected=true#L172
И все они в один голос говорят о UserReserved в диапазоне с 0x700 по 0x714 под x86
И каждый из источников - православный английский. Два источника из трёх содержат полные описания структур на языке С++. Чего не скажешь например об источнике авторства redp
← →
Rouse__ (2013-11-06 00:46) [53]Крайне печально то, что дампу kd перестают верить, заменяя это ссылочками :))
← →
DevilDevil © (2013-11-06 00:56) [54]> Rouse__ (06.11.13 00:46) [53]
Я не сказал, что не верю. Но я и не должен верить каждому источнику. На кону ставки 3:1. Очевидно и ты, и господин redp могут ошибаться. Первое проверено временем, второго я вообще вижу первый раз
Более того, я подчеркнул, что и твоя ссылка может быть верна. Ты видел структуру Win32ClientInfo? Я нет. Но ты почему то намекаешь, что все вокруг врут, а я обязан верить тебе на слово. Нет. Это как минимум не логично
← →
Rouse_ © (2013-11-06 16:11) [55]
> Ты видел структуру Win32ClientInfo? Я нет#define CVKKEYCACHE 32
#define CBKEYCACHE (CVKKEYCACHE >> 2)
#define CVKASYNCKEYCACHE 16
#define CBASYNCKEYCACHE (CVKASYNCKEYCACHE >> 2)
typedef struct _CLIENTINFO {
DWORD CI_flags; // Needs to be first because CSR
DWORD cSpins;
DWORD dwExpWinVer;
DWORD dwUnknownFlags;
DWORD dwCompatFlags;
DWORD dwTIFlags;
PVOID pDeskInfo;
ULONG ulClientDelta;
PVOID phkCurrent;
DWORD fsHooks;
CALLBACKWND CallbackWnd;
DWORD dwHookCurrent;
int cInDDEMLCallback;
HANDLE hDdemlCallbackInst;
PVOID pClientThreadInfo;
DWORD dwHookData;
DWORD dwKeyCache;
BYTE afKeyState[CBKEYCACHE];
DWORD dwAsyncKeyCache;
BYTE afAsyncKeyState[CBASYNCKEYCACHE];
BYTE afAsyncKeyStateRecentDown[CBASYNCKEYCACHE];
WORD CodePage;
HKL hKL;
BYTE achDbcsCF[2];
MSG msgDbcsCB;
} CLIENTINFO, *PCLIENTINFO;
← →
DevilDevil © (2013-11-06 17:24) [56]Спустя часы разбирательств по теме в аське, пришли к выводу, что в Windows забили на поля UserReserved[] по смещению 0x700 и используют их как хотят
Зато нашли поле ArbitraryUserPointer по смещениям FS:[0x14] и GS:[0x28] соответственно. Комментарий по сему полю такой:Normally, the ArbitraryUserPointer field is reserved exclusively for use by user mode as a sort of “free TLS slot” that is available at a known location for every thread.
В вики скромнее:FS:[0x14] 4 Win9x and NT Arbitrary data slot
Но в любом случае - именно то, что нам (мне) нужно. Легально, совместимо, по константному смещению.
В связи с этим хочу поблагодарить светлую голову Розыча, а так же всех участвующих - за желание разобраться, помочь, за продуктивную дискуссию
← →
Rouse_ © (2013-11-06 17:43) [57]Незчт, главное что я смог до тебя донести информацию в правильном виде, особливо по поводу полей TEB под разными ОС :)
← →
DevilDevil © (2013-11-06 22:46) [58]> Rouse_ © (06.11.13 17:43) [57]
> Незчт, главное что я смог до тебя донести информацию в правильном
> виде, особливо по поводу полей TEB под разными ОС :)
ну TEB как таковой мне не был интересен
нужно было только поле, которое можно юзать
а вообще интересно, да
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2014.05.04;
Скачать: [xml.tar.bz2];
Память: 0.59 MB
Время: 0.004 c