Как строки Javascript кодируются в Chrome? - PullRequest
0 голосов
/ 05 августа 2011

Я анализирую через WinDbg адресное пространство памяти Chrome.Как и в случае с другими процессами, мне нужно извлечь все строки, которые в данный момент размещены в памяти.

Для этого я использую WinDbg в качестве неинвазивного отладчика и команду

s -u 0x0 L?0xffffffff "string"

если Unicode и

s -a 0x0 L?0xffffffff "string"

если asci.

Однако, похоже, я скучаю по всем строкам, которые выделены как строковые объекты JavaScript.Это заставляет меня думать, что в V8 (движке Chrome) кодировка отличается, и, следовательно, байтовое представление моей строки поиска также отличается.

Есть идеи о том, как это работает?Некоторое время я изучал документацию по V8, но пока безрезультатно: (

1 Ответ

1 голос
/ 08 августа 2011

Строки в V8 не всегда хранятся в виде последовательности символов, они также могут храниться как ConsString, как в Lisp. Вы можете проверить фактические структуры C ++, используемые в V8 источниках .

...