Advertisement
ericek111

[HELP] CS:GO - Finding ClientState on Linux

Apr 20th, 2017
285
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Images: http://imgur.com/a/x8nNg
  2.  
  3. Mac with symbols:
  4. 0x1737E0 ; GetBaseLocalClient(void)
  5. 0x1737E0 __Z18GetBaseLocalClientv proc near      ; CODE XREF: SND_IsInGame(void)+6
  6. 0x1737E0                                         ; CSfxTable::IsPrecachedSound(void):loc_3C50D ...
  7. 0x1737E0                 call    $+5
  8. 0x1737E5                 pop     eax
  9. 0x1737E6                 mov     eax, ds:(dword_75FC78 - 1737E5h)[eax]
  10. 0x1737EC                 add     eax, 4
  11. 0x1737EF                 retn
  12. 0x1737EF __Z18GetBaseLocalClientv endp
  13.  
  14. Mac latest:
  15. 0x16FBF0 engineBaseAddr  proc near               ; CODE XREF: sub_3A250+4
  16. 0x16FBF0                                         ; sub_3A460+57 ...
  17. 0x16FBF0                 push    rbp
  18. 0x16FBF1                 mov     rbp, rsp
  19. 0x16FBF4                 mov     rax, cs:qword_842AB0
  20. 0x16FBFB                 add     rax, 8
  21. 0x16FBFF                 pop     rbp
  22. 0x16FC00                 retn
  23. 0x16FC00 engineBaseAddr  endp
  24.  
  25. Linux latest:
  26. 0x448B40 engineBaseAddr  proc near               ; CODE XREF: sub_316F00+4
  27. 0x448B40                                         ; sub_3170A0+47 ...
  28. 0x448B40                 push    rbp
  29. 0x448B41                 lea     rdi, qword_12124A0  ; 48 8D 3D ?? ?? ?? ?? 31 F6 48 89 E5 5D E9 8D FF
  30. 0x448B48                 xor     esi, esi
  31. 0x448B4A                 mov     rbp, rsp
  32. 0x448B4D                 pop     rbp
  33. 0x448B4E                 jmp     sub_448AE0
  34. 0x448B4E engineBaseAddr  endp
  35.  
  36. Linux - sub_448AE0:
  37. 0x448AE0 sub_448AE0      proc near               ; CODE XREF: va_BaseAddr+E
  38. 0x448AE0                                         ; engineBaseAddr+E
  39. 0x448AE0                 push    rbp
  40. 0x448AE1                 mov     rbp, rsp
  41. 0x448AE4                 push    rbx
  42. 0x448AE5                 mov     rbx, rdi
  43. 0x448AE8                 sub     rsp, 8
  44. 0x448AEC                 cmp     esi, 0FFFFFFFFh
  45. 0x448AEF                 jz      short loc_448B08
  46. 0x448AF1                 movsxd  rsi, esi
  47. 0x448AF4                 mov     rax, [rdi+rsi*8+8]
  48. 0x448AF9                 add     rax, 8
  49. 0x448AFD
  50. 0x448AFD loc_448AFD:                             ; CODE XREF: sub_448AE0+39
  51. 0x448AFD                 add     rsp, 8
  52. 0x448B01                 pop     rbx
  53. 0x448B02                 pop     rbp
  54. 0x448B03                 retn
  55. 0x448B03 ; ---------------------------------------------------------------------------
  56. 0x448B04                 align 8
  57. 0x448B08
  58. 0x448B08 loc_448B08:                             ; CODE XREF: sub_448AE0+F
  59. 0x448B08                 mov     rax, [rdi]
  60. 0x448B0B                 call    qword ptr [rax+28h]
  61. 0x448B0E                 cdqe
  62. 0x448B10                 mov     rax, [rbx+rax*8+8]
  63. 0x448B15                 add     rax, 8
  64. 0x448B19                 jmp     short loc_448AFD
  65. 0x448B19 sub_448AE0      endp
  66.  
  67. Linux - PSEUDOCODE:
  68. > PUSH rbp
  69. esi = edi
  70. rdi = offsetA
  71. rbp = STACKPTR
  72. < POP rbp
  73.  
  74. > PUSH rbp
  75. rbp = STACKPTR
  76. > PUSH rbx
  77. rbx = rdi
  78. STACKPTR -= 8
  79.  
  80. if(esi == 0xFFFFFFFF) {
  81.     rax = *rdi
  82.     -call: rax + 0x28
  83.     rax = rbx + rax*8 + 8
  84.     rax += 8
  85. }
  86.  
  87. STACKPTR += 8
  88. < POP rbx
  89. < POP rbp
  90. ### RETURN
  91.  
  92. (movsxd) rsi = esi
  93. rax = rdi + rsi*8 + 8
  94. rax += 8
  95.  
  96. Changed: rax = ClientState*
  97. Input: rdi = offsetA
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement