I'm doing research and using Frida for dynamic binary instrumentation v8 in 
Chromium. I'm interested in how the v8::String (or v8::internal::String) 
object is stored in memory. I call setTimeout("console.log ('12339');", 
100); on the web page  and I intercept the setTimeoutMethodCallback call at 
the interpreter level. After that I get access to the String object from 
FunctionCallbackInfo <v8 :: Value> args.

The first call the String object in memory looks like this:

<https://lh3.googleusercontent.com/-CdFJoQ1izkE/WvRFwz1X9yI/AAAAAAAAACc/snMn50OjU2Q3KdIhIl4TNOOFEfTnZm-BgCLcBGAs/s1600/first.png>








You can see that there is a line through 23 bytes, and before it its length.

But already with the repeated call setTimeout ("console.log ('12339');", 
100); the String object looks like this:

<https://lh3.googleusercontent.com/-qxFoeD7D19U/WvRGAgZXedI/AAAAAAAAACk/Wo4_tMv5aG0bnvetTE7TNWAZ1Nj1EYdggCLcBGAs/s1600/second.png>








The length of the line is also visible, but the line itself is no longer 
visible. What is it? Is this caching? Is it a feature of v8 or Chromium? 
Why does this happen and what is the structure of the String object now? 
And where is the line now? Please help with research. I did not find the 
documentation for something like this.

-- 
-- 
v8-users mailing list
v8-users@googlegroups.com
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to