我对将v8嵌入dll有疑问,请帮助我,非常感谢。
我有一个针对ollydbg2.01的vs2013的odbgscript.dll插件项目,这个dll调用v8(版本v8-5.6.331)来执行javascript语句。 ollydbg.exe调用odbgscript.dll。我在odbgscript.dll中调用v8代码如下:
#include "v8.h"
using namespace v8
V8::InitializeICU();
V8::Initialize();
Isolate::CreateParams create_params;
Isolate* isolate = Isolate::New(create_params);
Isolate::Scope isolate_scope(isolate);
HandleScope handle_scope(isolate);
Local<Context> context = Context::New(isolate);
Context::Scope context_scope(context);
Local<String> source = String::NewFromUtf8(isolate, "'hello'+'world'");
Local<Script> script = Script::Compile(source);
Local<Value> result = script->Run();
上面的代码可以通过vs2013成功编译,但是在运行ollydbg.exe之后,执行odbgscript.dll插件,ollydbg.exe被中止,一些错误提示如下:
操作系统:6.1.7601,平台2(Service Pack 1) OllyDbg版本:2.01.00 例外代码:C0000005 参数:00000000 00000000 例外地址:00000000
答案 0 :(得分:0)
我解决了这个问题。不同的v8版本需要不同的语法语句。更改编号,你可以得到相应的例子。
https://chromium.googlesource.com/v8/v8/+/branch-heads/5.6/samples/hello-world.cc