mirror of
https://github.com/iriselia/xgmsv.git
synced 2025-04-03 14:28:26 +08:00
226 lines
4.3 KiB
Python
226 lines
4.3 KiB
Python
|
|
recv_opcodes = {
|
|
"sz": "w",
|
|
"pg": "EV",
|
|
"UUN": "M",
|
|
"KeOX": "EN",
|
|
"ik": "DU",
|
|
"eL": "EO",
|
|
"NgMy": "BU",
|
|
"cEj": "JB",
|
|
"IMv": "LB",
|
|
"Rg": "B",
|
|
"Ak": "ID",
|
|
"iVfo": "IDF",
|
|
"fIM": "PI",
|
|
"QpfE": "DI",
|
|
"woz": "DG",
|
|
"FvWm": "DP",
|
|
"yi": "MI",
|
|
"fS": "IR",
|
|
"CV": "MSG",
|
|
"kza": "ALI",
|
|
"LaR": "ALN",
|
|
"rMsv": "PMSG",
|
|
"FPkR": "DAB",
|
|
"vcAz": "AAB",
|
|
"Ufm": "GI",
|
|
"GY": "GT",
|
|
"CZ": "GMR",
|
|
"uHb": "BGT",
|
|
"npzi": "AGM",
|
|
"XIsR": "LG",
|
|
"dbQC": "RGM",
|
|
"uId": "GML",
|
|
"PfqV": "PGML",
|
|
"nkda": "GD",
|
|
"HoW": "PRV",
|
|
"Ot": "PRS",
|
|
"TLKH": "PRD",
|
|
"wD": "PRE",
|
|
"GH": "PRM",
|
|
"lz": "PRO",
|
|
"nB": "L",
|
|
"uSr": "TK",
|
|
"dcMv": "FS",
|
|
"FVm": "HL",
|
|
"zn": "PR",
|
|
"LKQy": "KS",
|
|
"Ukuy": "MP",
|
|
"iET": "GFL",
|
|
"McVa": "GPD",
|
|
"as": "GFLI",
|
|
"mjCv": "GPDI",
|
|
"BG": "IH",
|
|
"MIS": "AC",
|
|
"klF": "ACS",
|
|
"RXr": "MU",
|
|
"sM": "TU",
|
|
"ixH": "TRPL",
|
|
"QeuC": "TRS",
|
|
"aiAb": "TROP",
|
|
"suI": "TRCL",
|
|
"OU": "TROC",
|
|
"Flvp": "PS",
|
|
"zGp": "ST",
|
|
"tj": "DT",
|
|
"ACwB": "FT",
|
|
"IHw": "LVUP",
|
|
"kjSK": "PLVUP",
|
|
"Noeb": "SKSW",
|
|
"HJQp": "PSSW",
|
|
"ih": "POS",
|
|
"ycX": "KN",
|
|
"xD": "WN",
|
|
"cZt": "SP",
|
|
"JFVf": "ClientLogin",
|
|
"aSEl": "CreateNewChar",
|
|
"Godf": "CharDelete",
|
|
"emRV": "CharLogin",
|
|
"Gp": "CharList",
|
|
"WA": "CharLogout",
|
|
"yp": "ProcGet",
|
|
"rvb": "PlayerNumGet",
|
|
"Or": "Echo",
|
|
"IcE": "Shutdown",
|
|
"DE": "FC",
|
|
"PGXE": "CH",
|
|
"lO": "CharLoginGate",
|
|
"Xoee": "PVUP",
|
|
"ylGN": "StallStart",
|
|
"JMh": "StallEnd",
|
|
"ElVN": "StallBrowse",
|
|
"wAo": "StallBuy",
|
|
}
|
|
|
|
send_opcodes = {
|
|
"Yx": "StallBuy",
|
|
"KXhH": "StallEnd",
|
|
"Tmrx": "StallStart",
|
|
"tq": "MAC",
|
|
"ed": "PVUP",
|
|
"PfM": "PV",
|
|
"Bi": "PlayerNumGet",
|
|
"GmNM": "CC",
|
|
"ftaN": "ES",
|
|
"murD": "PLAYSE",
|
|
"PVfz": "SH",
|
|
"bJg": "PC",
|
|
"wiB": "BGMW",
|
|
"TFCu": "SE",
|
|
"Ov": "POS",
|
|
"sA": "PLVUP",
|
|
"kg": "LVUP",
|
|
"BHe": "PS",
|
|
"We": "TROC",
|
|
"xEg": "TRCL",
|
|
"hJq": "TRLG",
|
|
"NdM": "TROP",
|
|
"bNY": "PR",
|
|
"sZWu": "HL",
|
|
"SkBD": "FS",
|
|
"frQp": "GD",
|
|
"oRut": "RGM",
|
|
"GC": "GC",
|
|
"IYo": "ALO",
|
|
"MTg": "BT",
|
|
"vWpn": "SI",
|
|
"PudO": "LI",
|
|
"dAgg": "EN",
|
|
"OaHi": "EP",
|
|
"EZ": "EV",
|
|
"jmb": "MC",
|
|
"QBt": "XYD",
|
|
"ft": "StallBrowse",
|
|
"lSZ": "IP",
|
|
"LOh": "Echo",
|
|
"cJzI": "ProcGet",
|
|
"HMNy": "CharLogout",
|
|
"Daj": "CharList",
|
|
"hPUd": "CharLogin",
|
|
"oy": "CharDelete",
|
|
"DZ": "CreateNewChar",
|
|
"whV": "ClientLogin",
|
|
"TeD": "MN",
|
|
"zzd": "EF",
|
|
"BZ": "WN",
|
|
"Yq": "TRLPS",
|
|
"RwK": "TRLP",
|
|
"nUbJ": "TRLI",
|
|
"ms": "TRS",
|
|
"Cxo": "TRPL",
|
|
"JgO": "TU",
|
|
"nFV": "GPDI",
|
|
"LY": "GFLI",
|
|
"ND": "GPD",
|
|
"ysVc": "GFL",
|
|
"Yo": "S",
|
|
"OBee": "PT",
|
|
"Rspn": "CT",
|
|
"cNE": "CS",
|
|
"jv": "CJ",
|
|
"uSB": "CD",
|
|
"NI": "CA",
|
|
"Sc": "TITLE",
|
|
"JJQj": "CN",
|
|
"nsY": "C",
|
|
"TNT": "PP",
|
|
"AU": "KP2",
|
|
"IsSy": "KP",
|
|
"UU": "CP2",
|
|
"aPc": "CP",
|
|
"Zd": "STK",
|
|
"zdr": "TK",
|
|
"KyN": "PRAD",
|
|
"DyAG": "PRW",
|
|
"ow": "PRM",
|
|
"cNB": "PRE",
|
|
"DpSY": "PRD",
|
|
"IUn": "PRA",
|
|
"eZT": "PRL",
|
|
"HNP": "PRV",
|
|
"Rll": "GML",
|
|
"Kka": "GMI",
|
|
"yuD": "GM",
|
|
"znv": "GT",
|
|
"aDn": "GI",
|
|
"vI": "ABI",
|
|
"PhdQ": "ABG",
|
|
"gnxd": "AB",
|
|
"lDuJ": "PME",
|
|
"Dn": "ALN",
|
|
"dM": "ALI",
|
|
"Ilz": "AL",
|
|
"Mhbt": "MSG",
|
|
"xmgQ": "IR",
|
|
"rU": "I",
|
|
"ELoy": "IA",
|
|
"LYIm": "B",
|
|
"hB": "RD",
|
|
"Gn": "RS",
|
|
"aBS": "M",
|
|
}
|
|
|
|
class opcode:
|
|
def __init__(self, opstring, recv_op, send_op):
|
|
self.o = opstring
|
|
self.r = recv_op
|
|
self.s = send_op
|
|
|
|
if __name__ == "__main__":
|
|
opcodes = {}
|
|
for recv_op, opstring in recv_opcodes.items():
|
|
if opstring not in opcodes:
|
|
opcodes[opstring] = opcode(opstring, recv_op, "")
|
|
|
|
for send_op, opstring in send_opcodes.items():
|
|
if opstring not in opcodes:
|
|
opcodes[opstring] = opcode(opstring, "", send_op)
|
|
else:
|
|
opcodes[opstring].s = send_op
|
|
|
|
for op in opcodes.values():
|
|
#print(f'add_opcode_obfuscation_entry( XG_{op.o},\t\t\t\t"{op.o}",\t\t\t\t"{op.r}",\t\t\t\t"{op.s}"),')
|
|
print(f'XG_{op.o},')
|
|
|