mirror of https://github.com/decompals/wibo.git
mwcc 4.*
This commit is contained in:
parent
916c10543d
commit
f11759cc71
2
common.h
2
common.h
|
@ -20,7 +20,7 @@ namespace wibo {
|
||||||
void *resolveUser32(const char *name);
|
void *resolveUser32(const char *name);
|
||||||
void *resolveOle32(const char *name);
|
void *resolveOle32(const char *name);
|
||||||
void *resolveAdvApi32(const char *name);
|
void *resolveAdvApi32(const char *name);
|
||||||
void *resolveLmgr11(uint16_t ordinal);
|
void *resolveLmgr(uint16_t ordinal);
|
||||||
void *resolveStubByName(const char *dllName, const char *funcName);
|
void *resolveStubByName(const char *dllName, const char *funcName);
|
||||||
void *resolveStubByOrdinal(const char *dllName, uint16_t ordinal);
|
void *resolveStubByOrdinal(const char *dllName, uint16_t ordinal);
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
namespace lmgr11 {
|
namespace lmgr {
|
||||||
int lp_checkout(int a, int b, const char* c, const char* d, int e, const char* f, int* out) {
|
int lp_checkout(int a, int b, const char* c, const char* d, int e, const char* f, int* out) {
|
||||||
DEBUG_LOG("lp_checkout %d %d %s %s %d %s\n", a, b, c, d, e, f);
|
DEBUG_LOG("lp_checkout %d %d %s %s %d %s\n", a, b, c, d, e, f);
|
||||||
*out = 1234;
|
*out = 1234;
|
||||||
|
@ -13,12 +13,12 @@ namespace lmgr11 {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void *wibo::resolveLmgr11(uint16_t ordinal) {
|
void *wibo::resolveLmgr(uint16_t ordinal) {
|
||||||
switch (ordinal) {
|
switch (ordinal) {
|
||||||
case 189:
|
case 189:
|
||||||
return (void*)lmgr11::lp_checkin;
|
return (void*)lmgr::lp_checkin;
|
||||||
case 190:
|
case 190:
|
||||||
return (void*)lmgr11::lp_checkout;
|
return (void*)lmgr::lp_checkout;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
6
main.cpp
6
main.cpp
|
@ -82,8 +82,10 @@ void *wibo::resolveStubByName(const char *dllName, const char *funcName) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void *wibo::resolveStubByOrdinal(const char *dllName, uint16_t ordinal) {
|
void *wibo::resolveStubByOrdinal(const char *dllName, uint16_t ordinal) {
|
||||||
if (strcmp(dllName, "LMGR11.dll") == 0 || strcmp(dllName, "LMGR326B.dll") == 0) {
|
if (strcmp(dllName, "LMGR11.dll") == 0 ||
|
||||||
void* func = wibo::resolveLmgr11(ordinal);
|
strcmp(dllName, "LMGR326B.dll") == 0 ||
|
||||||
|
strcmp(dllName, "LMGR8C.dll") == 0) {
|
||||||
|
void* func = wibo::resolveLmgr(ordinal);
|
||||||
if (func)
|
if (func)
|
||||||
return func;
|
return func;
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,7 @@ namespace ole32 {
|
||||||
const GUID *riid,
|
const GUID *riid,
|
||||||
void **ppv
|
void **ppv
|
||||||
) {
|
) {
|
||||||
// for mwcc_41_60126:
|
// when license.dat is missing:
|
||||||
// rclsid = CLSID_ShellLink (0x21401), riid = IID_IShellLinkA (0x214ee)
|
// rclsid = CLSID_ShellLink (0x21401), riid = IID_IShellLinkA (0x214ee)
|
||||||
// and then it crashes with a null pointer deref
|
// and then it crashes with a null pointer deref
|
||||||
DEBUG_LOG("CoCreateInstance 0x%x %p %d 0x%x %p\n", rclsid->Data1, pUnkOuter, dwClsContext, riid->Data1, *ppv);
|
DEBUG_LOG("CoCreateInstance 0x%x %p %d 0x%x %p\n", rclsid->Data1, pUnkOuter, dwClsContext, riid->Data1, *ppv);
|
||||||
|
|
|
@ -4,7 +4,6 @@ namespace version {
|
||||||
unsigned int WIN_FUNC GetFileVersionInfoSizeA(const char* lptstrFilename, unsigned int* outZero) {
|
unsigned int WIN_FUNC GetFileVersionInfoSizeA(const char* lptstrFilename, unsigned int* outZero) {
|
||||||
DEBUG_LOG("GetFileVersionInfoSizeA %s\n", lptstrFilename);
|
DEBUG_LOG("GetFileVersionInfoSizeA %s\n", lptstrFilename);
|
||||||
*outZero = 0;
|
*outZero = 0;
|
||||||
// stub: signal an error
|
|
||||||
wibo::lastError = 0;
|
wibo::lastError = 0;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue