contrast-agent 3.8.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (500) hide show
  1. checksums.yaml +7 -0
  2. data/.clang-format +5 -0
  3. data/.dockerignore +10 -0
  4. data/.gitignore +58 -0
  5. data/.gitmodules +6 -0
  6. data/.rspec +6 -0
  7. data/.simplecov +4 -0
  8. data/Gemfile +7 -0
  9. data/LICENSE.txt +12 -0
  10. data/Rakefile +15 -0
  11. data/exe/contrast_service +29 -0
  12. data/ext/build_funchook.rb +48 -0
  13. data/ext/cs__assess_active_record_named/cs__active_record_named.c +47 -0
  14. data/ext/cs__assess_active_record_named/cs__active_record_named.h +10 -0
  15. data/ext/cs__assess_active_record_named/extconf.rb +2 -0
  16. data/ext/cs__assess_array/cs__assess_array.c +38 -0
  17. data/ext/cs__assess_array/cs__assess_array.h +9 -0
  18. data/ext/cs__assess_array/extconf.rb +2 -0
  19. data/ext/cs__assess_basic_object/cs__assess_basic_object.c +50 -0
  20. data/ext/cs__assess_basic_object/cs__assess_basic_object.h +17 -0
  21. data/ext/cs__assess_basic_object/extconf.rb +2 -0
  22. data/ext/cs__assess_fiber_track/cs__assess_fiber_track.c +86 -0
  23. data/ext/cs__assess_fiber_track/cs__assess_fiber_track.h +34 -0
  24. data/ext/cs__assess_fiber_track/extconf.rb +2 -0
  25. data/ext/cs__assess_hash/cs__assess_hash.c +64 -0
  26. data/ext/cs__assess_hash/cs__assess_hash.h +24 -0
  27. data/ext/cs__assess_hash/extconf.rb +2 -0
  28. data/ext/cs__assess_kernel/cs__assess_kernel.c +36 -0
  29. data/ext/cs__assess_kernel/cs__assess_kernel.h +10 -0
  30. data/ext/cs__assess_kernel/extconf.rb +2 -0
  31. data/ext/cs__assess_marshal_module/cs__assess_marshal_module.c +47 -0
  32. data/ext/cs__assess_marshal_module/cs__assess_marshal_module.h +18 -0
  33. data/ext/cs__assess_marshal_module/extconf.rb +2 -0
  34. data/ext/cs__assess_module/cs__assess_module.c +78 -0
  35. data/ext/cs__assess_module/cs__assess_module.h +25 -0
  36. data/ext/cs__assess_module/extconf.rb +2 -0
  37. data/ext/cs__assess_regexp/cs__assess_regexp.c +48 -0
  38. data/ext/cs__assess_regexp/cs__assess_regexp.h +22 -0
  39. data/ext/cs__assess_regexp/extconf.rb +2 -0
  40. data/ext/cs__assess_regexp_track/cs__assess_regexp_track.c +63 -0
  41. data/ext/cs__assess_regexp_track/cs__assess_regexp_track.h +29 -0
  42. data/ext/cs__assess_regexp_track/extconf.rb +2 -0
  43. data/ext/cs__assess_string/cs__assess_string.c +38 -0
  44. data/ext/cs__assess_string/cs__assess_string.h +19 -0
  45. data/ext/cs__assess_string/extconf.rb +2 -0
  46. data/ext/cs__assess_string_interpolation26/cs__assess_string_interpolation26.c +31 -0
  47. data/ext/cs__assess_string_interpolation26/cs__assess_string_interpolation26.h +13 -0
  48. data/ext/cs__assess_string_interpolation26/extconf.rb +2 -0
  49. data/ext/cs__common/cs__common.c +60 -0
  50. data/ext/cs__common/cs__common.h +28 -0
  51. data/ext/cs__common/extconf.rb +20 -0
  52. data/ext/cs__contrast_patch/cs__contrast_patch.c +445 -0
  53. data/ext/cs__contrast_patch/cs__contrast_patch.h +196 -0
  54. data/ext/cs__contrast_patch/extconf.rb +2 -0
  55. data/ext/cs__protect_kernel/cs__protect_kernel.c +37 -0
  56. data/ext/cs__protect_kernel/cs__protect_kernel.h +11 -0
  57. data/ext/cs__protect_kernel/extconf.rb +2 -0
  58. data/ext/cs__scope/cs__scope.c +96 -0
  59. data/ext/cs__scope/cs__scope.h +33 -0
  60. data/ext/cs__scope/extconf.rb +2 -0
  61. data/ext/extconf_common.rb +49 -0
  62. data/funchook/LICENSE +360 -0
  63. data/funchook/Makefile +29 -0
  64. data/funchook/Makefile.in +29 -0
  65. data/funchook/README.md +121 -0
  66. data/funchook/appveyor.yml +42 -0
  67. data/funchook/autogen.sh +3 -0
  68. data/funchook/autom4te.cache/output.0 +4976 -0
  69. data/funchook/autom4te.cache/requests +78 -0
  70. data/funchook/autom4te.cache/traces.0 +364 -0
  71. data/funchook/config.guess +1530 -0
  72. data/funchook/config.log +490 -0
  73. data/funchook/config.status +1016 -0
  74. data/funchook/config.sub +1773 -0
  75. data/funchook/configure +4976 -0
  76. data/funchook/configure.ac +59 -0
  77. data/funchook/distorm/COPYING +26 -0
  78. data/funchook/distorm/MANIFEST +25 -0
  79. data/funchook/distorm/MANIFEST.in +4 -0
  80. data/funchook/distorm/README.md +12 -0
  81. data/funchook/distorm/disOps/disOps.py +795 -0
  82. data/funchook/distorm/disOps/x86db.py +404 -0
  83. data/funchook/distorm/disOps/x86header.py +247 -0
  84. data/funchook/distorm/disOps/x86sets.py +1664 -0
  85. data/funchook/distorm/examples/cs/TestdiStorm/Program.cs +79 -0
  86. data/funchook/distorm/examples/cs/TestdiStorm/Properties/AssemblyInfo.cs +36 -0
  87. data/funchook/distorm/examples/cs/TestdiStorm/TestdiStorm.csproj +69 -0
  88. data/funchook/distorm/examples/cs/distorm-net.sln +26 -0
  89. data/funchook/distorm/examples/cs/distorm-net/CodeInfo.cs +23 -0
  90. data/funchook/distorm/examples/cs/distorm-net/DecodedInst.cs +15 -0
  91. data/funchook/distorm/examples/cs/distorm-net/DecodedResult.cs +14 -0
  92. data/funchook/distorm/examples/cs/distorm-net/DecomposedInst.cs +36 -0
  93. data/funchook/distorm/examples/cs/distorm-net/DecomposedResult.cs +14 -0
  94. data/funchook/distorm/examples/cs/distorm-net/Opcodes.cs +1268 -0
  95. data/funchook/distorm/examples/cs/distorm-net/Opcodes.tt +37 -0
  96. data/funchook/distorm/examples/cs/distorm-net/Operand.cs +25 -0
  97. data/funchook/distorm/examples/cs/distorm-net/Properties/AssemblyInfo.cs +36 -0
  98. data/funchook/distorm/examples/cs/distorm-net/diStorm3.cs +411 -0
  99. data/funchook/distorm/examples/cs/distorm-net/distorm-net.csproj +80 -0
  100. data/funchook/distorm/examples/cs/readme +3 -0
  101. data/funchook/distorm/examples/ddk/README +48 -0
  102. data/funchook/distorm/examples/ddk/distorm.ini +11 -0
  103. data/funchook/distorm/examples/ddk/dummy.c +15 -0
  104. data/funchook/distorm/examples/ddk/main.c +91 -0
  105. data/funchook/distorm/examples/ddk/makefile +1 -0
  106. data/funchook/distorm/examples/ddk/sources +10 -0
  107. data/funchook/distorm/examples/java/Makefile +23 -0
  108. data/funchook/distorm/examples/java/distorm/src/Main.java +43 -0
  109. data/funchook/distorm/examples/java/distorm/src/diStorm3/CodeInfo.java +27 -0
  110. data/funchook/distorm/examples/java/distorm/src/diStorm3/DecodedInst.java +32 -0
  111. data/funchook/distorm/examples/java/distorm/src/diStorm3/DecodedResult.java +11 -0
  112. data/funchook/distorm/examples/java/distorm/src/diStorm3/DecomposedInst.java +89 -0
  113. data/funchook/distorm/examples/java/distorm/src/diStorm3/DecomposedResult.java +11 -0
  114. data/funchook/distorm/examples/java/distorm/src/diStorm3/OpcodeEnum.java +131 -0
  115. data/funchook/distorm/examples/java/distorm/src/diStorm3/Opcodes.java +1123 -0
  116. data/funchook/distorm/examples/java/distorm/src/diStorm3/Operand.java +24 -0
  117. data/funchook/distorm/examples/java/distorm/src/diStorm3/distorm3.java +41 -0
  118. data/funchook/distorm/examples/java/jdistorm.c +405 -0
  119. data/funchook/distorm/examples/java/jdistorm.h +40 -0
  120. data/funchook/distorm/examples/java/jdistorm.sln +20 -0
  121. data/funchook/distorm/examples/java/jdistorm.vcproj +208 -0
  122. data/funchook/distorm/examples/linux/Makefile +15 -0
  123. data/funchook/distorm/examples/linux/main.c +181 -0
  124. data/funchook/distorm/examples/tests/Makefile +15 -0
  125. data/funchook/distorm/examples/tests/main.cpp +42 -0
  126. data/funchook/distorm/examples/tests/main.py +66 -0
  127. data/funchook/distorm/examples/tests/test_distorm3.py +1672 -0
  128. data/funchook/distorm/examples/tests/tests.sln +20 -0
  129. data/funchook/distorm/examples/tests/tests.vcxproj +82 -0
  130. data/funchook/distorm/examples/tests/tests.vcxproj.filters +22 -0
  131. data/funchook/distorm/examples/win32/disasm.sln +25 -0
  132. data/funchook/distorm/examples/win32/disasm.vcxproj +201 -0
  133. data/funchook/distorm/examples/win32/disasm.vcxproj.filters +14 -0
  134. data/funchook/distorm/examples/win32/main.cpp +163 -0
  135. data/funchook/distorm/include/distorm.h +482 -0
  136. data/funchook/distorm/include/mnemonics.h +301 -0
  137. data/funchook/distorm/make/linux/Makefile +28 -0
  138. data/funchook/distorm/make/mac/Makefile +24 -0
  139. data/funchook/distorm/make/win32/cdistorm.vcxproj +239 -0
  140. data/funchook/distorm/make/win32/cdistorm.vcxproj.filters +80 -0
  141. data/funchook/distorm/make/win32/distorm.sln +25 -0
  142. data/funchook/distorm/make/win32/resource.h +14 -0
  143. data/funchook/distorm/make/win32/resource.rc +99 -0
  144. data/funchook/distorm/python/distorm3/__init__.py +957 -0
  145. data/funchook/distorm/python/distorm3/sample.py +51 -0
  146. data/funchook/distorm/setup.cfg +10 -0
  147. data/funchook/distorm/setup.py +266 -0
  148. data/funchook/distorm/src/config.h +169 -0
  149. data/funchook/distorm/src/decoder.c +641 -0
  150. data/funchook/distorm/src/decoder.h +33 -0
  151. data/funchook/distorm/src/distorm.c +413 -0
  152. data/funchook/distorm/src/instructions.c +597 -0
  153. data/funchook/distorm/src/instructions.h +463 -0
  154. data/funchook/distorm/src/insts.c +7939 -0
  155. data/funchook/distorm/src/insts.h +64 -0
  156. data/funchook/distorm/src/mnemonics.c +284 -0
  157. data/funchook/distorm/src/operands.c +1290 -0
  158. data/funchook/distorm/src/operands.h +28 -0
  159. data/funchook/distorm/src/prefix.c +368 -0
  160. data/funchook/distorm/src/prefix.h +64 -0
  161. data/funchook/distorm/src/textdefs.c +172 -0
  162. data/funchook/distorm/src/textdefs.h +57 -0
  163. data/funchook/distorm/src/wstring.c +47 -0
  164. data/funchook/distorm/src/wstring.h +35 -0
  165. data/funchook/distorm/src/x86defs.h +82 -0
  166. data/funchook/include/funchook.h +123 -0
  167. data/funchook/install-sh +527 -0
  168. data/funchook/src/Makefile +70 -0
  169. data/funchook/src/Makefile.in +70 -0
  170. data/funchook/src/__strerror.h +109 -0
  171. data/funchook/src/config.h +101 -0
  172. data/funchook/src/config.h.in +100 -0
  173. data/funchook/src/decoder.o +0 -0
  174. data/funchook/src/distorm.o +0 -0
  175. data/funchook/src/funchook.c +440 -0
  176. data/funchook/src/funchook.o +0 -0
  177. data/funchook/src/funchook_internal.h +155 -0
  178. data/funchook/src/funchook_io.c +182 -0
  179. data/funchook/src/funchook_io.h +64 -0
  180. data/funchook/src/funchook_io.o +0 -0
  181. data/funchook/src/funchook_syscall.S +134 -0
  182. data/funchook/src/funchook_syscall.o +0 -0
  183. data/funchook/src/funchook_unix.c +480 -0
  184. data/funchook/src/funchook_unix.o +0 -0
  185. data/funchook/src/funchook_windows.c +397 -0
  186. data/funchook/src/funchook_x86.c +622 -0
  187. data/funchook/src/funchook_x86.o +0 -0
  188. data/funchook/src/instructions.o +0 -0
  189. data/funchook/src/insts.o +0 -0
  190. data/funchook/src/libfunchook.so +0 -0
  191. data/funchook/src/mnemonics.o +0 -0
  192. data/funchook/src/operands.o +0 -0
  193. data/funchook/src/os_func.c +115 -0
  194. data/funchook/src/os_func.h +75 -0
  195. data/funchook/src/os_func.o +0 -0
  196. data/funchook/src/os_func_unix.c +94 -0
  197. data/funchook/src/os_func_unix.o +0 -0
  198. data/funchook/src/os_func_windows.c +32 -0
  199. data/funchook/src/prefix.o +0 -0
  200. data/funchook/src/printf_base.c +1688 -0
  201. data/funchook/src/printf_base.h +46 -0
  202. data/funchook/src/printf_base.o +0 -0
  203. data/funchook/src/textdefs.o +0 -0
  204. data/funchook/src/wstring.o +0 -0
  205. data/funchook/test/Makefile +43 -0
  206. data/funchook/test/Makefile.in +43 -0
  207. data/funchook/test/funchook_test +0 -0
  208. data/funchook/test/libfunchook_test.c +25 -0
  209. data/funchook/test/libfunchook_test.so +0 -0
  210. data/funchook/test/libfunchook_test2.c +18 -0
  211. data/funchook/test/suffix.list +600 -0
  212. data/funchook/test/test_main.c +430 -0
  213. data/funchook/test/test_main.o +0 -0
  214. data/funchook/test/x86_64_test.S +10 -0
  215. data/funchook/test/x86_64_test.o +0 -0
  216. data/funchook/test/x86_test.S +339 -0
  217. data/funchook/win32/config.h +1 -0
  218. data/funchook/win32/funchook.sln +52 -0
  219. data/funchook/win32/funchook.vcxproj +188 -0
  220. data/funchook/win32/funchook.vcxproj.filters +84 -0
  221. data/funchook/win32/funchook_test.vcxproj +170 -0
  222. data/funchook/win32/funchook_test.vcxproj.filters +22 -0
  223. data/funchook/win32/funchook_test_dll.vcxproj +184 -0
  224. data/funchook/win32/funchook_test_dll.vcxproj.filters +30 -0
  225. data/funchook/win32/funchook_test_exe.def +3 -0
  226. data/lib/contrast-agent.rb +8 -0
  227. data/lib/contrast.rb +57 -0
  228. data/lib/contrast/agent.rb +80 -0
  229. data/lib/contrast/agent/assess.rb +45 -0
  230. data/lib/contrast/agent/assess/adjusted_span.rb +25 -0
  231. data/lib/contrast/agent/assess/class_reverter.rb +82 -0
  232. data/lib/contrast/agent/assess/contrast_event.rb +398 -0
  233. data/lib/contrast/agent/assess/frozen_properties.rb +41 -0
  234. data/lib/contrast/agent/assess/insulator.rb +53 -0
  235. data/lib/contrast/agent/assess/policy/dynamic_source_factory.rb +78 -0
  236. data/lib/contrast/agent/assess/policy/patcher.rb +85 -0
  237. data/lib/contrast/agent/assess/policy/policy.rb +116 -0
  238. data/lib/contrast/agent/assess/policy/policy_node.rb +289 -0
  239. data/lib/contrast/agent/assess/policy/policy_scanner.rb +44 -0
  240. data/lib/contrast/agent/assess/policy/preshift.rb +94 -0
  241. data/lib/contrast/agent/assess/policy/propagation_method.rb +260 -0
  242. data/lib/contrast/agent/assess/policy/propagation_node.rb +127 -0
  243. data/lib/contrast/agent/assess/policy/propagator.rb +35 -0
  244. data/lib/contrast/agent/assess/policy/propagator/append.rb +54 -0
  245. data/lib/contrast/agent/assess/policy/propagator/base.rb +37 -0
  246. data/lib/contrast/agent/assess/policy/propagator/center.rb +73 -0
  247. data/lib/contrast/agent/assess/policy/propagator/custom.rb +36 -0
  248. data/lib/contrast/agent/assess/policy/propagator/database_write.rb +62 -0
  249. data/lib/contrast/agent/assess/policy/propagator/insert.rb +55 -0
  250. data/lib/contrast/agent/assess/policy/propagator/keep.rb +26 -0
  251. data/lib/contrast/agent/assess/policy/propagator/next.rb +42 -0
  252. data/lib/contrast/agent/assess/policy/propagator/prepend.rb +50 -0
  253. data/lib/contrast/agent/assess/policy/propagator/remove.rb +76 -0
  254. data/lib/contrast/agent/assess/policy/propagator/replace.rb +27 -0
  255. data/lib/contrast/agent/assess/policy/propagator/reverse.rb +38 -0
  256. data/lib/contrast/agent/assess/policy/propagator/select.rb +86 -0
  257. data/lib/contrast/agent/assess/policy/propagator/splat.rb +60 -0
  258. data/lib/contrast/agent/assess/policy/propagator/split.rb +49 -0
  259. data/lib/contrast/agent/assess/policy/propagator/substitution.rb +169 -0
  260. data/lib/contrast/agent/assess/policy/propagator/trim.rb +81 -0
  261. data/lib/contrast/agent/assess/policy/rewriter_patch.rb +79 -0
  262. data/lib/contrast/agent/assess/policy/source_method.rb +209 -0
  263. data/lib/contrast/agent/assess/policy/source_node.rb +62 -0
  264. data/lib/contrast/agent/assess/policy/trigger_method.rb +209 -0
  265. data/lib/contrast/agent/assess/policy/trigger_node.rb +198 -0
  266. data/lib/contrast/agent/assess/policy/trigger_validation/ssrf_validator.rb +77 -0
  267. data/lib/contrast/agent/assess/policy/trigger_validation/trigger_validation.rb +31 -0
  268. data/lib/contrast/agent/assess/policy/trigger_validation/xss_validator.rb +40 -0
  269. data/lib/contrast/agent/assess/properties.rb +392 -0
  270. data/lib/contrast/agent/assess/rule.rb +18 -0
  271. data/lib/contrast/agent/assess/rule/base.rb +72 -0
  272. data/lib/contrast/agent/assess/rule/csrf.rb +66 -0
  273. data/lib/contrast/agent/assess/rule/csrf/csrf_action.rb +28 -0
  274. data/lib/contrast/agent/assess/rule/csrf/csrf_applicator.rb +69 -0
  275. data/lib/contrast/agent/assess/rule/csrf/csrf_watcher.rb +132 -0
  276. data/lib/contrast/agent/assess/rule/provider.rb +21 -0
  277. data/lib/contrast/agent/assess/rule/provider/hardcoded_key.rb +62 -0
  278. data/lib/contrast/agent/assess/rule/provider/hardcoded_password.rb +73 -0
  279. data/lib/contrast/agent/assess/rule/provider/hardcoded_value_rule.rb +121 -0
  280. data/lib/contrast/agent/assess/rule/redos.rb +68 -0
  281. data/lib/contrast/agent/assess/rule/response_scanning_rule.rb +47 -0
  282. data/lib/contrast/agent/assess/rule/response_watcher.rb +36 -0
  283. data/lib/contrast/agent/assess/rule/watcher.rb +36 -0
  284. data/lib/contrast/agent/assess/tag.rb +151 -0
  285. data/lib/contrast/agent/at_exit_hook.rb +33 -0
  286. data/lib/contrast/agent/class_reopener.rb +195 -0
  287. data/lib/contrast/agent/deadzone/policy/deadzone_node.rb +26 -0
  288. data/lib/contrast/agent/deadzone/policy/policy.rb +57 -0
  289. data/lib/contrast/agent/disable_reaction.rb +24 -0
  290. data/lib/contrast/agent/exclusion_matcher.rb +190 -0
  291. data/lib/contrast/agent/feature_state.rb +379 -0
  292. data/lib/contrast/agent/inventory/policy/policy.rb +32 -0
  293. data/lib/contrast/agent/inventory/policy/trigger_node.rb +22 -0
  294. data/lib/contrast/agent/logger_manager.rb +116 -0
  295. data/lib/contrast/agent/middleware.rb +352 -0
  296. data/lib/contrast/agent/module_data.rb +16 -0
  297. data/lib/contrast/agent/patching/policy/after_load_patch.rb +37 -0
  298. data/lib/contrast/agent/patching/policy/after_load_patcher.rb +58 -0
  299. data/lib/contrast/agent/patching/policy/method_policy.rb +94 -0
  300. data/lib/contrast/agent/patching/policy/module_policy.rb +116 -0
  301. data/lib/contrast/agent/patching/policy/patch.rb +312 -0
  302. data/lib/contrast/agent/patching/policy/patch_status.rb +192 -0
  303. data/lib/contrast/agent/patching/policy/patcher.rb +310 -0
  304. data/lib/contrast/agent/patching/policy/policy.rb +138 -0
  305. data/lib/contrast/agent/patching/policy/policy_node.rb +80 -0
  306. data/lib/contrast/agent/patching/policy/policy_unpatcher.rb +28 -0
  307. data/lib/contrast/agent/patching/policy/trigger_node.rb +81 -0
  308. data/lib/contrast/agent/protect/policy/policy.rb +37 -0
  309. data/lib/contrast/agent/protect/policy/trigger_node.rb +23 -0
  310. data/lib/contrast/agent/protect/rule.rb +58 -0
  311. data/lib/contrast/agent/protect/rule/base.rb +300 -0
  312. data/lib/contrast/agent/protect/rule/base_service.rb +88 -0
  313. data/lib/contrast/agent/protect/rule/cmd_injection.rb +156 -0
  314. data/lib/contrast/agent/protect/rule/csrf.rb +118 -0
  315. data/lib/contrast/agent/protect/rule/csrf/csrf_evaluator.rb +103 -0
  316. data/lib/contrast/agent/protect/rule/csrf/csrf_token_injector.rb +85 -0
  317. data/lib/contrast/agent/protect/rule/default_scanner.rb +300 -0
  318. data/lib/contrast/agent/protect/rule/deserialization.rb +193 -0
  319. data/lib/contrast/agent/protect/rule/http_method_tampering.rb +80 -0
  320. data/lib/contrast/agent/protect/rule/no_sqli.rb +101 -0
  321. data/lib/contrast/agent/protect/rule/no_sqli/mongo_no_sql_scanner.rb +40 -0
  322. data/lib/contrast/agent/protect/rule/path_traversal.rb +143 -0
  323. data/lib/contrast/agent/protect/rule/sqli.rb +101 -0
  324. data/lib/contrast/agent/protect/rule/sqli/default_sql_scanner.rb +16 -0
  325. data/lib/contrast/agent/protect/rule/sqli/mysql_sql_scanner.rb +38 -0
  326. data/lib/contrast/agent/protect/rule/sqli/postgres_sql_scanner.rb +22 -0
  327. data/lib/contrast/agent/protect/rule/sqli/sqlite_sql_scanner.rb +19 -0
  328. data/lib/contrast/agent/protect/rule/unsafe_file_upload.rb +20 -0
  329. data/lib/contrast/agent/protect/rule/xss.rb +24 -0
  330. data/lib/contrast/agent/protect/rule/xxe.rb +120 -0
  331. data/lib/contrast/agent/protect/rule/xxe/entity_wrapper.rb +82 -0
  332. data/lib/contrast/agent/railtie.rb +30 -0
  333. data/lib/contrast/agent/reaction_processor.rb +47 -0
  334. data/lib/contrast/agent/request.rb +493 -0
  335. data/lib/contrast/agent/request_context.rb +225 -0
  336. data/lib/contrast/agent/require_state.rb +61 -0
  337. data/lib/contrast/agent/response.rb +215 -0
  338. data/lib/contrast/agent/rewriter.rb +244 -0
  339. data/lib/contrast/agent/scope.rb +28 -0
  340. data/lib/contrast/agent/service_heartbeat.rb +37 -0
  341. data/lib/contrast/agent/settings_state.rb +148 -0
  342. data/lib/contrast/agent/socket_client.rb +125 -0
  343. data/lib/contrast/agent/thread.rb +26 -0
  344. data/lib/contrast/agent/tracepoint_hook.rb +51 -0
  345. data/lib/contrast/agent/version.rb +8 -0
  346. data/lib/contrast/api.rb +17 -0
  347. data/lib/contrast/api/.gitkeep +0 -0
  348. data/lib/contrast/api/connection_status.rb +49 -0
  349. data/lib/contrast/api/socket.rb +43 -0
  350. data/lib/contrast/api/speedracer.rb +206 -0
  351. data/lib/contrast/api/tcp_socket.rb +31 -0
  352. data/lib/contrast/api/unix_socket.rb +25 -0
  353. data/lib/contrast/common_agent_configuration.rb +86 -0
  354. data/lib/contrast/components/agent.rb +85 -0
  355. data/lib/contrast/components/app_context.rb +188 -0
  356. data/lib/contrast/components/assess.rb +67 -0
  357. data/lib/contrast/components/config.rb +135 -0
  358. data/lib/contrast/components/contrast_service.rb +113 -0
  359. data/lib/contrast/components/heap_dump.rb +34 -0
  360. data/lib/contrast/components/interface.rb +178 -0
  361. data/lib/contrast/components/inventory.rb +23 -0
  362. data/lib/contrast/components/logger.rb +92 -0
  363. data/lib/contrast/components/protect.rb +38 -0
  364. data/lib/contrast/components/sampling.rb +41 -0
  365. data/lib/contrast/components/scope.rb +106 -0
  366. data/lib/contrast/components/settings.rb +140 -0
  367. data/lib/contrast/config.rb +33 -0
  368. data/lib/contrast/config/agent_configuration.rb +24 -0
  369. data/lib/contrast/config/application_configuration.rb +27 -0
  370. data/lib/contrast/config/assess_configuration.rb +22 -0
  371. data/lib/contrast/config/assess_rules_configuration.rb +18 -0
  372. data/lib/contrast/config/base_configuration.rb +105 -0
  373. data/lib/contrast/config/default_value.rb +16 -0
  374. data/lib/contrast/config/exception_configuration.rb +21 -0
  375. data/lib/contrast/config/heap_dump_configuration.rb +23 -0
  376. data/lib/contrast/config/inventory_configuration.rb +20 -0
  377. data/lib/contrast/config/logger_configuration.rb +20 -0
  378. data/lib/contrast/config/protect_configuration.rb +20 -0
  379. data/lib/contrast/config/protect_rule_configuration.rb +37 -0
  380. data/lib/contrast/config/protect_rules_configuration.rb +30 -0
  381. data/lib/contrast/config/root_configuration.rb +26 -0
  382. data/lib/contrast/config/ruby_configuration.rb +39 -0
  383. data/lib/contrast/config/sampling_configuration.rb +22 -0
  384. data/lib/contrast/config/server_configuration.rb +23 -0
  385. data/lib/contrast/config/service_configuration.rb +22 -0
  386. data/lib/contrast/configuration.rb +214 -0
  387. data/lib/contrast/core_extensions/assess.rb +51 -0
  388. data/lib/contrast/core_extensions/assess/array.rb +58 -0
  389. data/lib/contrast/core_extensions/assess/assess_extension.rb +145 -0
  390. data/lib/contrast/core_extensions/assess/basic_object.rb +15 -0
  391. data/lib/contrast/core_extensions/assess/erb.rb +42 -0
  392. data/lib/contrast/core_extensions/assess/exec_trigger.rb +48 -0
  393. data/lib/contrast/core_extensions/assess/fiber.rb +125 -0
  394. data/lib/contrast/core_extensions/assess/hash.rb +22 -0
  395. data/lib/contrast/core_extensions/assess/kernel.rb +95 -0
  396. data/lib/contrast/core_extensions/assess/module.rb +14 -0
  397. data/lib/contrast/core_extensions/assess/regexp.rb +206 -0
  398. data/lib/contrast/core_extensions/assess/string.rb +75 -0
  399. data/lib/contrast/core_extensions/assess/tilt_template_trigger.rb +73 -0
  400. data/lib/contrast/core_extensions/delegator.rb +14 -0
  401. data/lib/contrast/core_extensions/eval_trigger.rb +52 -0
  402. data/lib/contrast/core_extensions/inventory.rb +22 -0
  403. data/lib/contrast/core_extensions/inventory/datastores.rb +37 -0
  404. data/lib/contrast/core_extensions/module.rb +42 -0
  405. data/lib/contrast/core_extensions/object.rb +27 -0
  406. data/lib/contrast/core_extensions/protect.rb +20 -0
  407. data/lib/contrast/core_extensions/protect/applies_command_injection_rule.rb +70 -0
  408. data/lib/contrast/core_extensions/protect/applies_deserialization_rule.rb +58 -0
  409. data/lib/contrast/core_extensions/protect/applies_no_sqli_rule.rb +81 -0
  410. data/lib/contrast/core_extensions/protect/applies_path_traversal_rule.rb +119 -0
  411. data/lib/contrast/core_extensions/protect/applies_sqli_rule.rb +63 -0
  412. data/lib/contrast/core_extensions/protect/applies_xxe_rule.rb +141 -0
  413. data/lib/contrast/core_extensions/protect/kernel.rb +30 -0
  414. data/lib/contrast/core_extensions/protect/psych.rb +7 -0
  415. data/lib/contrast/core_extensions/thread.rb +31 -0
  416. data/lib/contrast/internal_exception.rb +8 -0
  417. data/lib/contrast/rails_extensions/assess/action_controller_inheritance.rb +48 -0
  418. data/lib/contrast/rails_extensions/assess/active_record.rb +32 -0
  419. data/lib/contrast/rails_extensions/assess/active_record_named.rb +61 -0
  420. data/lib/contrast/rails_extensions/assess/configuration.rb +26 -0
  421. data/lib/contrast/rails_extensions/buffer.rb +30 -0
  422. data/lib/contrast/rails_extensions/rack.rb +45 -0
  423. data/lib/contrast/security_exception.rb +14 -0
  424. data/lib/contrast/sinatra_extensions/assess/cookie.rb +26 -0
  425. data/lib/contrast/sinatra_extensions/inventory/sinatra_base.rb +59 -0
  426. data/lib/contrast/tasks/service.rb +95 -0
  427. data/lib/contrast/utils/assess/sampling_util.rb +96 -0
  428. data/lib/contrast/utils/assess/tracking_util.rb +39 -0
  429. data/lib/contrast/utils/boolean_util.rb +33 -0
  430. data/lib/contrast/utils/cache.rb +69 -0
  431. data/lib/contrast/utils/class_util.rb +58 -0
  432. data/lib/contrast/utils/comment_range.rb +19 -0
  433. data/lib/contrast/utils/data_store_util.rb +23 -0
  434. data/lib/contrast/utils/duck_utils.rb +58 -0
  435. data/lib/contrast/utils/env_configuration_item.rb +52 -0
  436. data/lib/contrast/utils/environment_util.rb +152 -0
  437. data/lib/contrast/utils/freeze_util.rb +36 -0
  438. data/lib/contrast/utils/gemfile_reader.rb +191 -0
  439. data/lib/contrast/utils/hash_digest.rb +148 -0
  440. data/lib/contrast/utils/heap_dump_util.rb +113 -0
  441. data/lib/contrast/utils/invalid_configuration_util.rb +88 -0
  442. data/lib/contrast/utils/inventory_util.rb +126 -0
  443. data/lib/contrast/utils/io_util.rb +61 -0
  444. data/lib/contrast/utils/object_share.rb +117 -0
  445. data/lib/contrast/utils/operating_environment.rb +38 -0
  446. data/lib/contrast/utils/os.rb +49 -0
  447. data/lib/contrast/utils/path_util.rb +151 -0
  448. data/lib/contrast/utils/performs_logging.rb +152 -0
  449. data/lib/contrast/utils/preflight_util.rb +13 -0
  450. data/lib/contrast/utils/prevent_serialization.rb +52 -0
  451. data/lib/contrast/utils/rack_assess_session_cookie.rb +104 -0
  452. data/lib/contrast/utils/rails_assess_configuration.rb +95 -0
  453. data/lib/contrast/utils/random_util.rb +22 -0
  454. data/lib/contrast/utils/resource_loader.rb +23 -0
  455. data/lib/contrast/utils/ruby_ast_rewriter.rb +74 -0
  456. data/lib/contrast/utils/scope_util.rb +99 -0
  457. data/lib/contrast/utils/service_response_util.rb +116 -0
  458. data/lib/contrast/utils/service_sender_util.rb +98 -0
  459. data/lib/contrast/utils/sha256_builder.rb +69 -0
  460. data/lib/contrast/utils/sinatra_helper.rb +49 -0
  461. data/lib/contrast/utils/stack_trace_utils.rb +209 -0
  462. data/lib/contrast/utils/string_utils.rb +72 -0
  463. data/lib/contrast/utils/tag_util.rb +139 -0
  464. data/lib/contrast/utils/thread_tracker.rb +54 -0
  465. data/lib/contrast/utils/timer.rb +78 -0
  466. data/resources/assess/policy.json +1673 -0
  467. data/resources/csrf/inject.js +44 -0
  468. data/resources/deadzone/policy.json +55 -0
  469. data/resources/factory-bot-spec/spec_helper.rb +30 -0
  470. data/resources/inventory/policy.json +110 -0
  471. data/resources/protect/policy.json +417 -0
  472. data/resources/rubocops/kernel/catch_cop.rb +37 -0
  473. data/resources/rubocops/kernel/require_cop.rb +37 -0
  474. data/resources/rubocops/kernel/require_relative_cop.rb +33 -0
  475. data/resources/rubocops/module/autoload_cop.rb +37 -0
  476. data/resources/rubocops/module/const_defined_cop.rb +37 -0
  477. data/resources/rubocops/module/const_get_cop.rb +37 -0
  478. data/resources/rubocops/module/const_set_cop.rb +37 -0
  479. data/resources/rubocops/module/constants_cop.rb +37 -0
  480. data/resources/rubocops/module/name_cop.rb +37 -0
  481. data/resources/rubocops/object/class_cop.rb +37 -0
  482. data/resources/rubocops/object/freeze_cop.rb +37 -0
  483. data/resources/rubocops/object/frozen_cop.rb +37 -0
  484. data/resources/rubocops/object/is_a_cop.rb +37 -0
  485. data/resources/rubocops/object/method_cop.rb +37 -0
  486. data/resources/rubocops/object/respond_to_cop.rb +37 -0
  487. data/resources/rubocops/object/singleton_class_cop.rb +37 -0
  488. data/resources/rubocops/regexp/spelling_cop.rb +44 -0
  489. data/resources/rubocops/thread/new_cop.rb +39 -0
  490. data/resources/ruby-spec/ancestors_spec.rb +70 -0
  491. data/resources/ruby-spec/modulo_spec.rb +831 -0
  492. data/resources/ruby-spec/parameters_spec.rb +261 -0
  493. data/resources/ruby-spec/ruby_spec_spec_helper.rb +35 -0
  494. data/resources/test_marker.txt +1 -0
  495. data/ruby-agent.gemspec +129 -0
  496. data/service_executables/.gitkeep +0 -0
  497. data/service_executables/VERSION +1 -0
  498. data/service_executables/linux/contrast-service +0 -0
  499. data/service_executables/mac/contrast-service +0 -0
  500. metadata +945 -0
