Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
2-1374665706
Стас258
2013-07-24 15:35
2014.05.04
Как в мемо проймать прокрутку?


15-1383683403
Юрий
2013-11-06 00:30
2014.05.04
С днем рождения ! 6 ноября 2013 среда


15-1383510603
Юрий
2013-11-04 00:30
2014.05.04
С днем рождения ! 4 ноября 2013 понедельник


2-1371937269
Cobalt
2013-06-23 01:41
2014.05.04
JCL dataset


4-1268997623
Alex_C
2010-03-19 14:20
2014.05.04
Требование админ прав на 64-битной XP





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский