From 364540b47f81d3c53700d8011a517c1312ab600f Mon Sep 17 00:00:00 2001 From: Kevin Trocolli Date: Tue, 17 Jan 2023 03:17:38 -0500 Subject: [PATCH] iauth: name more struct fields --- amcus/amcus.def | 4 --- amcus/iauth.c | 70 +++++++++++++++++++++++++++++++------------- amcus/iauth.h | 78 +++++++++++++++++++++++++------------------------ 3 files changed, 90 insertions(+), 62 deletions(-) delete mode 100644 amcus/amcus.def diff --git a/amcus/amcus.def b/amcus/amcus.def deleted file mode 100644 index 4b0d3f9..0000000 --- a/amcus/amcus.def +++ /dev/null @@ -1,4 +0,0 @@ -LIBRARY amcus - -EXPORTS - iauth_stub \ No newline at end of file diff --git a/amcus/iauth.c b/amcus/iauth.c index 73f1421..bc83626 100644 --- a/amcus/iauth.c +++ b/amcus/iauth.c @@ -45,15 +45,17 @@ static ULONG STDMETHODCALLTYPE IAuth_Release(IAuth FAR *This) return --REF_COUNT; } -static HRESULT STDMETHODCALLTYPE IAuth_Func3(IAuth FAR *This, int64_t p0) +static HRESULT STDMETHODCALLTYPE IAuth_Initialize(IAuth FAR *This, int64_t p0) { dprintf("IAuth: %s hit! p0 %I64d\n", __func__, p0); + return 0; } -static HRESULT STDMETHODCALLTYPE IAuth_InvalidateAuth(IAuth FAR *This) +static HRESULT STDMETHODCALLTYPE IAuth_Finalize(IAuth FAR *This) { dprintf("IAuth: %s hit!\n", __func__); + return 0; } @@ -66,18 +68,21 @@ static HRESULT STDMETHODCALLTYPE IAuth_Func5(IAuth FAR *This, int64_t p0) static LONG STDMETHODCALLTYPE IAuth_Func6(IAuth FAR *This) { dprintf("IAuth: %s hit!\n", __func__); + return 1; } static HRESULT STDMETHODCALLTYPE IAuth_Func7(IAuth FAR *This) { dprintf("IAuth: %s hit!\n", __func__); + return S_OK; } static HRESULT STDMETHODCALLTYPE IAuth_Func8(IAuth FAR *This) { dprintf("IAuth: %s hit!\n", __func__); + return S_OK; } @@ -85,6 +90,7 @@ static HRESULT STDMETHODCALLTYPE IAuth_Func8(IAuth FAR *This) static HRESULT STDMETHODCALLTYPE IAuth_GetUpdaterState(IAuth FAR *This, struct amcus_updater_state *arr) { // dprintf("IAuth: %s hit!\n", __func__); + // these work with taiko, pokken never hits this char cacfg_ver[6]; wcstombs_s(NULL, cacfg_ver, sizeof(cacfg_ver), config.cacfg_game_ver, sizeof(config.cacfg_game_ver)); @@ -98,20 +104,20 @@ static HRESULT STDMETHODCALLTYPE IAuth_GetUpdaterState(IAuth FAR *This, struct a } memset(arr, 0, sizeof(*arr)); - arr->Member0.Member0 = 1; + arr->Member0.Member0 = 15; arr->Member0.Member4 = 0; arr->Member0.Member8 = 2; arr->Member0.MemberC = 1; arr->Member0.Member10 = 0; - arr->Member18.Member0 = 1; + arr->Member18.Member0 = 9; arr->Member18.Member4 = 0; - arr->Member18.Member8 = 1; - arr->Member18.MemberC = 0; - arr->Member18.Member10 = 28; - arr->Member18.Member14 = 31; - arr->Member18.Member18 = 41; - arr->Member18.Member1C = 50; + arr->Member18.Member8 = 2; + arr->Member18.MemberC = 1; + arr->Member18.Member10 = 27; + arr->Member18.Member14 = 32; + arr->Member18.Member18 = 43; + arr->Member18.Member1C = 52; arr->Member18.Member20 = 59; arr->Member18.cacfg_ver_whole = ver_top; arr->Member18.cacfg_ver_decimal = ver_btm; @@ -142,7 +148,7 @@ static HRESULT STDMETHODCALLTYPE IAuth_GetUpdaterState(IAuth FAR *This, struct a arr->MemberB0 = 0; arr->MemberB8 = 1; arr->MemberBC = 3; - arr->MemberC0 = 15; + arr->MemberC0 = 9; arr->MemberC4 = 0; return S_OK; @@ -152,6 +158,7 @@ static HRESULT STDMETHODCALLTYPE IAuth_GetUpdaterState(IAuth FAR *This, struct a static HRESULT STDMETHODCALLTYPE IAuth_GetCabinetConfig(IAuth FAR *This, struct amcus_cab_config *arr) { // dprintf("IAuth: %s hit!\n", __func__); + memset(arr, 0, sizeof(*arr)); char am_serial[12]; char dongle_serial[13]; @@ -178,7 +185,8 @@ static HRESULT STDMETHODCALLTYPE IAuth_GetCabinetConfig(IAuth FAR *This, struct // Gets things like version and game id static HRESULT STDMETHODCALLTYPE IAuth_GetVersionInfo(IAuth FAR *This, struct amcus_version_info *arr) { - // dprintf("IAuth: %s hit!\n", __func__); + //dprintf("IAuth: %s hit!\n", __func__); + memset(arr, 0, sizeof(*arr)); char game_id[5]; @@ -197,7 +205,7 @@ static HRESULT STDMETHODCALLTYPE IAuth_GetVersionInfo(IAuth FAR *This, struct am strcpy_s(arr->cacfg_game_ver, sizeof(arr->cacfg_game_ver), cacfg_ver); // first 2 are 0 = A - 25 = Z, 2nd two are the two digits strcpy_s(arr->game_board_type, sizeof(arr->game_board_type), "0"); strcpy_s(arr->game_board_id, sizeof(arr->game_board_id), "PCB"); - strcpy_s(arr->auth_url, sizeof(arr->auth_url), "http://titles.hay1ts.me:8080/"); + strcpy_s(arr->auth_url, sizeof(arr->auth_url), "https://mucha.hay1ts.me/"); return S_OK; } @@ -205,12 +213,14 @@ static HRESULT STDMETHODCALLTYPE IAuth_GetVersionInfo(IAuth FAR *This, struct am static HRESULT STDMETHODCALLTYPE IAuth_Func12(IAuth FAR *This) { dprintf("IAuth: %s hit!\n", __func__); + return S_OK; } static HRESULT STDMETHODCALLTYPE IAuth_Func13(IAuth FAR *This) { dprintf("IAuth: %s hit!\n", __func__); + return S_OK; } @@ -218,6 +228,7 @@ static HRESULT STDMETHODCALLTYPE IAuth_Func13(IAuth FAR *This) static HRESULT STDMETHODCALLTYPE IAuth_GetAuthServerResp(IAuth FAR *This, struct amcus_auth_server_resp *arr) { // dprintf("IAuth: %s hit!\n", __func__); + memset(arr, 0, sizeof(*arr)); char uri[257]; @@ -247,25 +258,29 @@ static HRESULT STDMETHODCALLTYPE IAuth_GetAuthServerResp(IAuth FAR *This, struct static HRESULT STDMETHODCALLTYPE IAuth_Func15(IAuth FAR *This) { dprintf("IAuth: %s hit!\n", __func__); + return S_OK; } static HRESULT STDMETHODCALLTYPE IAuth_Func16(IAuth FAR *This) { dprintf("IAuth: %s hit!\n", __func__); + return S_OK; } static HRESULT STDMETHODCALLTYPE IAuth_Func17(IAuth FAR *This) { dprintf("IAuth: %s hit!\n", __func__); + return S_OK; } // Another struct -static HRESULT STDMETHODCALLTYPE IAuth_Func18(IAuth FAR *This, struct amcus_arr18 *arr) +static HRESULT STDMETHODCALLTYPE IAuth_GetMuchaAuthResponse(IAuth FAR *This, struct mucha_boardauth_resp *arr) { // dprintf("IAuth: %s hit!\n", __func__); + return S_OK; } @@ -274,14 +289,16 @@ static HRESULT STDMETHODCALLTYPE IAuth_Func19(IAuth FAR *This, struct amcus_arr1 { // dprintf("IAuth: %s hit!\n", __func__); memset(arr, 0, sizeof(*arr)); - arr->Member0 = 1; // if this isn't 1 taiko thinks it isn't auth'd - return S_OK; + + arr->Member0 = 0; // if this isn't 1 taiko thinks it isn't auth'd + return 1; } // Converts allnet responsed to mucha info static HRESULT STDMETHODCALLTYPE IAuth_Func20(IAuth FAR *This) { dprintf("IAuth: %s hit!\n", __func__); + return S_OK; } @@ -289,6 +306,7 @@ static HRESULT STDMETHODCALLTYPE IAuth_Func20(IAuth FAR *This) static HRESULT STDMETHODCALLTYPE IAuth_Func21(IAuth FAR *This) { dprintf("IAuth: %s hit!\n", __func__); + return S_OK; } @@ -296,6 +314,7 @@ static HRESULT STDMETHODCALLTYPE IAuth_Func21(IAuth FAR *This) static HRESULT STDMETHODCALLTYPE IAuth_Func22(IAuth FAR *This) { dprintf("IAuth: %s hit!\n", __func__); + return S_OK; } @@ -303,13 +322,15 @@ static HRESULT STDMETHODCALLTYPE IAuth_Func22(IAuth FAR *This) static HRESULT STDMETHODCALLTYPE IAuth_Func23(IAuth FAR *This, int64_t p0) { dprintf("IAuth: %s hit! %I64d\n", __func__, p0); - return S_OK; + + return E_ACCESSDENIED; } // more dtmode stuff static HRESULT STDMETHODCALLTYPE IAuth_Func24(IAuth FAR *This) { dprintf("IAuth: %s hit!\n", __func__); + return S_OK; } @@ -317,6 +338,7 @@ static HRESULT STDMETHODCALLTYPE IAuth_Func24(IAuth FAR *This) static HRESULT STDMETHODCALLTYPE IAuth_Func25(IAuth FAR *This) { dprintf("IAuth: %s hit!\n", __func__); + return 1; } @@ -324,6 +346,7 @@ static HRESULT STDMETHODCALLTYPE IAuth_Func25(IAuth FAR *This) static HRESULT STDMETHODCALLTYPE IAuth_Func26(IAuth FAR *This) { dprintf("IAuth: %s hit!\n", __func__); + return S_OK; } @@ -331,6 +354,7 @@ static HRESULT STDMETHODCALLTYPE IAuth_Func26(IAuth FAR *This) static HRESULT STDMETHODCALLTYPE IAuth_Func27(IAuth FAR *This) { dprintf("IAuth: %s hit!\n", __func__); + return 1; } @@ -338,6 +362,7 @@ static HRESULT STDMETHODCALLTYPE IAuth_Func27(IAuth FAR *This) static HRESULT STDMETHODCALLTYPE IAuth_Func28(IAuth FAR *This) { dprintf("IAuth: %s hit!\n", __func__); + return S_OK; } @@ -345,6 +370,7 @@ static HRESULT STDMETHODCALLTYPE IAuth_Func28(IAuth FAR *This) static HRESULT STDMETHODCALLTYPE IAuth_Func29(IAuth FAR *This) { dprintf("IAuth: %s hit!\n", __func__); + return S_OK; } @@ -352,6 +378,7 @@ static HRESULT STDMETHODCALLTYPE IAuth_Func29(IAuth FAR *This) static HRESULT STDMETHODCALLTYPE IAuth_Func30(IAuth FAR *This) { dprintf("IAuth: %s hit!\n", __func__); + return S_OK; } @@ -359,6 +386,7 @@ static HRESULT STDMETHODCALLTYPE IAuth_Func30(IAuth FAR *This) static HRESULT STDMETHODCALLTYPE IAuth_Func31(IAuth FAR *This) { dprintf("IAuth: %s hit!\n", __func__); + return S_OK; } @@ -366,6 +394,7 @@ static HRESULT STDMETHODCALLTYPE IAuth_Func31(IAuth FAR *This) static HRESULT STDMETHODCALLTYPE IAuth_Func32(IAuth FAR *This, int64_t p0, int64_t* p1) { dprintf("IAuth: %s hit! p0 %I64d p1 %I64d\n", __func__, p0, *p1); + return S_OK; } @@ -373,6 +402,7 @@ static HRESULT STDMETHODCALLTYPE IAuth_Func32(IAuth FAR *This, int64_t p0, int64 static HRESULT STDMETHODCALLTYPE IAuth_Func33(IAuth FAR *This, int64_t p0, int64_t* p1, int64_t* p2, int64_t* p3, int64_t* p4) { dprintf("IAuth: %s hit! p0 %I64d p1 %I64d p2 %I64d p3 %I64d p4 %I64d\n", __func__, p0, *p1, *p2, *p3, *p4); + return S_OK; } @@ -380,8 +410,8 @@ IAuthVtbl iauth_vtbl = { .QueryInterface = IAuth_QueryInterface, .AddRef = IAuth_AddRef, .Release = IAuth_Release, - .Func3 = IAuth_Func3, - .InvalidateAuth = IAuth_InvalidateAuth, + .Initialize = IAuth_Initialize, + .Finalize = IAuth_Finalize, .Func5 = IAuth_Func5, .Func6 = IAuth_Func6, .Func7 = IAuth_Func7, @@ -395,7 +425,7 @@ IAuthVtbl iauth_vtbl = { .Func15 = IAuth_Func15, .Func16 = IAuth_Func16, .Func17 = IAuth_Func17, - .Func18 = IAuth_Func18, + .GetMuchaAuthResponse = IAuth_GetMuchaAuthResponse, .Func19 = IAuth_Func19, .Func20 = IAuth_Func20, .Func21 = IAuth_Func21, diff --git a/amcus/iauth.h b/amcus/iauth.h index 684f4dc..08318da 100644 --- a/amcus/iauth.h +++ b/amcus/iauth.h @@ -101,45 +101,45 @@ struct amcus_cab_config { }; /* Memory Size: 3808 */ -struct amcus_arr18 { - /* Offset: 0 */ char Member0[256]; - /* Offset: 256 */ char Member100[256]; - /* Offset: 512 */ char Member200[256]; - /* Offset: 768 */ char Member300[256]; - /* Offset: 1024 */ char Member400[256]; - /* Offset: 1280 */ char Member500[16]; - /* Offset: 1296 */ char Member510[16]; - /* Offset: 1312 */ char Member520[256]; - /* Offset: 1568 */ char Member620[128]; - /* Offset: 1696 */ char Member6A0[64]; - /* Offset: 1760 */ char Member6E0[64]; - /* Offset: 1824 */ char Member720[64]; - /* Offset: 1888 */ char Member760[64]; - /* Offset: 1952 */ char Member7A0[256]; - /* Offset: 2208 */ char Member8A0[256]; - /* Offset: 2464 */ char Member9A0[256]; - /* Offset: 2720 */ char MemberAA0[256]; - /* Offset: 2976 */ char MemberBA0[64]; - /* Offset: 3040 */ char MemberBE0[32]; - /* Offset: 3072 */ char MemberC00[32]; - /* Offset: 3104 */ char MemberC20[32]; - /* Offset: 3136 */ char MemberC40[32]; - /* Offset: 3168 */ char MemberC60[32]; - /* Offset: 3200 */ char MemberC80[128]; - /* Offset: 3328 */ char MemberD00[128]; - /* Offset: 3456 */ char MemberD80[128]; - /* Offset: 3584 */ char MemberE00[128]; - /* Offset: 3712 */ char MemberE80[16]; - /* Offset: 3728 */ char MemberE90[16]; - /* Offset: 3744 */ char MemberEA0[16]; - /* Offset: 3760 */ char MemberEB0[32]; - /* Offset: 3792 */ char MemberED0[8]; - /* Offset: 3800 */ char MemberED8[8]; +struct mucha_boardauth_resp { + /* Offset: 0 */ char url_charge[256]; + /* Offset: 256 */ char url_file[256]; + /* Offset: 512 */ char url_url1[256]; + /* Offset: 768 */ char url_url2[256]; + /* Offset: 1024 */ char url_url3[256]; + /* Offset: 1280 */ char place_id[16]; + /* Offset: 1296 */ char country_cd[16]; + /* Offset: 1312 */ char shop_name[256]; + /* Offset: 1568 */ char shop_nickname[128]; + /* Offset: 1696 */ char area0[64]; + /* Offset: 1760 */ char area1[64]; + /* Offset: 1824 */ char area2[64]; + /* Offset: 1888 */ char area3[64]; + /* Offset: 1952 */ char area_full0[256]; + /* Offset: 2208 */ char area_full1[256]; + /* Offset: 2464 */ char area_full2[256]; + /* Offset: 2720 */ char area_full3[256]; + /* Offset: 2976 */ char shop_name_en[64]; + /* Offset: 3040 */ char shop_nickname_en[32]; + /* Offset: 3072 */ char area0_en[32]; + /* Offset: 3104 */ char area1_en[32]; + /* Offset: 3136 */ char area2_en[32]; + /* Offset: 3168 */ char area3_en[32]; + /* Offset: 3200 */ char area_full0_en[128]; + /* Offset: 3328 */ char area_full1_en[128]; + /* Offset: 3456 */ char area_full2_en[128]; + /* Offset: 3584 */ char area_full3_en[128]; + /* Offset: 3712 */ char prefecture_id[16]; + /* Offset: 3728 */ char expiration_date[16]; + /* Offset: 3744 */ char use_token[16]; + /* Offset: 3760 */ char consume_token[32]; + /* Offset: 3792 */ char dongle_flag[8]; + /* Offset: 3800 */ char force_boot[8]; }; /* Memory Size: 56 */ struct amcus_arr19 { - /* Offset: 0 */ /* ENUM32 */ uint32_t Member0; + /* Offset: 0 */ /* ENUM32 */ uint64_t Member0; /* Offset: 8 */ int64_t Member8; /* Offset: 16 */ int64_t Member10; /* Offset: 24 */ int64_t Member18; @@ -147,6 +147,8 @@ struct amcus_arr19 { /* Offset: 40 */ int64_t Member28; /* Offset: 48 */ int16_t Member30; /* Offset: 50 */ int16_t Member32; + /* Offset: 52 */ int16_t Member34; + /* Offset: 54 */ int16_t Member36; }; /* Memory Size: 2210 */ @@ -174,8 +176,8 @@ DECLARE_INTERFACE_(IAuth,CStdStubBuffer) STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD_(HRESULT,Func3)(THIS_ int64_t p0) PURE; - STDMETHOD_(HRESULT,InvalidateAuth)(THIS) PURE; + STDMETHOD_(HRESULT,Initialize)(THIS_ int64_t p0) PURE; + STDMETHOD_(HRESULT,Finalize)(THIS) PURE; STDMETHOD_(HRESULT,Func5)(THIS_ int64_t p0) PURE; STDMETHOD_(LONG,Func6)() PURE; STDMETHOD_(HRESULT,Func7)() PURE; @@ -189,7 +191,7 @@ DECLARE_INTERFACE_(IAuth,CStdStubBuffer) STDMETHOD_(HRESULT,Func15)() PURE; STDMETHOD_(HRESULT,Func16)() PURE; STDMETHOD_(HRESULT,Func17)() PURE; - STDMETHOD_(HRESULT,Func18)(THIS_ struct amcus_arr18 *arr) PURE; + STDMETHOD_(HRESULT,GetMuchaAuthResponse)(THIS_ struct mucha_boardauth_resp *arr) PURE; STDMETHOD_(HRESULT,Func19)(THIS_ struct amcus_arr19 *arr) PURE; STDMETHOD_(HRESULT,Func20)() PURE; STDMETHOD_(HRESULT,Func21)() PURE;