Guest User

Untitled

a guest
Nov 18th, 2020
204
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. namespace offsets
  2. {
  3. DWORD WEAPONCOMPLETEDEFS_OFFSET = 0x12EC3870;
  4. DWORD GameMode_PTR_OFFSET = 0x15973AE8;
  5. DWORD NO_RECOIL_OFFSET = 0x877F4;
  6.  
  7. namespace character
  8. {
  9. DWORD decrypt_client_PosInfo = 0x6C8;
  10. DWORD clientinfo_t_stance = 0xC08;
  11. DWORD clientinfo_t_weapon = 0xBCE;
  12. DWORD clientinfo_t_entitynum = 0xBF4;
  13. DWORD clientinfo_t_idead = 0xD28;
  14. DWORD clientinfo_t_team = 0x530;
  15. DWORD clientinfo_t_isvalid = 0x450;
  16. DWORD clientinfo_t_deadv1 = 0xA90;
  17. }
  18.  
  19. namespace bone
  20. {
  21. DWORD ENCRYPT_PTR_OFFSET = 0x13D30808;
  22. DWORD REVERSED_ADDRESS = 0x5A681D1;
  23. DWORD LastKey_XOR = 0xb;
  24. DWORD INDEX_ARRAY_OFFSET = 0x5A72CA0; // CHECK
  25. DWORD BONE_BASE_POS = 0x3E57C;
  26. DWORD Bone_Size = 0x150;
  27. }
  28.  
  29. namespace Character_Info
  30. {
  31. DWORD ENCRYPT_PTR_OFFSET = 0x15c53618;
  32. DWORD REVERSED_ADDRESS = 0x5A680DF;
  33. DWORD LastKey_XOR = 0x5;
  34.  
  35. DWORD BASE_OFFSET = 0x97c88;
  36. DWORD BASE_REVERSED_ADDRESS = 0x5A6810E;
  37. DWORD BASE_LastKey_XOR = 0x19;
  38.  
  39. DWORD LOCAL_INDEX_OFFSET = 0x15854;
  40. DWORD clientinfo_t_size = 0x3A88;
  41. }
  42.  
  43. namespace visibility
  44. {
  45. DWORD FunctionDisTribute = 0x92F9000;
  46. DWORD AboutVisibleFunction = 0x4A91E30;
  47. DWORD ListHead = 0x108;
  48. }
  49.  
  50. namespace camera
  51. {
  52. DWORD CAMERA_OFFSET = 0x12DC4FB0;
  53. DWORD CAMER_POS = 0x1D8;
  54. DWORD REFDEF_OFFSET_2 = 0x15C55F40; //0x523027E0
  55. }
  56.  
  57. namespace name
  58. {
  59. DWORD NAME_ARRAY_OFFSET = 0x15C61068;
  60. DWORD NAME_LIST_OFFSET = 0x4C70; //
  61. }
  62.  
  63. namespace direcX
  64. {
  65. DWORD command_queue = 0x17629BA8;
  66. }
  67. }
  68.  
  69. QWORD DecryptClientInfo()
  70. {
  71. QWORD encrypted_address = Read<QWORD>(baseModuleAddr + offsets::Character_Info::ENCRYPT_PTR_OFFSET);
  72.  
  73. if (encrypted_address)
  74. {
  75. QWORD rax, rbx = encrypted_address, rcx, r8, rdx, r9;
  76. QWORD reversedAddr = Read<QWORD>(baseModuleAddr + offsets::Character_Info::REVERSED_ADDRESS);
  77.  
  78. QWORD LastKey = Read<QWORD>(_byteswap_uint64(reversedAddr) + offsets::Character_Info::LastKey_XOR);
  79. if (encrypted_address && LastKey)
  80. {
  81. QWORD rdx = Peb;
  82. rcx = (baseModuleAddr + 0xD5);
  83. rcx = LastKey;
  84. rax = 0xC79E1907DF695F2F;
  85. rcx *= rbx;
  86. rcx *= rax;
  87. rax = 0x65A04A8446991181;
  88. rcx -= baseModuleAddr;
  89. rcx ^= rax;
  90. rax = (baseModuleAddr + 0x3F85940E);
  91. rbx = rcx;
  92. rdx ^= rax;
  93. rbx >>= 0x28;
  94. rbx ^= rcx;
  95. rbx -= rdx;
  96. return rbx;
  97. }
  98. }
  99. return 0;
  100. }
  101.  
  102. QWORD DecryptBaseIns()
  103. {
  104. QWORD encrypted_address;
  105. QWORD peb = Peb;
  106.  
  107. encrypted_address = Read<QWORD>(Settings::ClientInfoPointer + offsets::Character_Info::BASE_OFFSET);
  108. if (encrypted_address)
  109. {
  110. QWORD reversedAddr = Read<QWORD>(baseModuleAddr + offsets::Character_Info::BASE_REVERSED_ADDRESS);
  111. QWORD last_key = Read<QWORD>(~(reversedAddr)+offsets::Character_Info::BASE_LastKey_XOR);
  112.  
  113.  
  114. if (encrypted_address && last_key)
  115. {
  116. auto rax = encrypted_address;
  117. QWORD rcx, rdx, rbx, rsi, r8, r9, r10, r11 = Peb, r12, r13, r14, r15 = 0;
  118.  
  119. Settings::ClientBaseCase = _rotr64(peb, 0xe) & 0xF;
  120.  
  121. switch (Settings::ClientBaseCase)
  122. {
  123. case 0:
  124. {
  125. rbx = (baseModuleAddr + 0xA1D);
  126. rax ^= r11;
  127. rcx = rax;
  128. rcx >>= 0x12;
  129. rax ^= rcx;
  130. rcx = rax;
  131. rcx >>= 0x24;
  132. rax ^= rcx;
  133. rcx = baseModuleAddr;
  134. rax ^= rcx;
  135. rax ^= r11;
  136. rcx = 0x54EB1CB9B8FC9134;
  137. rax ^= rcx;
  138. rcx = 0xB1DCCBD569E5DEEB;
  139. rax *= rcx;
  140. rcx = 0x3D6BF46704D9020C;
  141. rax -= rcx;
  142. rax *= last_key;
  143. return rax;
  144. break;
  145. }
  146.  
  147. case 1:
  148. {
  149. rbx = (baseModuleAddr + 0xA1D);
  150. rcx = rax;
  151. rcx >>= 0x1B;
  152. rax ^= rcx;
  153. rdx = rax;
  154. rdx >>= 0x36;
  155. rcx = (baseModuleAddr + 0x28DF);
  156. rdx ^= rax;
  157. rax = r11;
  158. rcx = (~rcx);
  159. rax = (~rax);
  160. rax += rdx;
  161. rdx = (baseModuleAddr + 0x5779DE6F);
  162. rax += rcx;
  163. rax *= last_key;
  164. rcx = r11;
  165. rcx *= rdx;
  166. rax += rcx;
  167. rcx = 0xE81D09195A37FDBB;
  168. rax *= rcx;
  169. rcx = 0x4C810B1C6A032987;
  170. rax -= rcx;
  171. rcx = rax;
  172. rcx >>= 0x1C;
  173. rax ^= rcx;
  174. rcx = rax;
  175. rcx >>= 0x38;
  176. rax ^= rcx;
  177. rcx = 0x4B993D71F365D23E;
  178. rax -= rcx;
  179. return rax;
  180. break;
  181. }
  182.  
  183. case 2:
  184. {
  185. rbx = (baseModuleAddr + 0xA1D);
  186. r14 = (baseModuleAddr + 0x4877DE69);
  187. r9 = Read<QWORD>(baseModuleAddr + 0x5A6810E);
  188. rcx = r14;
  189. rcx = (~rcx);
  190. rcx ^= r11;
  191. rax -= rcx;
  192. rcx = 0xEF069FF72852AEC3;
  193. rax *= rcx;
  194. rcx = 0xD7E5AE83AD4CF6B5;
  195. rax ^= rcx;
  196. rcx = rax;
  197. rcx >>= 0xF;
  198. rax ^= rcx;
  199. rcx = rax;
  200. rcx >>= 0x1E;
  201. rax ^= rcx;
  202. rcx = rax;
  203. rcx >>= 0x3C;
  204. rax ^= rcx;
  205. rcx = last_key;
  206. rcx *= 0x5F6ABA1EE90B3E0D;
  207. rax *= rcx;
  208. return rax;
  209. break;
  210. }
  211.  
  212. case 3:
  213. {
  214. rbx = (baseModuleAddr + 0xA1D);
  215. rcx = r11;
  216. rcx = (~rcx);
  217. rax ^= rcx;
  218. rcx = r11;
  219. rcx ^= rax;
  220. rax = last_key;
  221. rax *= rcx;
  222. rcx = rax;
  223. rcx >>= 0x23;
  224. rax ^= rcx;
  225. rcx = 0xF0990856EAB1F26F;
  226. rax *= rcx;
  227. rcx = baseModuleAddr;
  228. rax -= rcx;
  229. rcx = rax;
  230. rcx >>= 0xB;
  231. rax ^= rcx;
  232. rcx = rax;
  233. rcx >>= 0x16;
  234. rax ^= rcx;
  235. rcx = rax;
  236. rcx >>= 0x2C;
  237. rax ^= rcx;
  238. return rax;
  239. break;
  240. }
  241.  
  242. case 4:
  243. {
  244. rbx = (baseModuleAddr + 0xA1D);
  245. r9 = Read<QWORD>(baseModuleAddr + 0x5A6810E);
  246. rcx = baseModuleAddr;
  247. rax += rcx;
  248. rcx = rax;
  249. rcx >>= 0x23;
  250. rax ^= rcx;
  251. rcx = rax;
  252. rcx >>= 0x1D;
  253. rax ^= rcx;
  254. rcx = rax;
  255. rcx >>= 0x3A;
  256. rax ^= rcx;
  257. rax *= last_key;
  258. rax += r11;
  259. rcx = 0x1E6405474A6E726B;
  260. rax *= rcx;
  261. rcx = 0xDF76F6E890CF20E4;
  262. rax ^= rcx;
  263. rcx = 0x4390039F6C65BF8D;
  264. rax *= rcx;
  265. return rax;
  266. break;
  267. }
  268.  
  269. case 5:
  270. {
  271. rbx = (baseModuleAddr + 0xA1D);
  272. rsi = (baseModuleAddr + 0x71BD);
  273. r9 = Read<QWORD>(baseModuleAddr + 0x5A6810E);
  274. rax *= last_key;
  275. rcx = r11;
  276. rcx ^= rsi;
  277. rax += rcx;
  278. rax ^= r11;
  279. rcx = 0x6E9743ADD6B5156B;
  280. rax *= rcx;
  281. rax -= r11;
  282. rcx = 0x99A03A07B36316B7;
  283. rax *= rcx;
  284. rcx = 0xC0FD419E20A7EBBB;
  285. rax ^= rcx;
  286. rcx = rax;
  287. rcx >>= 0x16;
  288. rax ^= rcx;
  289. rcx = rax;
  290. rcx >>= 0x2C;
  291. rax ^= rcx;
  292. return rax;
  293. break;
  294. }
  295.  
  296. case 6:
  297. {
  298. rbx = (baseModuleAddr + 0xA1D);
  299. rdx = r11;
  300. rax *= last_key;
  301. rcx = (baseModuleAddr + 0x7DA2);
  302. rdx ^= rcx;
  303. rcx = rax;
  304. rax = baseModuleAddr;
  305. rax ^= rcx;
  306. rcx = baseModuleAddr;
  307. rax += rdx;
  308. rax -= rcx;
  309. rcx = 0xB248EE775179486F;
  310. rax *= rcx;
  311. rcx = rax;
  312. rcx >>= 0xD;
  313. rax ^= rcx;
  314. rcx = rax;
  315. rcx >>= 0x1A;
  316. rax ^= rcx;
  317. rcx = rax;
  318. rcx >>= 0x34;
  319. rax ^= rcx;
  320. rcx = 0xEBB4D600CF6B9EF1;
  321. rax *= rcx;
  322. rcx = 0xA8653D968B9E473C;
  323. rax ^= rcx;
  324. return rax;
  325. break;
  326. }
  327.  
  328. case 7:
  329. {
  330. r10 = Read<QWORD>(baseModuleAddr + 0x5A6810E);
  331. rbx = (baseModuleAddr + 0xA1D);
  332. rcx = baseModuleAddr;
  333. rax -= rcx;
  334. rcx = rax;
  335. rcx >>= 0xC;
  336. rax ^= rcx;
  337. rcx = rax;
  338. rcx >>= 0x18;
  339. rax ^= rcx;
  340. rcx = rax;
  341. rcx >>= 0x30;
  342. rax ^= rcx;
  343. rcx = last_key;
  344. rax *= rcx;
  345. rcx = baseModuleAddr;
  346. rax += rcx;
  347. rcx = 0xE45933D7567921D;
  348. rax *= rcx;
  349. rdx = r11;
  350. rcx = (baseModuleAddr + 0x6293);
  351. rcx = (~rcx);
  352. rdx = (~rdx);
  353. rdx *= rcx;
  354. rcx = 0x31D2F7378F11ED19;
  355. rax += rdx;
  356. rax *= rcx;
  357. return rax;
  358. break;
  359. }
  360.  
  361. case 8:
  362. {
  363. rbx = (baseModuleAddr + 0xA1D);
  364. rcx = (baseModuleAddr + 0x474B);
  365. rcx -= r11;
  366. rax ^= rcx;
  367. rcx = rax;
  368. rcx >>= 0x5;
  369. rax ^= rcx;
  370. rcx = rax;
  371. rcx >>= 0xA;
  372. rax ^= rcx;
  373. rcx = rax;
  374. rcx >>= 0x14;
  375. rax ^= rcx;
  376. rcx = rax;
  377. rcx >>= 0x28;
  378. rax ^= rcx;
  379. rdx = r11;
  380. rcx = 0x632AEF1E85A30916;
  381. rdx *= rcx;
  382. rcx = rax;
  383. rax = 0x4E6A8870BD2E7B75;
  384. rax *= rcx;
  385. rax += rdx;
  386. rcx = rax;
  387. rax = 0xEA3A3F24269A44C5;
  388. rcx ^= rax;
  389. rax = last_key;
  390. rax *= rcx;
  391. rcx = 0x423CA6BD05DEBB27;
  392. rax *= rcx;
  393. return rax;
  394. break;
  395. }
  396.  
  397. case 9:
  398. {
  399. r10 = Read<QWORD>(baseModuleAddr + 0x5A6810E);
  400. rbx = (baseModuleAddr + 0xA1D);
  401. rcx = baseModuleAddr;
  402. rax -= rcx;
  403. rax *= last_key;
  404. rcx = rax;
  405. rcx >>= 0x20;
  406. rax ^= rcx;
  407. rcx = baseModuleAddr;
  408. rax ^= rcx;
  409. rcx = 0xE02392C3D5C5EA19;
  410. rax ^= rcx;
  411. rcx = 0xB9AF2B37E4D46225;
  412. rax *= rcx;
  413. rsi = baseModuleAddr;
  414. rcx = 0xE9760871A7B870F7;
  415. rax += rcx;
  416. rax += rsi;
  417. return rax;
  418. break;
  419. }
  420.  
  421. case 10:
  422. {
  423. rbx = (baseModuleAddr + 0xA1D);
  424. r10 = Read<QWORD>(baseModuleAddr + 0x5A6810E);
  425. rcx = baseModuleAddr;
  426. rax -= rcx;
  427. rcx = rax;
  428. rcx >>= 0x1C;
  429. rax ^= rcx;
  430. rcx = rax;
  431. rcx >>= 0x38;
  432. rax ^= rcx;
  433. rcx = rax;
  434. rcx >>= 0x6;
  435. rax ^= rcx;
  436. rcx = rax;
  437. rcx >>= 0xC;
  438. rax ^= rcx;
  439. rcx = rax;
  440. rcx >>= 0x18;
  441. rax ^= rcx;
  442. rcx = rax;
  443. rcx >>= 0x30;
  444. rax ^= rcx;
  445. rcx = 0x2D5ED98E884BBAB;
  446. rax *= rcx;
  447. rcx = rax;
  448. rcx >>= 0x1D;
  449. rax ^= rcx;
  450. rcx = rax;
  451. rcx >>= 0x3A;
  452. rax ^= rcx;
  453. rcx = rax;
  454. rax = 0x61F9C894C00628E5;
  455. rcx ^= rax;
  456. rax = last_key;
  457. rax *= rcx;
  458. rcx = 0x5E0BBA5D7BBDB2D0;
  459. rax += rcx;
  460. return rax;
  461. break;
  462. }
  463.  
  464. case 11:
  465. {
  466. rbx = (baseModuleAddr + 0xA1D);
  467. r10 = Read<QWORD>(baseModuleAddr + 0x5A6810E);
  468. rcx = rax;
  469. rcx >>= 0x5;
  470. rax ^= rcx;
  471. rcx = rax;
  472. rcx >>= 0xA;
  473. rax ^= rcx;
  474. rcx = rax;
  475. rcx >>= 0x14;
  476. rax ^= rcx;
  477. rcx = rax;
  478. rcx >>= 0x28;
  479. rax ^= rcx;
  480. rcx = rax;
  481. rcx >>= 0x7;
  482. rax ^= rcx;
  483. rcx = rax;
  484. rcx >>= 0xE;
  485. rax ^= rcx;
  486. rcx = rax;
  487. rcx >>= 0x1C;
  488. rax ^= rcx;
  489. rdx = rax;
  490. rdx >>= 0x38;
  491. rdx ^= rax;
  492. rax = (baseModuleAddr + 0x55C7AEFF);
  493. rax ^= r11;
  494. rax += rdx;
  495. rcx = (baseModuleAddr + 0xA53E);
  496. rcx = (~rcx);
  497. rcx *= r11;
  498. rax ^= rcx;
  499. rax *= last_key;
  500. rcx = baseModuleAddr;
  501. rax += rcx;
  502. rcx = rax;
  503. rcx >>= 0x27;
  504. rax ^= rcx;
  505. rcx = 0x8B69AF24CF2C048F;
  506. rax *= rcx;
  507. return rax;
  508. break;
  509. }
  510.  
  511. case 12:
  512. {
  513. rbx = (baseModuleAddr + 0xA1D);
  514. rax *= last_key;
  515. rcx = rax;
  516. rcx >>= 0x28;
  517. rax ^= rcx;
  518. rcx = 0x542A3801F8234833;
  519. rax *= rcx;
  520. rcx = rax;
  521. rcx >>= 0x15;
  522. rax ^= rcx;
  523. rcx = rax;
  524. rcx >>= 0x2A;
  525. rax ^= rcx;
  526. rcx = (baseModuleAddr + 0x323F9C6E);
  527. rax += r11;
  528. rax += rcx;
  529. rcx = rax;
  530. rcx >>= 0x2;
  531. rax ^= rcx;
  532. rcx = rax;
  533. rcx >>= 0x4;
  534. rax ^= rcx;
  535. rcx = rax;
  536. rcx >>= 0x8;
  537. rax ^= rcx;
  538. rcx = rax;
  539. rcx >>= 0x10;
  540. rax ^= rcx;
  541. rcx = rax;
  542. rcx >>= 0x20;
  543. rax ^= rcx;
  544. rcx = baseModuleAddr;
  545. rax += rcx;
  546. rcx = (baseModuleAddr + 0x4335);
  547. rcx = (~rcx);
  548. rax ^= rcx;
  549. rax ^= r11;
  550. return rax;
  551. break;
  552. }
  553.  
  554. case 13:
  555. {
  556. rbx = (baseModuleAddr + 0xA1D);
  557. r9 = Read<QWORD>(baseModuleAddr + 0x5A6810E);
  558. rax *= last_key;
  559. rcx = rax;
  560. rcx >>= 0x8;
  561. rax ^= rcx;
  562. rcx = rax;
  563. rcx >>= 0x10;
  564. rax ^= rcx;
  565. rcx = rax;
  566. rcx >>= 0x20;
  567. rax ^= rcx;
  568. rax ^= r11;
  569. rcx = rax;
  570. rcx >>= 0x1C;
  571. rax ^= rcx;
  572. rcx = rax;
  573. rcx >>= 0x38;
  574. rax ^= rcx;
  575. rcx = 0xF3D730CE7C958BE7;
  576. rax *= rcx;
  577. rax += r11;
  578. rax ^= r11;
  579. rcx = 0x772BADCF0F2129C0;
  580. rax ^= rcx;
  581. return rax;
  582. break;
  583. }
  584.  
  585. case 14:
  586. {
  587. rbx = (baseModuleAddr + 0xA1D);
  588. rdx = (baseModuleAddr + 0xBF78);
  589. r10 = Read<QWORD>(baseModuleAddr + 0x5A6810E);
  590. rcx = rax;
  591. rcx >>= 0x10;
  592. rax ^= rcx;
  593. rcx = rax;
  594. rcx >>= 0x20;
  595. rax ^= rcx;
  596. rcx = rdx;
  597. rcx = (~rcx);
  598. rcx *= r11;
  599. rax ^= rcx;
  600. rcx = 0x4E30AF313534F67C;
  601. rax -= rcx;
  602. rcx = rax;
  603. rcx >>= 0x18;
  604. rax ^= rcx;
  605. rcx = rax;
  606. rcx >>= 0x30;
  607. rax ^= rcx;
  608. rax *= last_key;
  609. rcx = baseModuleAddr;
  610. rax ^= rcx;
  611. rcx = 0xE7E866292043EB56;
  612. rax ^= rcx;
  613. rcx = 0x7D0D23B3A4BD5345;
  614. rax *= rcx;
  615. return rax;
  616. break;
  617. }
  618.  
  619. case 15:
  620. {
  621. rbx = (baseModuleAddr + 0xA1D);
  622. r10 = Read<QWORD>(baseModuleAddr + 0x5A6810E);
  623. rcx = rax;
  624. rcx >>= 0x1;
  625. rax ^= rcx;
  626. rcx = rax;
  627. rcx >>= 0x2;
  628. rax ^= rcx;
  629. rcx = rax;
  630. rcx >>= 0x4;
  631. rax ^= rcx;
  632. rcx = rax;
  633. rcx >>= 0x8;
  634. rax ^= rcx;
  635. rcx = rax;
  636. rcx >>= 0x10;
  637. rax ^= rcx;
  638. rcx = rax;
  639. rcx >>= 0x20;
  640. rax ^= rcx;
  641. rax += r11;
  642. rcx = rax;
  643. rcx >>= 0x24;
  644. rax ^= rcx;
  645. rcx = 0x75A6E1B45C7B5DD1;
  646. rax ^= rcx;
  647. rcx = last_key;
  648. rcx *= 0xC8116D78DA458B5;
  649. rax *= rcx;
  650. rcx = baseModuleAddr;
  651. rax -= rcx;
  652. rcx = 0x5EB55724B30DE7A;
  653. rax += rcx;
  654. return rax;
  655. break;
  656. }
  657.  
  658. }
RAW Paste Data