I've added a print statement to v8/src/parsing/parsing.cc to output JS source code before compilation to deobfuscate code. I also want to print the URL associated with the JS if it exists.
There are objects, such as source_url, in parser.cc and scanner.cc that and would appreciate advice about extracting the URL from them if they actually contain that information.
If they don't contain JS source URLs where should I look elsewhere in Chromium source code?
The
source_urlthat the scanner passes to the parser only reflects explicit "sourceURL" comments in the source; any code that needs deobfuscation probably won't have those.To get the script URL, you'll want to look at
v8::internal::Script::name(). It can be av8::internal::String, orundefinedif the embedder (i.e. Chromium) didn't provide a name for the given script -- which can in particular happen when the script doesn't have a name/URL, such as when it comes from the DevTools console or a dynamically-generated source string.