@@ -0,0 +1,79 @@
1
+ using System;
2
+ using System.Reflection;
3
+ using System.Reflection.Emit;
4
+ using diStorm;
5
+
6
+ namespace TestdiStorm
7
+ {
8
+ public class Program
9
+ {
10
+ private static IntPtr LeakNativeMethodPtr(MethodInfo x)
11
+ {
12
+
13
+ //if ((x.MethodImplementationFlags & MethodImplAttributes.InternalCall) != 0)
14
+ // Console.WriteLine("{0} is an InternalCall method. These methods always point to the same address.", x.Name);
15
+ var domain = AppDomain.CurrentDomain;
16
+ var dynAsm = new AssemblyName("MethodLeakAssembly");
17
+ var asmBuilder = domain.DefineDynamicAssembly(dynAsm, AssemblyBuilderAccess.Run);
18
+ var moduleBuilder = asmBuilder.DefineDynamicModule("MethodLeakModule");
19
+ var typeBuilder = moduleBuilder.DefineType("MethodLeaker", TypeAttributes.Public);
20
+ var p = new Type[0];
21
+ var methodBuilder = typeBuilder.DefineMethod("LeakNativeMethodPtr", MethodAttributes.Public | MethodAttributes.Static, typeof(IntPtr), null);
22
+ var generator = methodBuilder.GetILGenerator();
23
+
24
+ // Push unmanaged pointer to MethodInfo onto the evaluation stack
25
+ generator.Emit(OpCodes.Ldftn, x);
26
+ // Convert the pointer to type - unsigned int64
27
+ //generator.Emit(OpCodes.Conv_Ovf_U);
28
+ generator.Emit(OpCodes.Ret);
29
+
30
+ // Assemble everything
31
+ var type = typeBuilder.CreateType();
32
+
33
+ var method = type.GetMethod("LeakNativeMethodPtr");
34
+
35
+ try {
36
+ // Call the method and return its JITed address
37
+ var address = (IntPtr) method.Invoke(null, new object[0]);
38
+
39
+ Console.WriteLine("0x{0}", address.ToString(string.Format("X{0})", IntPtr.Size * 2)));
40
+ return address;
41
+ }
42
+ catch (Exception e) {
43
+ Console.WriteLine("{0} cannot return an unmanaged address.");
44
+ }
45
+ return IntPtr.Zero;
46
+ }
47
+
48
+
49
+ private static unsafe void Main(string[] args)
50
+ {
51
+ var buf = new byte[4];
52
+ buf[0] = (byte) 0xc3;
53
+ buf[1] = (byte) 0x33;
54
+ buf[2] = (byte) 0xc0;
55
+ buf[3] = (byte) 0xc3;
56
+ var ci = new CodeInfo((long) 0x1000, buf, DecodeType.Decode32Bits, 0);
57
+ var dr = new DecodedResult(10);
58
+ diStorm3.Decode(ci, dr);
59
+
60
+ foreach (var x in dr.Instructions) {
61
+ var s = String.Format("{0:X} {1} {2}", x.Offset, x.Mnemonic, x.Operands);
62
+ Console.WriteLine(s);
63
+ }
64
+
65
+ var dr2 = new DecomposedResult(10);
66
+ diStorm3.Decompose(ci, dr2);
67
+
68
+ foreach (var y in dr2.Instructions) {
69
+ if (y.Opcode != Opcode.RET)
70
+ {
71
+ var x = diStorm3.Format(ci, y);
72
+ var s = String.Format("{0:X} {1} {2}", x.Offset, x.Mnemonic, x.Operands);
73
+ Console.WriteLine(s);
74
+ }
75
+ }
76
+
77
+ }
78
+ }
79
+ }
@@ -0,0 +1,36 @@
1
+ using System.Reflection;
2
+ using System.Runtime.CompilerServices;
3
+ using System.Runtime.InteropServices;
4
+
5
+ // General Information about an assembly is controlled through the following
6
+ // set of attributes. Change these attribute values to modify the information
7
+ // associated with an assembly.
8
+ [assembly: AssemblyTitle("TestDiStorm")]
9
+ [assembly: AssemblyDescription("")]
10
+ [assembly: AssemblyConfiguration("")]
11
+ [assembly: AssemblyCompany("")]
12
+ [assembly: AssemblyProduct("TestDiStorm")]
13
+ [assembly: AssemblyCopyright("Copyright © 2012")]
14
+ [assembly: AssemblyTrademark("")]
15
+ [assembly: AssemblyCulture("")]
16
+
17
+ // Setting ComVisible to false makes the types in this assembly not visible
18
+ // to COM components. If you need to access a type in this assembly from
19
+ // COM, set the ComVisible attribute to true on that type.
20
+ [assembly: ComVisible(false)]
21
+
22
+ // The following GUID is for the ID of the typelib if this project is exposed to COM
23
+ [assembly: Guid("737cf66b-c136-47be-b92d-3f2fefbaf27a")]
24
+
25
+ // Version information for an assembly consists of the following four values:
26
+ //
27
+ // Major Version
28
+ // Minor Version
29
+ // Build Number
30
+ // Revision
31
+ //
32
+ // You can specify all the values or you can default the Build and Revision Numbers
33
+ // by using the '*' as shown below:
34
+ // [assembly: AssemblyVersion("1.0.*")]
35
+ [assembly: AssemblyVersion("1.0.0.0")]
36
+ [assembly: AssemblyFileVersion("1.0.0.0")]
@@ -0,0 +1,69 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
4
+ <PropertyGroup>
5
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
6
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
7
+ <ProjectGuid>{2F2F3CBD-F968-47E4-ADEC-D42E42A924AC}</ProjectGuid>
8
+ <OutputType>Exe</OutputType>
9
+ <AppDesignerFolder>Properties</AppDesignerFolder>
10
+ <RootNamespace>TestDiStorm</RootNamespace>
11
+ <AssemblyName>TestDiStorm</AssemblyName>
12
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
13
+ <FileAlignment>512</FileAlignment>
14
+ <TargetFrameworkProfile />
15
+ </PropertyGroup>
16
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
17
+ <PlatformTarget>x64</PlatformTarget>
18
+ <DebugSymbols>true</DebugSymbols>
19
+ <DebugType>full</DebugType>
20
+ <Optimize>false</Optimize>
21
+ <OutputPath>bin\Debug\</OutputPath>
22
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
23
+ <ErrorReport>prompt</ErrorReport>
24
+ <WarningLevel>4</WarningLevel>
25
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
26
+ <Prefer32Bit>false</Prefer32Bit>
27
+ </PropertyGroup>
28
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
29
+ <PlatformTarget>x64</PlatformTarget>
30
+ <DebugType>pdbonly</DebugType>
31
+ <Optimize>true</Optimize>
32
+ <OutputPath>bin\Release\</OutputPath>
33
+ <DefineConstants>TRACE</DefineConstants>
34
+ <ErrorReport>prompt</ErrorReport>
35
+ <WarningLevel>4</WarningLevel>
36
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
37
+ </PropertyGroup>
38
+ <ItemGroup>
39
+ <Reference Include="System" />
40
+ <Reference Include="System.Core" />
41
+ <Reference Include="System.Xml.Linq" />
42
+ <Reference Include="System.Data.DataSetExtensions" />
43
+ <Reference Include="Microsoft.CSharp" />
44
+ <Reference Include="System.Data" />
45
+ <Reference Include="System.Xml" />
46
+ </ItemGroup>
47
+ <ItemGroup>
48
+ <Compile Include="Operand.cs" />
49
+ <Compile Include="Program.cs" />
50
+ <Compile Include="Properties\AssemblyInfo.cs" />
51
+ </ItemGroup>
52
+ <ItemGroup>
53
+ <ProjectReference Include="..\distorm-net\distorm-net.csproj">
54
+ <Project>{137ade63-2489-4235-91c6-6cb664cab63f}</Project>
55
+ <Name>distorm-net</Name>
56
+ </ProjectReference>
57
+ </ItemGroup>
58
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
59
+ <PropertyGroup>
60
+ <PostBuildEvent>copy $(SolutionDir)\..\..\distorm3.dll $(TargetDir)</PostBuildEvent>
61
+ </PropertyGroup>
62
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
63
+ Other similar extension points exist, see Microsoft.Common.targets.
64
+ <Target Name="BeforeBuild">
65
+ </Target>
66
+ <Target Name="AfterBuild">
67
+ </Target>
68
+ -->
69
+ </Project>
@@ -0,0 +1,26 @@
1
+ 
2
+ Microsoft Visual Studio Solution File, Format Version 12.00
3
+ # Visual Studio 2012
4
+ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "distorm-net", "distorm-net\distorm-net.csproj", "{137ADE63-2489-4235-91C6-6CB664CAB63F}"
5
+ EndProject
6
+ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestdiStorm", "TestDiStorm\TestdiStorm.csproj", "{2F2F3CBD-F968-47E4-ADEC-D42E42A924AC}"
7
+ EndProject
8
+ Global
9
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
10
+ Debug|Any CPU = Debug|Any CPU
11
+ Release|Any CPU = Release|Any CPU
12
+ EndGlobalSection
13
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
14
+ {137ADE63-2489-4235-91C6-6CB664CAB63F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15
+ {137ADE63-2489-4235-91C6-6CB664CAB63F}.Debug|Any CPU.Build.0 = Debug|Any CPU
16
+ {137ADE63-2489-4235-91C6-6CB664CAB63F}.Release|Any CPU.ActiveCfg = Release|Any CPU
17
+ {137ADE63-2489-4235-91C6-6CB664CAB63F}.Release|Any CPU.Build.0 = Release|Any CPU
18
+ {2F2F3CBD-F968-47E4-ADEC-D42E42A924AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
19
+ {2F2F3CBD-F968-47E4-ADEC-D42E42A924AC}.Debug|Any CPU.Build.0 = Debug|Any CPU
20
+ {2F2F3CBD-F968-47E4-ADEC-D42E42A924AC}.Release|Any CPU.ActiveCfg = Release|Any CPU
21
+ {2F2F3CBD-F968-47E4-ADEC-D42E42A924AC}.Release|Any CPU.Build.0 = Release|Any CPU
22
+ EndGlobalSection
23
+ GlobalSection(SolutionProperties) = preSolution
24
+ HideSolutionNode = FALSE
25
+ EndGlobalSection
26
+ EndGlobal
@@ -0,0 +1,23 @@
1
+ using System;
2
+
3
+ namespace diStorm
4
+ {
5
+ public class CodeInfo
6
+ {
7
+ public CodeInfo(long codeOffset, byte[] rawCode, DecodeType dt, int features)
8
+ {
9
+ _code = new byte[rawCode.Length];
10
+ Array.Copy(rawCode, _code, _code.Length);
11
+
12
+ _codeOffset = codeOffset;
13
+ _decodeType = dt;
14
+ _features = features;
15
+ }
16
+
17
+ internal long _codeOffset;
18
+ internal long _nextOffset;
19
+ internal byte[] _code;
20
+ internal DecodeType _decodeType;
21
+ internal int _features;
22
+ }
23
+ }
@@ -0,0 +1,15 @@
1
+ using System;
2
+
3
+ namespace diStorm
4
+ {
5
+ public class DecodedInst
6
+ {
7
+ internal DecodedInst() { }
8
+
9
+ public string Mnemonic { get; internal set; }
10
+ public string Operands { get; internal set; }
11
+ public string Hex { get; internal set; }
12
+ public uint Size { get; internal set; }
13
+ public IntPtr Offset { get; internal set; }
14
+ }
15
+ }
@@ -0,0 +1,14 @@
1
+
2
+ namespace diStorm
3
+ {
4
+ public class DecodedResult
5
+ {
6
+ public DecodedResult(int maxInstructions)
7
+ {
8
+ MaxInstructions = maxInstructions;
9
+ Instructions = null;
10
+ }
11
+ public DecodedInst[] Instructions { get; internal set; }
12
+ public int MaxInstructions { get; internal set; }
13
+ }
14
+ }
@@ -0,0 +1,36 @@
1
+ using System;
2
+
3
+ namespace diStorm
4
+ {
5
+ public class DecomposedInst
6
+ {
7
+ public class ImmVariant
8
+ {
9
+ public ulong Imm { get; internal set; }
10
+ public int Size { get; internal set; }
11
+ }
12
+ public class DispVariant
13
+ {
14
+ public ulong Displacement { get; internal set; }
15
+ public int Size { get; internal set; }
16
+ }
17
+ internal int _segment;
18
+ public IntPtr Address { get; internal set; }
19
+ public ushort Flags { get; internal set; }
20
+ public int Size { get; internal set; }
21
+ public Opcode Opcode { get; internal set; }
22
+ public int Segment { get { return _segment & 0x7f; } }
23
+ public bool IsSegmentDefault { get { return (_segment & 0x80) == 0x80; } }
24
+ public int Base { get; internal set; }
25
+ public int Scale { get; internal set; }
26
+ public int UnusedPrefixesMask { get; internal set; }
27
+ public int Meta { get; internal set; }
28
+ public int RegistersMask { get; internal set; }
29
+ public int ModifiedFlagsMask { get; internal set; }
30
+ public int TestedFlagsMask { get; internal set; }
31
+ public int UndefinedFlagsMask { get; internal set; }
32
+ public ImmVariant Imm { get; internal set; }
33
+ public DispVariant Disp { get; internal set; }
34
+ public Operand[] Operands { get; internal set; }
35
+ }
36
+ }
@@ -0,0 +1,14 @@
1
+ namespace diStorm
2
+ {
3
+ public class DecomposedResult
4
+ {
5
+ public DecomposedResult(int maxInstructions)
6
+ {
7
+ MaxInstructions = maxInstructions;
8
+ Instructions = null;
9
+ }
10
+
11
+ public DecomposedInst[] Instructions { get; internal set; }
12
+ public int MaxInstructions { get; private set; }
13
+ }
14
+ }
@@ -0,0 +1,1268 @@
1
+ 
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+ // This file was auto generated from the distrom opcodes.h file
13
+ // on 2015-01-03 15:05:06.323
14
+
15
+ namespace diStorm
16
+ {
17
+ public enum Opcode : ushort {
18
+
19
+ UNDEFINED = 0,
20
+ AAA = 66,
21
+ AAD = 389,
22
+ AAM = 384,
23
+ AAS = 76,
24
+ ADC = 31,
25
+ ADD = 11,
26
+ ADDPD = 3110,
27
+ ADDPS = 3103,
28
+ ADDSD = 3124,
29
+ ADDSS = 3117,
30
+ ADDSUBPD = 6394,
31
+ ADDSUBPS = 6404,
32
+ AESDEC = 9209,
33
+ AESDECLAST = 9226,
34
+ AESENC = 9167,
35
+ AESENCLAST = 9184,
36
+ AESIMC = 9150,
37
+ AESKEYGENASSIST = 9795,
38
+ AND = 41,
39
+ ANDNPD = 3021,
40
+ ANDNPS = 3013,
41
+ ANDPD = 2990,
42
+ ANDPS = 2983,
43
+ ARPL = 111,
44
+ BLENDPD = 9372,
45
+ BLENDPS = 9353,
46
+ BLENDVPD = 7619,
47
+ BLENDVPS = 7609,
48
+ BOUND = 104,
49
+ BSF = 4346,
50
+ BSR = 4358,
51
+ BSWAP = 960,
52
+ BT = 872,
53
+ BTC = 934,
54
+ BTR = 912,
55
+ BTS = 887,
56
+ CALL = 456,
57
+ CALL_FAR = 260,
58
+ CBW = 228,
59
+ CDQ = 250,
60
+ CDQE = 239,
61
+ CLC = 492,
62
+ CLD = 512,
63
+ CLFLUSH = 4329,
64
+ CLGI = 1833,
65
+ CLI = 502,
66
+ CLTS = 541,
67
+ CMC = 487,
68
+ CMOVA = 694,
69
+ CMOVAE = 663,
70
+ CMOVB = 656,
71
+ CMOVBE = 686,
72
+ CMOVG = 754,
73
+ CMOVGE = 738,
74
+ CMOVL = 731,
75
+ CMOVLE = 746,
76
+ CMOVNO = 648,
77
+ CMOVNP = 723,
78
+ CMOVNS = 708,
79
+ CMOVNZ = 678,
80
+ CMOVO = 641,
81
+ CMOVP = 716,
82
+ CMOVS = 701,
83
+ CMOVZ = 671,
84
+ CMP = 71,
85
+ CMPEQPD = 4449,
86
+ CMPEQPS = 4370,
87
+ CMPEQSD = 4607,
88
+ CMPEQSS = 4528,
89
+ CMPLEPD = 4467,
90
+ CMPLEPS = 4388,
91
+ CMPLESD = 4625,
92
+ CMPLESS = 4546,
93
+ CMPLTPD = 4458,
94
+ CMPLTPS = 4379,
95
+ CMPLTSD = 4616,
96
+ CMPLTSS = 4537,
97
+ CMPNEQPD = 4488,
98
+ CMPNEQPS = 4409,
99
+ CMPNEQSD = 4646,
100
+ CMPNEQSS = 4567,
101
+ CMPNLEPD = 4508,
102
+ CMPNLEPS = 4429,
103
+ CMPNLESD = 4666,
104
+ CMPNLESS = 4587,
105
+ CMPNLTPD = 4498,
106
+ CMPNLTPS = 4419,
107
+ CMPNLTSD = 4656,
108
+ CMPNLTSS = 4577,
109
+ CMPORDPD = 4518,
110
+ CMPORDPS = 4439,
111
+ CMPORDSD = 4676,
112
+ CMPORDSS = 4597,
113
+ CMPS = 301,
114
+ CMPUNORDPD = 4476,
115
+ CMPUNORDPS = 4397,
116
+ CMPUNORDSD = 4634,
117
+ CMPUNORDSS = 4555,
118
+ CMPXCHG = 898,
119
+ CMPXCHG16B = 6373,
120
+ CMPXCHG8B = 6362,
121
+ COMISD = 2779,
122
+ COMISS = 2771,
123
+ CPUID = 865,
124
+ CQO = 255,
125
+ CRC32 = 9258,
126
+ CVTDQ2PD = 6787,
127
+ CVTDQ2PS = 3307,
128
+ CVTPD2DQ = 6797,
129
+ CVTPD2PI = 2681,
130
+ CVTPD2PS = 3233,
131
+ CVTPH2PS = 4161,
132
+ CVTPI2PD = 2495,
133
+ CVTPI2PS = 2485,
134
+ CVTPS2DQ = 3317,
135
+ CVTPS2PD = 3223,
136
+ CVTPS2PH = 4171,
137
+ CVTPS2PI = 2671,
138
+ CVTSD2SI = 2701,
139
+ CVTSD2SS = 3253,
140
+ CVTSI2SD = 2515,
141
+ CVTSI2SS = 2505,
142
+ CVTSS2SD = 3243,
143
+ CVTSS2SI = 2691,
144
+ CVTTPD2DQ = 6776,
145
+ CVTTPD2PI = 2614,
146
+ CVTTPS2DQ = 3327,
147
+ CVTTPS2PI = 2603,
148
+ CVTTSD2SI = 2636,
149
+ CVTTSS2SI = 2625,
150
+ CWD = 245,
151
+ CWDE = 233,
152
+ DAA = 46,
153
+ DAS = 56,
154
+ DEC = 86,
155
+ DIV = 1630,
156
+ DIVPD = 3499,
157
+ DIVPS = 3492,
158
+ DIVSD = 3513,
159
+ DIVSS = 3506,
160
+ DPPD = 9615,
161
+ DPPS = 9602,
162
+ EMMS = 4100,
163
+ ENTER = 340,
164
+ EXTRACTPS = 9480,
165
+ EXTRQ = 4136,
166
+ F2XM1 = 1176,
167
+ FABS = 1107,
168
+ FADD = 1007,
169
+ FADDP = 1533,
170
+ FBLD = 1585,
171
+ FBSTP = 1591,
172
+ FCHS = 1101,
173
+ FCLEX = 7289,
174
+ FCMOVB = 1360,
175
+ FCMOVBE = 1376,
176
+ FCMOVE = 1368,
177
+ FCMOVNB = 1429,
178
+ FCMOVNBE = 1447,
179
+ FCMOVNE = 1438,
180
+ FCMOVNU = 1457,
181
+ FCMOVU = 1385,
182
+ FCOM = 1019,
183
+ FCOMI = 1496,
184
+ FCOMIP = 1607,
185
+ FCOMP = 1025,
186
+ FCOMPP = 1547,
187
+ FCOS = 1295,
188
+ FDECSTP = 1222,
189
+ FDIV = 1045,
190
+ FDIVP = 1578,
191
+ FDIVR = 1051,
192
+ FDIVRP = 1570,
193
+ FEDISI = 1472,
194
+ FEMMS = 574,
195
+ FENI = 1466,
196
+ FFREE = 1511,
197
+ FIADD = 1301,
198
+ FICOM = 1315,
199
+ FICOMP = 1322,
200
+ FIDIV = 1345,
201
+ FIDIVR = 1352,
202
+ FILD = 1402,
203
+ FIMUL = 1308,
204
+ FINCSTP = 1231,
205
+ FINIT = 7304,
206
+ FIST = 1416,
207
+ FISTP = 1422,
208
+ FISTTP = 1408,
209
+ FISUB = 1330,
210
+ FISUBR = 1337,
211
+ FLD = 1058,
212
+ FLD1 = 1125,
213
+ FLDCW = 1082,
214
+ FLDENV = 1074,
215
+ FLDL2E = 1139,
216
+ FLDL2T = 1131,
217
+ FLDLG2 = 1154,
218
+ FLDLN2 = 1162,
219
+ FLDPI = 1147,
220
+ FLDZ = 1170,
221
+ FMUL = 1013,
222
+ FMULP = 1540,
223
+ FNCLEX = 7281,
224
+ FNINIT = 7296,
225
+ FNOP = 1095,
226
+ FNSAVE = 7311,
227
+ FNSTCW = 7266,
228
+ FNSTENV = 7249,
229
+ FNSTSW = 7326,
230
+ FPATAN = 1197,
231
+ FPREM = 1240,
232
+ FPREM1 = 1214,
233
+ FPTAN = 1190,
234
+ FRNDINT = 1272,
235
+ FRSTOR = 1503,
236
+ FSAVE = 7319,
237
+ FSCALE = 1281,
238
+ FSETPM = 1480,
239
+ FSIN = 1289,
240
+ FSINCOS = 1263,
241
+ FSQRT = 1256,
242
+ FST = 1063,
243
+ FSTCW = 7274,
244
+ FSTENV = 7258,
245
+ FSTP = 1068,
246
+ FSTSW = 7334,
247
+ FSUB = 1032,
248
+ FSUBP = 1563,
249
+ FSUBR = 1038,
250
+ FSUBRP = 1555,
251
+ FTST = 1113,
252
+ FUCOM = 1518,
253
+ FUCOMI = 1488,
254
+ FUCOMIP = 1598,
255
+ FUCOMP = 1525,
256
+ FUCOMPP = 1393,
257
+ FXAM = 1119,
258
+ FXCH = 1089,
259
+ FXRSTOR = 9892,
260
+ FXRSTOR64 = 9901,
261
+ FXSAVE = 9864,
262
+ FXSAVE64 = 9872,
263
+ FXTRACT = 1205,
264
+ FYL2X = 1183,
265
+ FYL2XP1 = 1247,
266
+ GETSEC = 633,
267
+ HADDPD = 4181,
268
+ HADDPS = 4189,
269
+ HLT = 482,
270
+ HSUBPD = 4215,
271
+ HSUBPS = 4223,
272
+ IDIV = 1635,
273
+ IMUL = 117,
274
+ IN = 447,
275
+ INC = 81,
276
+ INS = 123,
277
+ INSERTPS = 9547,
278
+ INSERTQ = 4143,
279
+ INT = 367,
280
+ INT_3 = 360,
281
+ INT1 = 476,
282
+ INTO = 372,
283
+ INVD = 555,
284
+ INVEPT = 8284,
285
+ INVLPG = 1711,
286
+ INVLPGA = 1847,
287
+ INVPCID = 8301,
288
+ INVVPID = 8292,
289
+ IRET = 378,
290
+ JA = 166,
291
+ JAE = 147,
292
+ JB = 143,
293
+ JBE = 161,
294
+ JCXZ = 427,
295
+ JECXZ = 433,
296
+ JG = 202,
297
+ JGE = 192,
298
+ JL = 188,
299
+ JLE = 197,
300
+ JMP = 462,
301
+ JMP_FAR = 467,
302
+ JNO = 138,
303
+ JNP = 183,
304
+ JNS = 174,
305
+ JNZ = 156,
306
+ JO = 134,
307
+ JP = 179,
308
+ JRCXZ = 440,
309
+ JS = 170,
310
+ JZ = 152,
311
+ LAHF = 289,
312
+ LAR = 522,
313
+ LDDQU = 6994,
314
+ LDMXCSR = 9922,
315
+ LDS = 335,
316
+ LEA = 223,
317
+ LEAVE = 347,
318
+ LES = 330,
319
+ LFENCE = 4265,
320
+ LFS = 917,
321
+ LGDT = 1687,
322
+ LGS = 922,
323
+ LIDT = 1693,
324
+ LLDT = 1652,
325
+ LMSW = 1705,
326
+ LODS = 313,
327
+ LOOP = 421,
328
+ LOOPNZ = 406,
329
+ LOOPZ = 414,
330
+ LSL = 527,
331
+ LSS = 907,
332
+ LTR = 1658,
333
+ LZCNT = 4363,
334
+ MASKMOVDQU = 7119,
335
+ MASKMOVQ = 7109,
336
+ MAXPD = 3559,
337
+ MAXPS = 3552,
338
+ MAXSD = 3573,
339
+ MAXSS = 3566,
340
+ MFENCE = 4291,
341
+ MINPD = 3439,
342
+ MINPS = 3432,
343
+ MINSD = 3453,
344
+ MINSS = 3446,
345
+ MONITOR = 1755,
346
+ MOV = 218,
347
+ MOVAPD = 2459,
348
+ MOVAPS = 2451,
349
+ MOVBE = 9251,
350
+ MOVD = 3920,
351
+ MOVDDUP = 2186,
352
+ MOVDQ2Q = 6522,
353
+ MOVDQA = 3946,
354
+ MOVDQU = 3954,
355
+ MOVHLPS = 2151,
356
+ MOVHPD = 2345,
357
+ MOVHPS = 2337,
358
+ MOVLHPS = 2328,
359
+ MOVLPD = 2168,
360
+ MOVLPS = 2160,
361
+ MOVMSKPD = 2815,
362
+ MOVMSKPS = 2805,
363
+ MOVNTDQ = 6849,
364
+ MOVNTDQA = 7895,
365
+ MOVNTI = 952,
366
+ MOVNTPD = 2556,
367
+ MOVNTPS = 2547,
368
+ MOVNTQ = 6841,
369
+ MOVNTSD = 2574,
370
+ MOVNTSS = 2565,
371
+ MOVQ = 3926,
372
+ MOVQ2DQ = 6513,
373
+ MOVS = 295,
374
+ MOVSD = 2110,
375
+ MOVSHDUP = 2353,
376
+ MOVSLDUP = 2176,
377
+ MOVSS = 2103,
378
+ MOVSX = 939,
379
+ MOVSXD = 10005,
380
+ MOVUPD = 2095,
381
+ MOVUPS = 2087,
382
+ MOVZX = 927,
383
+ MPSADBW = 9628,
384
+ MUL = 1625,
385
+ MULPD = 3170,
386
+ MULPS = 3163,
387
+ MULSD = 3184,
388
+ MULSS = 3177,
389
+ MWAIT = 1764,
390
+ NEG = 1620,
391
+ NOP = 581,
392
+ NOT = 1615,
393
+ OR = 27,
394
+ ORPD = 3053,
395
+ ORPS = 3047,
396
+ OUT = 451,
397
+ OUTS = 128,
398
+ PABSB = 7688,
399
+ PABSD = 7718,
400
+ PABSW = 7703,
401
+ PACKSSDW = 3849,
402
+ PACKSSWB = 3681,
403
+ PACKUSDW = 7916,
404
+ PACKUSWB = 3759,
405
+ PADDB = 7204,
406
+ PADDD = 7234,
407
+ PADDQ = 6481,
408
+ PADDSB = 6930,
409
+ PADDSW = 6947,
410
+ PADDUSB = 6620,
411
+ PADDUSW = 6639,
412
+ PADDW = 7219,
413
+ PALIGNR = 9410,
414
+ PAND = 6607,
415
+ PANDN = 6665,
416
+ PAUSE = 10013,
417
+ PAVGB = 6680,
418
+ PAVGUSB = 2078,
419
+ PAVGW = 6725,
420
+ PBLENDVB = 7599,
421
+ PBLENDW = 9391,
422
+ PCLMULQDQ = 9647,
423
+ PCMPEQB = 4043,
424
+ PCMPEQD = 4081,
425
+ PCMPEQQ = 7876,
426
+ PCMPEQW = 4062,
427
+ PCMPESTRI = 9726,
428
+ PCMPESTRM = 9703,
429
+ PCMPGTB = 3702,
430
+ PCMPGTD = 3740,
431
+ PCMPGTQ = 8087,
432
+ PCMPGTW = 3721,
433
+ PCMPISTRI = 9772,
434
+ PCMPISTRM = 9749,
435
+ PEXTRB = 9429,
436
+ PEXTRD = 9446,
437
+ PEXTRQ = 9454,
438
+ PEXTRW = 6311,
439
+ PF2ID = 1914,
440
+ PF2IW = 1907,
441
+ PFACC = 2028,
442
+ PFADD = 1977,
443
+ PFCMPEQ = 2035,
444
+ PFCMPGE = 1938,
445
+ PFCMPGT = 1984,
446
+ PFMAX = 1993,
447
+ PFMIN = 1947,
448
+ PFMUL = 2044,
449
+ PFNACC = 1921,
450
+ PFPNACC = 1929,
451
+ PFRCP = 1954,
452
+ PFRCPIT1 = 2000,
453
+ PFRCPIT2 = 2051,
454
+ PFRSQIT1 = 2010,
455
+ PFRSQRT = 1961,
456
+ PFSUB = 1970,
457
+ PFSUBR = 2020,
458
+ PHADDD = 7375,
459
+ PHADDSW = 7392,
460
+ PHADDW = 7358,
461
+ PHMINPOSUW = 8259,
462
+ PHSUBD = 7451,
463
+ PHSUBSW = 7468,
464
+ PHSUBW = 7434,
465
+ PI2FD = 1900,
466
+ PI2FW = 1893,
467
+ PINSRB = 9530,
468
+ PINSRD = 9568,
469
+ PINSRQ = 9576,
470
+ PINSRW = 6294,
471
+ PMADDUBSW = 7411,
472
+ PMADDWD = 7073,
473
+ PMAXSB = 8174,
474
+ PMAXSD = 8191,
475
+ PMAXSW = 6964,
476
+ PMAXUB = 6648,
477
+ PMAXUD = 8225,
478
+ PMAXUW = 8208,
479
+ PMINSB = 8106,
480
+ PMINSD = 8123,
481
+ PMINSW = 6902,
482
+ PMINUB = 6590,
483
+ PMINUD = 8157,
484
+ PMINUW = 8140,
485
+ PMOVMSKB = 6531,
486
+ PMOVSXBD = 7754,
487
+ PMOVSXBQ = 7775,
488
+ PMOVSXBW = 7733,
489
+ PMOVSXDQ = 7838,
490
+ PMOVSXWD = 7796,
491
+ PMOVSXWQ = 7817,
492
+ PMOVZXBD = 7982,
493
+ PMOVZXBQ = 8003,
494
+ PMOVZXBW = 7961,
495
+ PMOVZXDQ = 8066,
496
+ PMOVZXWD = 8024,
497
+ PMOVZXWQ = 8045,
498
+ PMULDQ = 7859,
499
+ PMULHRSW = 7538,
500
+ PMULHRW = 2061,
501
+ PMULHUW = 6740,
502
+ PMULHW = 6759,
503
+ PMULLD = 8242,
504
+ PMULLW = 6496,
505
+ PMULUDQ = 7054,
506
+ POP = 22,
507
+ POPA = 98,
508
+ POPCNT = 4338,
509
+ POPF = 277,
510
+ POR = 6919,
511
+ PREFETCH = 1872,
512
+ PREFETCHNTA = 2402,
513
+ PREFETCHT0 = 2415,
514
+ PREFETCHT1 = 2427,
515
+ PREFETCHT2 = 2439,
516
+ PREFETCHW = 1882,
517
+ PSADBW = 7092,
518
+ PSHUFB = 7341,
519
+ PSHUFD = 3988,
520
+ PSHUFHW = 3996,
521
+ PSHUFLW = 4005,
522
+ PSHUFW = 3980,
523
+ PSIGNB = 7487,
524
+ PSIGND = 7521,
525
+ PSIGNW = 7504,
526
+ PSLLD = 7024,
527
+ PSLLDQ = 9847,
528
+ PSLLQ = 7039,
529
+ PSLLW = 7009,
530
+ PSRAD = 6710,
531
+ PSRAW = 6695,
532
+ PSRLD = 6451,
533
+ PSRLDQ = 9830,
534
+ PSRLQ = 6466,
535
+ PSRLW = 6436,
536
+ PSUBB = 7144,
537
+ PSUBD = 7174,
538
+ PSUBQ = 7189,
539
+ PSUBSB = 6868,
540
+ PSUBSW = 6885,
541
+ PSUBUSB = 6552,
542
+ PSUBUSW = 6571,
543
+ PSUBW = 7159,
544
+ PSWAPD = 2070,
545
+ PTEST = 7629,
546
+ PUNPCKHBW = 3780,
547
+ PUNPCKHDQ = 3826,
548
+ PUNPCKHQDQ = 3895,
549
+ PUNPCKHWD = 3803,
550
+ PUNPCKLBW = 3612,
551
+ PUNPCKLDQ = 3658,
552
+ PUNPCKLQDQ = 3870,
553
+ PUNPCKLWD = 3635,
554
+ PUSH = 16,
555
+ PUSHA = 91,
556
+ PUSHF = 270,
557
+ PXOR = 6981,
558
+ RCL = 977,
559
+ RCPPS = 2953,
560
+ RCPSS = 2960,
561
+ RCR = 982,
562
+ RDFSBASE = 9882,
563
+ RDGSBASE = 9912,
564
+ RDMSR = 600,
565
+ RDPMC = 607,
566
+ RDRAND = 10026,
567
+ RDTSC = 593,
568
+ RDTSCP = 1864,
569
+ RET = 325,
570
+ RETF = 354,
571
+ ROL = 967,
572
+ ROR = 972,
573
+ ROUNDPD = 9296,
574
+ ROUNDPS = 9277,
575
+ ROUNDSD = 9334,
576
+ ROUNDSS = 9315,
577
+ RSM = 882,
578
+ RSQRTPS = 2915,
579
+ RSQRTSS = 2924,
580
+ SAHF = 283,
581
+ SAL = 997,
582
+ SALC = 394,
583
+ SAR = 1002,
584
+ SBB = 36,
585
+ SCAS = 319,
586
+ SETA = 807,
587
+ SETAE = 780,
588
+ SETB = 774,
589
+ SETBE = 800,
590
+ SETG = 859,
591
+ SETGE = 845,
592
+ SETL = 839,
593
+ SETLE = 852,
594
+ SETNO = 767,
595
+ SETNP = 832,
596
+ SETNS = 819,
597
+ SETNZ = 793,
598
+ SETO = 761,
599
+ SETP = 826,
600
+ SETS = 813,
601
+ SETZ = 787,
602
+ SFENCE = 4321,
603
+ SGDT = 1675,
604
+ SHL = 987,
605
+ SHLD = 876,
606
+ SHR = 992,
607
+ SHRD = 892,
608
+ SHUFPD = 6336,
609
+ SHUFPS = 6328,
610
+ SIDT = 1681,
611
+ SKINIT = 1839,
612
+ SLDT = 1641,
613
+ SMSW = 1699,
614
+ SQRTPD = 2855,
615
+ SQRTPS = 2847,
616
+ SQRTSD = 2871,
617
+ SQRTSS = 2863,
618
+ STC = 497,
619
+ STD = 517,
620
+ STGI = 1827,
621
+ STI = 507,
622
+ STMXCSR = 9951,
623
+ STOS = 307,
624
+ STR = 1647,
625
+ SUB = 51,
626
+ SUBPD = 3379,
627
+ SUBPS = 3372,
628
+ SUBSD = 3393,
629
+ SUBSS = 3386,
630
+ SWAPGS = 1856,
631
+ SYSCALL = 532,
632
+ SYSENTER = 614,
633
+ SYSEXIT = 624,
634
+ SYSRET = 547,
635
+ TEST = 206,
636
+ TZCNT = 4351,
637
+ UCOMISD = 2742,
638
+ UCOMISS = 2733,
639
+ UD2 = 569,
640
+ UNPCKHPD = 2296,
641
+ UNPCKHPS = 2286,
642
+ UNPCKLPD = 2254,
643
+ UNPCKLPS = 2244,
644
+ VADDPD = 3139,
645
+ VADDPS = 3131,
646
+ VADDSD = 3155,
647
+ VADDSS = 3147,
648
+ VADDSUBPD = 6414,
649
+ VADDSUBPS = 6425,
650
+ VAESDEC = 9217,
651
+ VAESDECLAST = 9238,
652
+ VAESENC = 9175,
653
+ VAESENCLAST = 9196,
654
+ VAESIMC = 9158,
655
+ VAESKEYGENASSIST = 9812,
656
+ VANDNPD = 3038,
657
+ VANDNPS = 3029,
658
+ VANDPD = 3005,
659
+ VANDPS = 2997,
660
+ VBLENDPD = 9381,
661
+ VBLENDPS = 9362,
662
+ VBLENDVPD = 9681,
663
+ VBLENDVPS = 9670,
664
+ VBROADCASTF128 = 7672,
665
+ VBROADCASTSD = 7658,
666
+ VBROADCASTSS = 7644,
667
+ VCMPEQPD = 5088,
668
+ VCMPEQPS = 4686,
669
+ VCMPEQSD = 5892,
670
+ VCMPEQSS = 5490,
671
+ VCMPEQ_OSPD = 5269,
672
+ VCMPEQ_OSPS = 4867,
673
+ VCMPEQ_OSSD = 6073,
674
+ VCMPEQ_OSSS = 5671,
675
+ VCMPEQ_UQPD = 5175,
676
+ VCMPEQ_UQPS = 4773,
677
+ VCMPEQ_UQSD = 5979,
678
+ VCMPEQ_UQSS = 5577,
679
+ VCMPEQ_USPD = 5378,
680
+ VCMPEQ_USPS = 4976,
681
+ VCMPEQ_USSD = 6182,
682
+ VCMPEQ_USSS = 5780,
683
+ VCMPFALSEPD = 5210,
684
+ VCMPFALSEPS = 4808,
685
+ VCMPFALSESD = 6014,
686
+ VCMPFALSESS = 5612,
687
+ VCMPFALSE_OSPD = 5419,
688
+ VCMPFALSE_OSPS = 5017,
689
+ VCMPFALSE_OSSD = 6223,
690
+ VCMPFALSE_OSSS = 5821,
691
+ VCMPGEPD = 5237,
692
+ VCMPGEPS = 4835,
693
+ VCMPGESD = 6041,
694
+ VCMPGESS = 5639,
695
+ VCMPGE_OQPD = 5449,
696
+ VCMPGE_OQPS = 5047,
697
+ VCMPGE_OQSD = 6253,
698
+ VCMPGE_OQSS = 5851,
699
+ VCMPGTPD = 5247,
700
+ VCMPGTPS = 4845,
701
+ VCMPGTSD = 6051,
702
+ VCMPGTSS = 5649,
703
+ VCMPGT_OQPD = 5462,
704
+ VCMPGT_OQPS = 5060,
705
+ VCMPGT_OQSD = 6266,
706
+ VCMPGT_OQSS = 5864,
707
+ VCMPLEPD = 5108,
708
+ VCMPLEPS = 4706,
709
+ VCMPLESD = 5912,
710
+ VCMPLESS = 5510,
711
+ VCMPLE_OQPD = 5295,
712
+ VCMPLE_OQPS = 4893,
713
+ VCMPLE_OQSD = 6099,
714
+ VCMPLE_OQSS = 5697,
715
+ VCMPLTPD = 5098,
716
+ VCMPLTPS = 4696,
717
+ VCMPLTSD = 5902,
718
+ VCMPLTSS = 5500,
719
+ VCMPLT_OQPD = 5282,
720
+ VCMPLT_OQPS = 4880,
721
+ VCMPLT_OQSD = 6086,
722
+ VCMPLT_OQSS = 5684,
723
+ VCMPNEQPD = 5131,
724
+ VCMPNEQPS = 4729,
725
+ VCMPNEQSD = 5935,
726
+ VCMPNEQSS = 5533,
727
+ VCMPNEQ_OQPD = 5223,
728
+ VCMPNEQ_OQPS = 4821,
729
+ VCMPNEQ_OQSD = 6027,
730
+ VCMPNEQ_OQSS = 5625,
731
+ VCMPNEQ_OSPD = 5435,
732
+ VCMPNEQ_OSPS = 5033,
733
+ VCMPNEQ_OSSD = 6239,
734
+ VCMPNEQ_OSSS = 5837,
735
+ VCMPNEQ_USPD = 5323,
736
+ VCMPNEQ_USPS = 4921,
737
+ VCMPNEQ_USSD = 6127,
738
+ VCMPNEQ_USSS = 5725,
739
+ VCMPNGEPD = 5188,
740
+ VCMPNGEPS = 4786,
741
+ VCMPNGESD = 5992,
742
+ VCMPNGESS = 5590,
743
+ VCMPNGE_UQPD = 5391,
744
+ VCMPNGE_UQPS = 4989,
745
+ VCMPNGE_UQSD = 6195,
746
+ VCMPNGE_UQSS = 5793,
747
+ VCMPNGTPD = 5199,
748
+ VCMPNGTPS = 4797,
749
+ VCMPNGTSD = 6003,
750
+ VCMPNGTSS = 5601,
751
+ VCMPNGT_UQPD = 5405,
752
+ VCMPNGT_UQPS = 5003,
753
+ VCMPNGT_UQSD = 6209,
754
+ VCMPNGT_UQSS = 5807,
755
+ VCMPNLEPD = 5153,
756
+ VCMPNLEPS = 4751,
757
+ VCMPNLESD = 5957,
758
+ VCMPNLESS = 5555,
759
+ VCMPNLE_UQPD = 5351,
760
+ VCMPNLE_UQPS = 4949,
761
+ VCMPNLE_UQSD = 6155,
762
+ VCMPNLE_UQSS = 5753,
763
+ VCMPNLTPD = 5142,
764
+ VCMPNLTPS = 4740,
765
+ VCMPNLTSD = 5946,
766
+ VCMPNLTSS = 5544,
767
+ VCMPNLT_UQPD = 5337,
768
+ VCMPNLT_UQPS = 4935,
769
+ VCMPNLT_UQSD = 6141,
770
+ VCMPNLT_UQSS = 5739,
771
+ VCMPORDPD = 5164,
772
+ VCMPORDPS = 4762,
773
+ VCMPORDSD = 5968,
774
+ VCMPORDSS = 5566,
775
+ VCMPORD_SPD = 5365,
776
+ VCMPORD_SPS = 4963,
777
+ VCMPORD_SSD = 6169,
778
+ VCMPORD_SSS = 5767,
779
+ VCMPTRUEPD = 5257,
780
+ VCMPTRUEPS = 4855,
781
+ VCMPTRUESD = 6061,
782
+ VCMPTRUESS = 5659,
783
+ VCMPTRUE_USPD = 5475,
784
+ VCMPTRUE_USPS = 5073,
785
+ VCMPTRUE_USSD = 6279,
786
+ VCMPTRUE_USSS = 5877,
787
+ VCMPUNORDPD = 5118,
788
+ VCMPUNORDPS = 4716,
789
+ VCMPUNORDSD = 5922,
790
+ VCMPUNORDSS = 5520,
791
+ VCMPUNORD_SPD = 5308,
792
+ VCMPUNORD_SPS = 4906,
793
+ VCMPUNORD_SSD = 6112,
794
+ VCMPUNORD_SSS = 5710,
795
+ VCOMISD = 2796,
796
+ VCOMISS = 2787,
797
+ VCVTDQ2PD = 6819,
798
+ VCVTDQ2PS = 3338,
799
+ VCVTPD2DQ = 6830,
800
+ VCVTPD2PS = 3274,
801
+ VCVTPS2DQ = 3349,
802
+ VCVTPS2PD = 3263,
803
+ VCVTSD2SI = 2722,
804
+ VCVTSD2SS = 3296,
805
+ VCVTSI2SD = 2536,
806
+ VCVTSI2SS = 2525,
807
+ VCVTSS2SD = 3285,
808
+ VCVTSS2SI = 2711,
809
+ VCVTTPD2DQ = 6807,
810
+ VCVTTPS2DQ = 3360,
811
+ VCVTTSD2SI = 2659,
812
+ VCVTTSS2SI = 2647,
813
+ VDIVPD = 3528,
814
+ VDIVPS = 3520,
815
+ VDIVSD = 3544,
816
+ VDIVSS = 3536,
817
+ VDPPD = 9621,
818
+ VDPPS = 9608,
819
+ VERR = 1663,
820
+ VERW = 1669,
821
+ VEXTRACTF128 = 9516,
822
+ VEXTRACTPS = 9491,
823
+ VFMADD132PD = 8387,
824
+ VFMADD132PS = 8374,
825
+ VFMADD132SD = 8413,
826
+ VFMADD132SS = 8400,
827
+ VFMADD213PD = 8667,
828
+ VFMADD213PS = 8654,
829
+ VFMADD213SD = 8693,
830
+ VFMADD213SS = 8680,
831
+ VFMADD231PD = 8947,
832
+ VFMADD231PS = 8934,
833
+ VFMADD231SD = 8973,
834
+ VFMADD231SS = 8960,
835
+ VFMADDSUB132PD = 8326,
836
+ VFMADDSUB132PS = 8310,
837
+ VFMADDSUB213PD = 8606,
838
+ VFMADDSUB213PS = 8590,
839
+ VFMADDSUB231PD = 8886,
840
+ VFMADDSUB231PS = 8870,
841
+ VFMSUB132PD = 8439,
842
+ VFMSUB132PS = 8426,
843
+ VFMSUB132SD = 8465,
844
+ VFMSUB132SS = 8452,
845
+ VFMSUB213PD = 8719,
846
+ VFMSUB213PS = 8706,
847
+ VFMSUB213SD = 8745,
848
+ VFMSUB213SS = 8732,
849
+ VFMSUB231PD = 8999,
850
+ VFMSUB231PS = 8986,
851
+ VFMSUB231SD = 9025,
852
+ VFMSUB231SS = 9012,
853
+ VFMSUBADD132PD = 8358,
854
+ VFMSUBADD132PS = 8342,
855
+ VFMSUBADD213PD = 8638,
856
+ VFMSUBADD213PS = 8622,
857
+ VFMSUBADD231PD = 8918,
858
+ VFMSUBADD231PS = 8902,
859
+ VFNMADD132PD = 8492,
860
+ VFNMADD132PS = 8478,
861
+ VFNMADD132SD = 8520,
862
+ VFNMADD132SS = 8506,
863
+ VFNMADD213PD = 8772,
864
+ VFNMADD213PS = 8758,
865
+ VFNMADD213SD = 8800,
866
+ VFNMADD213SS = 8786,
867
+ VFNMADD231PD = 9052,
868
+ VFNMADD231PS = 9038,
869
+ VFNMADD231SD = 9080,
870
+ VFNMADD231SS = 9066,
871
+ VFNMSUB132PD = 8548,
872
+ VFNMSUB132PS = 8534,
873
+ VFNMSUB132SD = 8576,
874
+ VFNMSUB132SS = 8562,
875
+ VFNMSUB213PD = 8828,
876
+ VFNMSUB213PS = 8814,
877
+ VFNMSUB213SD = 8856,
878
+ VFNMSUB213SS = 8842,
879
+ VFNMSUB231PD = 9108,
880
+ VFNMSUB231PS = 9094,
881
+ VFNMSUB231SD = 9136,
882
+ VFNMSUB231SS = 9122,
883
+ VHADDPD = 4197,
884
+ VHADDPS = 4206,
885
+ VHSUBPD = 4231,
886
+ VHSUBPS = 4240,
887
+ VINSERTF128 = 9503,
888
+ VINSERTPS = 9557,
889
+ VLDDQU = 7001,
890
+ VLDMXCSR = 9941,
891
+ VMASKMOVDQU = 7131,
892
+ VMASKMOVPD = 7949,
893
+ VMASKMOVPS = 7937,
894
+ VMAXPD = 3588,
895
+ VMAXPS = 3580,
896
+ VMAXSD = 3604,
897
+ VMAXSS = 3596,
898
+ VMCALL = 1719,
899
+ VMCLEAR = 9989,
900
+ VMFUNC = 1787,
901
+ VMINPD = 3468,
902
+ VMINPS = 3460,
903
+ VMINSD = 3484,
904
+ VMINSS = 3476,
905
+ VMLAUNCH = 1727,
906
+ VMLOAD = 1811,
907
+ VMMCALL = 1802,
908
+ VMOVAPD = 2476,
909
+ VMOVAPS = 2467,
910
+ VMOVD = 3932,
911
+ VMOVDDUP = 2234,
912
+ VMOVDQA = 3962,
913
+ VMOVDQU = 3971,
914
+ VMOVHLPS = 2195,
915
+ VMOVHPD = 2382,
916
+ VMOVHPS = 2373,
917
+ VMOVLHPS = 2363,
918
+ VMOVLPD = 2214,
919
+ VMOVLPS = 2205,
920
+ VMOVMSKPD = 2836,
921
+ VMOVMSKPS = 2825,
922
+ VMOVNTDQ = 6858,
923
+ VMOVNTDQA = 7905,
924
+ VMOVNTPD = 2593,
925
+ VMOVNTPS = 2583,
926
+ VMOVQ = 3939,
927
+ VMOVSD = 2143,
928
+ VMOVSHDUP = 2391,
929
+ VMOVSLDUP = 2223,
930
+ VMOVSS = 2135,
931
+ VMOVUPD = 2126,
932
+ VMOVUPS = 2117,
933
+ VMPSADBW = 9637,
934
+ VMPTRLD = 9980,
935
+ VMPTRST = 6385,
936
+ VMREAD = 4128,
937
+ VMRESUME = 1737,
938
+ VMRUN = 1795,
939
+ VMSAVE = 1819,
940
+ VMULPD = 3199,
941
+ VMULPS = 3191,
942
+ VMULSD = 3215,
943
+ VMULSS = 3207,
944
+ VMWRITE = 4152,
945
+ VMXOFF = 1747,
946
+ VMXON = 9998,
947
+ VORPD = 3066,
948
+ VORPS = 3059,
949
+ VPABSB = 7695,
950
+ VPABSD = 7725,
951
+ VPABSW = 7710,
952
+ VPACKSSDW = 3859,
953
+ VPACKSSWB = 3691,
954
+ VPACKUSDW = 7926,
955
+ VPACKUSWB = 3769,
956
+ VPADDB = 7211,
957
+ VPADDD = 7241,
958
+ VPADDQ = 6488,
959
+ VPADDSB = 6938,
960
+ VPADDSW = 6955,
961
+ VPADDUSW = 6629,
962
+ VPADDW = 7226,
963
+ VPALIGNR = 9419,
964
+ VPAND = 6613,
965
+ VPANDN = 6672,
966
+ VPAVGB = 6687,
967
+ VPAVGW = 6732,
968
+ VPBLENDVB = 9692,
969
+ VPBLENDW = 9400,
970
+ VPCLMULQDQ = 9658,
971
+ VPCMPEQB = 4052,
972
+ VPCMPEQD = 4090,
973
+ VPCMPEQQ = 7885,
974
+ VPCMPEQW = 4071,
975
+ VPCMPESTRI = 9737,
976
+ VPCMPESTRM = 9714,
977
+ VPCMPGTB = 3711,
978
+ VPCMPGTD = 3749,
979
+ VPCMPGTQ = 8096,
980
+ VPCMPGTW = 3730,
981
+ VPCMPISTRI = 9783,
982
+ VPCMPISTRM = 9760,
983
+ VPERM2F128 = 9265,
984
+ VPERMILPD = 7570,
985
+ VPERMILPS = 7559,
986
+ VPEXTRB = 9437,
987
+ VPEXTRD = 9462,
988
+ VPEXTRQ = 9471,
989
+ VPEXTRW = 6319,
990
+ VPHADDD = 7383,
991
+ VPHADDSW = 7401,
992
+ VPHADDW = 7366,
993
+ VPHMINPOSUW = 8271,
994
+ VPHSUBD = 7459,
995
+ VPHSUBSW = 7477,
996
+ VPHSUBW = 7442,
997
+ VPINSRB = 9538,
998
+ VPINSRD = 9584,
999
+ VPINSRQ = 9593,
1000
+ VPINSRW = 6302,
1001
+ VPMADDUBSW = 7422,
1002
+ VPMADDWD = 7082,
1003
+ VPMAXSB = 8182,
1004
+ VPMAXSD = 8199,
1005
+ VPMAXSW = 6972,
1006
+ VPMAXUB = 6656,
1007
+ VPMAXUD = 8233,
1008
+ VPMAXUW = 8216,
1009
+ VPMINSB = 8114,
1010
+ VPMINSD = 8131,
1011
+ VPMINSW = 6910,
1012
+ VPMINUB = 6598,
1013
+ VPMINUD = 8165,
1014
+ VPMINUW = 8148,
1015
+ VPMOVMSKB = 6541,
1016
+ VPMOVSXBD = 7764,
1017
+ VPMOVSXBQ = 7785,
1018
+ VPMOVSXBW = 7743,
1019
+ VPMOVSXDQ = 7848,
1020
+ VPMOVSXWD = 7806,
1021
+ VPMOVSXWQ = 7827,
1022
+ VPMOVZXBD = 7992,
1023
+ VPMOVZXBQ = 8013,
1024
+ VPMOVZXBW = 7971,
1025
+ VPMOVZXDQ = 8076,
1026
+ VPMOVZXWD = 8034,
1027
+ VPMOVZXWQ = 8055,
1028
+ VPMULDQ = 7867,
1029
+ VPMULHRSW = 7548,
1030
+ VPMULHUW = 6749,
1031
+ VPMULHW = 6767,
1032
+ VPMULLD = 8250,
1033
+ VPMULLW = 6504,
1034
+ VPMULUDQ = 7063,
1035
+ VPOR = 6924,
1036
+ VPSADBW = 7100,
1037
+ VPSHUFB = 7349,
1038
+ VPSHUFD = 4014,
1039
+ VPSHUFHW = 4023,
1040
+ VPSHUFLW = 4033,
1041
+ VPSIGNB = 7495,
1042
+ VPSIGND = 7529,
1043
+ VPSIGNW = 7512,
1044
+ VPSLLD = 7031,
1045
+ VPSLLDQ = 9855,
1046
+ VPSLLQ = 7046,
1047
+ VPSLLW = 7016,
1048
+ VPSRAD = 6717,
1049
+ VPSRAW = 6702,
1050
+ VPSRLD = 6458,
1051
+ VPSRLDQ = 9838,
1052
+ VPSRLQ = 6473,
1053
+ VPSRLW = 6443,
1054
+ VPSUBB = 7151,
1055
+ VPSUBD = 7181,
1056
+ VPSUBQ = 7196,
1057
+ VPSUBSB = 6876,
1058
+ VPSUBSW = 6893,
1059
+ VPSUBUSB = 6561,
1060
+ VPSUBUSW = 6580,
1061
+ VPSUBW = 7166,
1062
+ VPTEST = 7636,
1063
+ VPUNPCKHBW = 3791,
1064
+ VPUNPCKHDQ = 3837,
1065
+ VPUNPCKHQDQ = 3907,
1066
+ VPUNPCKHWD = 3814,
1067
+ VPUNPCKLBW = 3623,
1068
+ VPUNPCKLDQ = 3669,
1069
+ VPUNPCKLQDQ = 3882,
1070
+ VPUNPCKLWD = 3646,
1071
+ VPXOR = 6987,
1072
+ VRCPPS = 2967,
1073
+ VRCPSS = 2975,
1074
+ VROUNDPD = 9305,
1075
+ VROUNDPS = 9286,
1076
+ VROUNDSD = 9343,
1077
+ VROUNDSS = 9324,
1078
+ VRSQRTPS = 2933,
1079
+ VRSQRTSS = 2943,
1080
+ VSHUFPD = 6353,
1081
+ VSHUFPS = 6344,
1082
+ VSQRTPD = 2888,
1083
+ VSQRTPS = 2879,
1084
+ VSQRTSD = 2906,
1085
+ VSQRTSS = 2897,
1086
+ VSTMXCSR = 9970,
1087
+ VSUBPD = 3408,
1088
+ VSUBPS = 3400,
1089
+ VSUBSD = 3424,
1090
+ VSUBSS = 3416,
1091
+ VTESTPD = 7590,
1092
+ VTESTPS = 7581,
1093
+ VUCOMISD = 2761,
1094
+ VUCOMISS = 2751,
1095
+ VUNPCKHPD = 2317,
1096
+ VUNPCKHPS = 2306,
1097
+ VUNPCKLPD = 2275,
1098
+ VUNPCKLPS = 2264,
1099
+ VXORPD = 3095,
1100
+ VXORPS = 3087,
1101
+ VZEROALL = 4118,
1102
+ VZEROUPPER = 4106,
1103
+ WAIT = 10020,
1104
+ WBINVD = 561,
1105
+ WRFSBASE = 9931,
1106
+ WRGSBASE = 9960,
1107
+ WRMSR = 586,
1108
+ XADD = 946,
1109
+ XCHG = 212,
1110
+ XGETBV = 1771,
1111
+ XLAT = 400,
1112
+ XOR = 61,
1113
+ XORPD = 3080,
1114
+ XORPS = 3073,
1115
+ XRSTOR = 4273,
1116
+ XRSTOR64 = 4281,
1117
+ XSAVE = 4249,
1118
+ XSAVE64 = 4256,
1119
+ XSAVEOPT = 4299,
1120
+ XSAVEOPT64 = 4309,
1121
+ XSETBV = 1779,
1122
+ _3DNOW = 10034,
1123
+ }
1124
+
1125
+ public enum Register {
1126
+
1127
+ R_RAX,
1128
+ R_RCX,
1129
+ R_RDX,
1130
+ R_RBX,
1131
+ R_RSP,
1132
+ R_RBP,
1133
+ R_RSI,
1134
+ R_RDI,
1135
+ R_R8,
1136
+ R_R9,
1137
+ R_R10,
1138
+ R_R11,
1139
+ R_R12,
1140
+ R_R13,
1141
+ R_R14,
1142
+ R_R15,
1143
+ R_EAX,
1144
+ R_ECX,
1145
+ R_EDX,
1146
+ R_EBX,
1147
+ R_ESP,
1148
+ R_EBP,
1149
+ R_ESI,
1150
+ R_EDI,
1151
+ R_R8D,
1152
+ R_R9D,
1153
+ R_R10D,
1154
+ R_R11D,
1155
+ R_R12D,
1156
+ R_R13D,
1157
+ R_R14D,
1158
+ R_R15D,
1159
+ R_AX,
1160
+ R_CX,
1161
+ R_DX,
1162
+ R_BX,
1163
+ R_SP,
1164
+ R_BP,
1165
+ R_SI,
1166
+ R_DI,
1167
+ R_R8W,
1168
+ R_R9W,
1169
+ R_R10W,
1170
+ R_R11W,
1171
+ R_R12W,
1172
+ R_R13W,
1173
+ R_R14W,
1174
+ R_R15W,
1175
+ R_AL,
1176
+ R_CL,
1177
+ R_DL,
1178
+ R_BL,
1179
+ R_AH,
1180
+ R_CH,
1181
+ R_DH,
1182
+ R_BH,
1183
+ R_R8B,
1184
+ R_R9B,
1185
+ R_R10B,
1186
+ R_R11B,
1187
+ R_R12B,
1188
+ R_R13B,
1189
+ R_R14B,
1190
+ R_R15B,
1191
+ R_SPL,
1192
+ R_BPL,
1193
+ R_SIL,
1194
+ R_DIL,
1195
+ R_ES,
1196
+ R_CS,
1197
+ R_SS,
1198
+ R_DS,
1199
+ R_FS,
1200
+ R_GS,
1201
+ R_RIP,
1202
+ R_ST0,
1203
+ R_ST1,
1204
+ R_ST2,
1205
+ R_ST3,
1206
+ R_ST4,
1207
+ R_ST5,
1208
+ R_ST6,
1209
+ R_ST7,
1210
+ R_MM0,
1211
+ R_MM1,
1212
+ R_MM2,
1213
+ R_MM3,
1214
+ R_MM4,
1215
+ R_MM5,
1216
+ R_MM6,
1217
+ R_MM7,
1218
+ R_XMM0,
1219
+ R_XMM1,
1220
+ R_XMM2,
1221
+ R_XMM3,
1222
+ R_XMM4,
1223
+ R_XMM5,
1224
+ R_XMM6,
1225
+ R_XMM7,
1226
+ R_XMM8,
1227
+ R_XMM9,
1228
+ R_XMM10,
1229
+ R_XMM11,
1230
+ R_XMM12,
1231
+ R_XMM13,
1232
+ R_XMM14,
1233
+ R_XMM15,
1234
+ R_YMM0,
1235
+ R_YMM1,
1236
+ R_YMM2,
1237
+ R_YMM3,
1238
+ R_YMM4,
1239
+ R_YMM5,
1240
+ R_YMM6,
1241
+ R_YMM7,
1242
+ R_YMM8,
1243
+ R_YMM9,
1244
+ R_YMM10,
1245
+ R_YMM11,
1246
+ R_YMM12,
1247
+ R_YMM13,
1248
+ R_YMM14,
1249
+ R_YMM15,
1250
+ R_CR0,
1251
+ R_UNUSED0,
1252
+ R_CR2,
1253
+ R_CR3,
1254
+ R_CR4,
1255
+ R_UNUSED1,
1256
+ R_UNUSED2,
1257
+ R_UNUSED3,
1258
+ R_CR8,
1259
+ R_DR0,
1260
+ R_DR1,
1261
+ R_DR2,
1262
+ R_DR3,
1263
+ R_UNUSED4,
1264
+ R_UNUSED5,
1265
+ R_DR6,
1266
+ R_DR7,
1267
+ }
1268
+ }