Results 1 to 1 of 1

Thread: how to call chromium V8 IE6 by vb6?miniie6 only one dll

  1. #1

    Thread Starter
    PowerPoster
    Join Date
    Jan 2020
    Posts
    3,746

    how to call chromium V8 IE6 by vb6?miniie6 only one dll

    mshtml.dll+JScript.dll(v8 7.5)Only for research on technical feasibility, please do not use for commercial purposes

    Open source, IE6 is installed on chromium V8, and the classic IE6 is about to be reborn from the ashes 2

    inetcore/mshtml/mshtml.dll · weolar/miniie6 - Gitee.com
    https://gitee.com/weolar_admin/minii...tml/mshtml.dll

    https://zhuanlan.zhihu.com/p/369676856

    weolar/miniie6
    https://gitee.com/weolar_admin/miniie6/tree/master
    -----------------------------------------
    Xiyuan, he implemented a simplified version of JScript.dll. Based on this principle, I changed it slightly. After adapting to the v8 7.5 interface, I fixed some small bugs that ran on win10, a brand new version of Stitching Monster. ie6 was reborn from the ashes:

    The analysis part is based on IE6, and the script engine is based on v8...an old vintage car, coupled with the most advanced engine, will soon be on the road again, and it can even run on win10, hahaha.
    ------------------------------

    weolar/miniblink49: a lighter, faster browser kernel of blink to integrate HTML UI in your app.
    A small, lightweight browser kernel to replace wke and libcef
    https://github.com/weolar/miniblink49
    Name:  miniie6_dll.jpg
