You've already forked JapariBypass
							
							forked from katboi01/JapariBypass
		
	removed separate update endpoint
This commit is contained in:
		
							
								
								
									
										58
									
								
								dmmBypass.py
									
									
									
									
									
								
							
							
						
						
									
										58
									
								
								dmmBypass.py
									
									
									
									
									
								
							| @@ -80,43 +80,54 @@ def retrieve_auth_keys(login, password, token, captcha, session : requests.Sessi | |||||||
|         print("Failed to log in:", e) |         print("Failed to log in:", e) | ||||||
|         return None, None |         return None, None | ||||||
|      |      | ||||||
| def retrieve_update_params(game_id, login_secure, login_session, use_proxy): | def agree_to_game_terms(game_id, use_proxy): | ||||||
|     try: |     try: | ||||||
|         print("Retrieving update file list") |         print("Accepting updated game terms of use") | ||||||
|         data = {"product_id":game_id,"game_type":"GCL","game_os":"win"} |  | ||||||
|         headers = {"User-Agent": "DMMGamePlayer5-Win/5.3.12 Electron/32.1.0", "Client-App": "DMMGamePlayer5", "Client-version": "5.3.12", "Content-Type": "application/json"} |         headers = {"User-Agent": "DMMGamePlayer5-Win/5.3.12 Electron/32.1.0", "Client-App": "DMMGamePlayer5", "Client-version": "5.3.12", "Content-Type": "application/json"} | ||||||
|         cookies = {"login_secure_id":login_secure, "login_session_id":login_session} |         url = "" if use_proxy else "https://apidgp-gameplayer.games.dmm.com/v5/agreement/confirm/client" | ||||||
|         url = "https://katworks.sytes.net/KF/Api/DMM/filelist" if use_proxy else "https://apidgp-gameplayer.games.dmm.com/v5/r2/filelist/cl" |         data = {"product_id":game_id,"is_notification":False,"is_myapp":False} | ||||||
|         result = requests.post(url, cookies=cookies, headers=headers, json=data) |         result = requests.post(url, headers=headers, json=data) | ||||||
|         result.raise_for_status() |         result.raise_for_status() | ||||||
|         result_json = result.json() |         result_json = result.json() | ||||||
|         if result_json["result_code"] != 100: |         if result_json["result_code"] != 100: | ||||||
|             raise Exception(f'{result_json["result_code"]}: {result_json["error"]}') |             raise Exception(f'{result_json["result_code"]}: {result_json["error"]}') | ||||||
|         data = result_json["data"] |         return True | ||||||
|         game_version = data["latest_version"] |  | ||||||
|         print("Latest version:", game_version) |  | ||||||
|         file_list_url = data["file_list_url"] |  | ||||||
|         file_list_params = data["sign"] |  | ||||||
|         file_list_params = "?" + file_list_params.replace(";", "&").replace("CloudFront-", "") |  | ||||||
|         return file_list_url, file_list_params |  | ||||||
|     except Exception as e: |     except Exception as e: | ||||||
|         print("Failed to retrieve update file list:", e) |         print("Failed to accept terms of use:", e) | ||||||
|         return None, None |         return False | ||||||
|  |  | ||||||
| def retrieve_launch_params(game_id, mac_addr, hdd_serial, motherboard, login_secure, login_session, use_proxy): | def retrieve_launch_params(game_id, mac_addr, hdd_serial, motherboard, login_secure, login_session, use_proxy, update_game): | ||||||
|     try: |     try: | ||||||
|         print("Retrieving launch arguments") |         print("Retrieving launch arguments") | ||||||
|         data = {"product_id":game_id,"game_type":"GCL","game_os":"win","launch_type":"LIB","mac_address":mac_addr,"hdd_serial":hdd_serial,"motherboard":motherboard,"user_os":"win"} |         data = {"product_id":game_id,"game_type":"GCL","game_os":"win","launch_type":"LIB","mac_address":mac_addr,"hdd_serial":hdd_serial,"motherboard":motherboard,"user_os":"win"} | ||||||
|         headers = {"User-Agent": "DMMGamePlayer5-Win/5.3.12 Electron/32.1.0", "Client-App": "DMMGamePlayer5", "Client-version": "5.3.12", "Content-Type": "application/json"} |         headers = {"User-Agent": "DMMGamePlayer5-Win/5.3.12 Electron/32.1.0", "Client-App": "DMMGamePlayer5", "Client-version": "5.3.12", "Content-Type": "application/json"} | ||||||
|         cookies = {"login_secure_id":login_secure, "login_session_id":login_session} |         cookies = {"login_secure_id":login_secure, "login_session_id":login_session} | ||||||
|         url = "https://katworks.sytes.net/KF/Api/DMM/launch" if use_proxy else "https://apidgp-gameplayer.games.dmm.com/v5/r2/launch/cl" |         if update_game: | ||||||
|  |             url = "https://katworks.sytes.net/KF/Api/DMM/update" if use_proxy else "https://apidgp-gameplayer.games.dmm.com/v5/r2/launch/cl" | ||||||
|  |         else: | ||||||
|  |             url = "https://katworks.sytes.net/KF/Api/DMM/launch" if use_proxy else "https://apidgp-gameplayer.games.dmm.com/v5/launch/cl" | ||||||
|         result = requests.post(url, cookies=cookies, headers=headers, json=data) |         result = requests.post(url, cookies=cookies, headers=headers, json=data) | ||||||
|         result.raise_for_status() |         result.raise_for_status() | ||||||
|         result_json = result.json() |         result_json = result.json() | ||||||
|         if result_json["result_code"] != 100: |         if result_json["result_code"] == 308: | ||||||
|  |             if agree_to_game_terms(game_id, use_proxy): | ||||||
|  |                 result = requests.post(url, cookies=cookies, headers=headers, json=data) | ||||||
|  |                 result.raise_for_status() | ||||||
|  |                 result_json = result.json() | ||||||
|  |                 if result_json["result_code"] != 100: | ||||||
|  |                     raise Exception(f'{result_json["result_code"]}: {result_json["error"]}') | ||||||
|  |             else: | ||||||
|  |                 raise Exception("Failed to agree to updated game terms of use. Use the DMM app to confirm.") | ||||||
|  |         elif result_json["result_code"] != 100: | ||||||
|             raise Exception(f'{result_json["result_code"]}: {result_json["error"]}') |             raise Exception(f'{result_json["result_code"]}: {result_json["error"]}') | ||||||
|         data = result_json["data"] |         data = result_json["data"] | ||||||
|         return data["execute_args"] |         if update_game: | ||||||
|  |             game_version = data["latest_version"] | ||||||
|  |             print("Latest version:", game_version) | ||||||
|  |             file_list_params = "?" + data["sign"].replace(";", "&").replace("CloudFront-", "") | ||||||
|  |             return data["execute_args"], data["file_list_url"], file_list_params | ||||||
|  |         else: | ||||||
|  |             return data["execute_args"], None, None | ||||||
|     except Exception as e: |     except Exception as e: | ||||||
|         print("Failed to retrieve launch arguments:", e) |         print("Failed to retrieve launch arguments:", e) | ||||||
|  |  | ||||||
| @@ -145,13 +156,8 @@ def main(config): | |||||||
|          |          | ||||||
|         if not use_proxy: input("Enable VPN now and press Enter") |         if not use_proxy: input("Enable VPN now and press Enter") | ||||||
|  |  | ||||||
|         if update_game: |         execute_args, file_list_url, file_access_params = retrieve_launch_params(game_id, mac_addr, hdd_serial, motherboard, login_secure, login_session, use_proxy, update_game) | ||||||
|             file_list_url, file_access_params = retrieve_update_params(game_id, login_secure, login_session, use_proxy) |         if execute_args == None or (update_game and (file_list_url == None or file_access_params == None)): | ||||||
|             if file_list_url == None or file_access_params == None: |  | ||||||
|                 return |  | ||||||
|  |  | ||||||
|         execute_args = retrieve_launch_params(game_id, mac_addr, hdd_serial, motherboard, login_secure, login_session, use_proxy) |  | ||||||
|         if execute_args == None: |  | ||||||
|             return |             return | ||||||
|  |  | ||||||
|         if not use_proxy: input("Disable VPN now and press Enter") |         if not use_proxy: input("Disable VPN now and press Enter") | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user