Views: 311
Size:  20.2 KB

    Code:
    Private Declare Function CreateHTMLPropertyPage Lib "mshtml.dll" (ByVal arg1 As Long, ByVal arg2 As Long) As Long
    Private Declare Function DllCanUnloadNow Lib "mshtml.dll" () As Long
    Private Declare Function DllEnumClassObjects Lib "mshtml.dll" (ByVal arg1 As Long, ByVal arg2 As Long, ByVal arg3 As Long) As Long
    Private Declare Function DllGetClassObject Lib "mshtml.dll" (ByVal arg1 As Long, ByVal arg2 As Long, ByVal arg3 As Long) As Long
    Private Declare Function DllInstall Lib "mshtml.dll" (ByVal Install As Long, ByVal CmdLine As Long) As Long
    Private Declare Function DllRegisterServer Lib "mshtml.dll" () As Long
    Private Declare Function DllUnregisterServer Lib "mshtml.dll" () As Long
    Private Declare Function MatchExactGetIDsOfNames Lib "mshtml.dll" (ByVal arg1 As Long, ByVal arg2 As Long, ByVal arg3 As Long, ByVal arg4 As Long, ByVal arg5 As Long, ByVal arg6 As Long, ByVal arg7 As Long) As Long
    Private Declare Function PrintHTML Lib "mshtml.dll" (ByVal arg1 As Long, ByVal arg2 As Long, ByVal arg3 As Long, ByVal arg4 As Long) As Long
    Private Declare Function RNIGetCompatibleVersion Lib "mshtml.dll" () As Long
    Private Declare Function RunHTMLApplication Lib "mshtml.dll" (ByVal arg1 As Long, ByVal arg2 As Long, ByVal arg3 As Long, ByVal arg4 As Long) As Long
    Private Declare Function ShowHTMLDialog Lib "mshtml.dll" (ByVal arg1 As Long, ByVal arg2 As Long, ByVal arg3 As Long, ByVal arg4 As Long, ByVal arg5 As Long, ByVal arg6 As Long) As Long
    Private Declare Function ShowHTMLDialogEx Lib "mshtml.dll" (ByVal arg1 As Long, ByVal arg2 As Long, ByVal arg3 As Long, ByVal arg4 As Long, ByVal arg5 As Long, ByVal arg6 As Long) As Long
    Private Declare Function ShowModalDialog Lib "mshtml.dll" (ByVal arg1 As Long, ByVal arg2 As Long, ByVal arg3 As Long, ByVal arg4 As Long, ByVal arg5 As Long) As Long
    Private Declare Function ShowModelessHTMLDialog Lib "mshtml.dll" (ByVal arg1 As Long, ByVal arg2 As Long, ByVal arg3 As Long, ByVal arg4 As Long, ByVal arg5 As Long) As Long
    Private Declare Function com_ms_osp_ospmrshl_classInit Lib "mshtml.dll" () As Long
    Private Declare Function com_ms_osp_ospmrshl_copyToExternal Lib "mshtml.dll" () As Long
    Private Declare Function com_ms_osp_ospmrshl_releaseByValExternal Lib "mshtml.dll" () As Long
    Private Declare Function com_ms_osp_ospmrshl_toJava Lib "mshtml.dll" () As Long
    Knowledge source: I have always wanted to do something after Microsoft's xp source code was leaked.

    I remember ten years ago, when I was tossing about the source code of IE5.5 in win2k that was leaked that year. After a lot of effort that year, some documents were not found. Later, when I saw Wan Lianwen's article, I realized that some of the js bindings of dom were dynamically generated by using tools with *.pdl files. Even so, the source code of IE5.5 was very imperfect. For example, the CSS function was very weak and there was no js code.

    So after this xp code leak, I hurried to research the related parts of ie. The part of ie is in P:\code\Win2K3\src\inetcore\mshtml. According to the online video, I successfully compiled most of the files in the virtual machine. Sure enough, the mshtml.dll of ie is complete.

    If it is just based on the compilation chain of the original version of windows, it feels meaningless. So I rebuilt a vs project, took out the dynamically generated code separately, merged it into P:\code\Win2K3\src\inetcore\mshtml, and fixed a series of vs2019 compilation errors for the old c++ syntax, and finally mshtml.dll is compiled and passed in VS.

    But this time the xp code has a huge problem. The code of JScript.dll has not been leaked, the same as win2k back then. I feel that this JScript.dll is not written by Microsoft at all, otherwise there are other codes, but this one is missing. . .

    Fortunately, it was supported by the csdn moderator "Xiyuan". He came up with a solution that uses the v8 engine to replace JScript.dll. I slightly modified and improved his plan. At this point, I have to praise Microsoft's com mechanism. The coupling between dlls can be solved very well. Various dlls can be completely independent of each other's interface, as long as they implement several interfaces according to the com mechanism, they can be replaced. For example, mshtml.dll relies on JScript.dll, but mshtml.dll does not care who implements the js engine at all. It only needs to query the relevant interface pointers to work. What's even more powerful is that this interface pointer can also be cross-process, or even cross-machine, cross-network (it seems to be called the dcom mechanism?).

    Xiyuan, he implemented a simplified version of JScript.dll. Based on this principle, I changed it slightly. After adapting to the v8 7.5 interface, I fixed some small bugs that ran on win10, a brand new version of Stitching Monster. ie6 was reborn from the ashes:

    The analysis part is based on IE6, and the script engine is based on v8...an old vintage car, coupled with the most advanced engine, will soon be on the road again, and it can even run on win10, hahaha.


    There is nothing wrong with running the local webpage
    However, it is still very imperfect, mainly because I haven't compiled the network layer separately. The current network layer needs to rely on urlmon.dll. This thing uses CoCreateInstance internally. When obtaining some interface pointers, it will re-obtain the system mshtml.dll interface pointers. As a result, if you open the remote network, it will crash because of running to the system mshtml. In the future, I need to hook all CoCreateInstances of the process and redirect them to the local dll.

    The source code is open source

    weolar/miniie6

    gitee.com
    When compiling, open sln under build to compile. In addition:

    1. In many places in the code, I have written the absolute path to death. Please modify it to your local path when compiling.

    2. See my miniblink open source project for the header files and code of v8:

    weolar/miniblink49

    github.com
    icon


    I haven't thought of the use of this code, purely for fun. Microsoft's Legal Department, please don't come to me
    Last edited by xiaoyao; May 5th, 2021 at 02:23 AM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width