karta-ng 2.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (337) hide show
  1. karta_ng-2.3.0/MANIFEST.in +9 -0
  2. karta_ng-2.3.0/PKG-INFO +23 -0
  3. karta_ng-2.3.0/README.md +0 -0
  4. karta_ng-2.3.0/pyproject.toml +76 -0
  5. karta_ng-2.3.0/setup.cfg +4 -0
  6. karta_ng-2.3.0/setup.py +74 -0
  7. karta_ng-2.3.0/src/karta_ng/__init__.py +7 -0
  8. karta_ng-2.3.0/src/karta_ng/analyze_src_file.py +63 -0
  9. karta_ng-2.3.0/src/karta_ng/ar_parser.py +52 -0
  10. karta_ng-2.3.0/src/karta_ng/config/__init__.py +318 -0
  11. karta_ng-2.3.0/src/karta_ng/config/anchor.py +106 -0
  12. karta_ng-2.3.0/src/karta_ng/config/anchor_config.py +20 -0
  13. karta_ng-2.3.0/src/karta_ng/config/libc_config.py +53 -0
  14. karta_ng-2.3.0/src/karta_ng/config/score_config.py +43 -0
  15. karta_ng-2.3.0/src/karta_ng/config/utils.py +630 -0
  16. karta_ng-2.3.0/src/karta_ng/core/__init__.py +61 -0
  17. karta_ng-2.3.0/src/karta_ng/core/file_layer.py +594 -0
  18. karta_ng-2.3.0/src/karta_ng/core/function_context.py +228 -0
  19. karta_ng-2.3.0/src/karta_ng/core/matching_engine.py +686 -0
  20. karta_ng-2.3.0/src/karta_ng/disassembler/IDA/__init__.py +7 -0
  21. karta_ng-2.3.0/src/karta_ng/disassembler/IDA/ida_analysis_api.py +347 -0
  22. karta_ng-2.3.0/src/karta_ng/disassembler/IDA/ida_api.py +806 -0
  23. karta_ng-2.3.0/src/karta_ng/disassembler/IDA/ida_cmd_api.py +118 -0
  24. karta_ng-2.3.0/src/karta_ng/disassembler/IDA/ida_domain_analyzer.py +453 -0
  25. karta_ng-2.3.0/src/karta_ng/disassembler/IDA/ida_domain_api.py +282 -0
  26. karta_ng-2.3.0/src/karta_ng/disassembler/IDA/ida_verifier_api.py +79 -0
  27. karta_ng-2.3.0/src/karta_ng/disassembler/__init__.py +17 -0
  28. karta_ng-2.3.0/src/karta_ng/disassembler/disas_api.py +642 -0
  29. karta_ng-2.3.0/src/karta_ng/disassembler/factory.py +90 -0
  30. karta_ng-2.3.0/src/karta_ng/domain_api.py +76 -0
  31. karta_ng-2.3.0/src/karta_ng/file_layer.py +430 -0
  32. karta_ng-2.3.0/src/karta_ng/function_context.py +1097 -0
  33. karta_ng-2.3.0/src/karta_ng/ida_compat.py +335 -0
  34. karta_ng-2.3.0/src/karta_ng/installers/__init__.py +1 -0
  35. karta_ng-2.3.0/src/karta_ng/installers/common_installer.py +75 -0
  36. karta_ng-2.3.0/src/karta_ng/installers/ida_installer.py +67 -0
  37. karta_ng-2.3.0/src/karta_ng/karta_analyze_object.py +22 -0
  38. karta_ng-2.3.0/src/karta_ng/karta_analyze_src.py +409 -0
  39. karta_ng-2.3.0/src/karta_ng/karta_headless.py +69 -0
  40. karta_ng-2.3.0/src/karta_ng/karta_identifier.py +555 -0
  41. karta_ng-2.3.0/src/karta_ng/karta_manual_anchor.py +211 -0
  42. karta_ng-2.3.0/src/karta_ng/karta_manual_identifier.py +123 -0
  43. karta_ng-2.3.0/src/karta_ng/karta_matcher.py +332 -0
  44. karta_ng-2.3.0/src/karta_ng/libs/__init__.py +320 -0
  45. karta_ng-2.3.0/src/karta_ng/libs/antidebug/__init__.py +17 -0
  46. karta_ng-2.3.0/src/karta_ng/libs/antidebug/antidebug_seeker.py +192 -0
  47. karta_ng-2.3.0/src/karta_ng/libs/antidebug/armadillo_seeker.py +15 -0
  48. karta_ng-2.3.0/src/karta_ng/libs/antidebug/asprotect_seeker.py +15 -0
  49. karta_ng-2.3.0/src/karta_ng/libs/antidebug/themida_seeker.py +17 -0
  50. karta_ng-2.3.0/src/karta_ng/libs/antidebug/upx_seeker.py +126 -0
  51. karta_ng-2.3.0/src/karta_ng/libs/antidebug/vmprotect_seeker.py +16 -0
  52. karta_ng-2.3.0/src/karta_ng/libs/apt/equation_group_seeker.py +280 -0
  53. karta_ng-2.3.0/src/karta_ng/libs/banking/__init__.py +1 -0
  54. karta_ng-2.3.0/src/karta_ng/libs/banking/emotet_seeker.py +384 -0
  55. karta_ng-2.3.0/src/karta_ng/libs/banking/zeus_seeker.py +376 -0
  56. karta_ng-2.3.0/src/karta_ng/libs/cloud/__init__.py +40 -0
  57. karta_ng-2.3.0/src/karta_ng/libs/cloud/alibaba_cloud_seeker.py +67 -0
  58. karta_ng-2.3.0/src/karta_ng/libs/cloud/aws_sdk_seeker.py +76 -0
  59. karta_ng-2.3.0/src/karta_ng/libs/cloud/azure_sdk_seeker.py +76 -0
  60. karta_ng-2.3.0/src/karta_ng/libs/cloud/firebase_seeker.py +69 -0
  61. karta_ng-2.3.0/src/karta_ng/libs/cloud/gcp_sdk_seeker.py +77 -0
  62. karta_ng-2.3.0/src/karta_ng/libs/cloud/s3_seeker.py +61 -0
  63. karta_ng-2.3.0/src/karta_ng/libs/codec/__init__.py +40 -0
  64. karta_ng-2.3.0/src/karta_ng/libs/codec/aac_seeker.py +65 -0
  65. karta_ng-2.3.0/src/karta_ng/libs/codec/av1_seeker.py +60 -0
  66. karta_ng-2.3.0/src/karta_ng/libs/codec/ffmpeg_seeker.py +106 -0
  67. karta_ng-2.3.0/src/karta_ng/libs/codec/flac_seeker.py +103 -0
  68. karta_ng-2.3.0/src/karta_ng/libs/codec/h264_seeker.py +105 -0
  69. karta_ng-2.3.0/src/karta_ng/libs/codec/h265_seeker.py +93 -0
  70. karta_ng-2.3.0/src/karta_ng/libs/codec/mp3_seeker.py +98 -0
  71. karta_ng-2.3.0/src/karta_ng/libs/codec/opus_seeker.py +97 -0
  72. karta_ng-2.3.0/src/karta_ng/libs/codec/vorbis_seeker.py +108 -0
  73. karta_ng-2.3.0/src/karta_ng/libs/codec/vp8_seeker.py +60 -0
  74. karta_ng-2.3.0/src/karta_ng/libs/codec/vp9_seeker.py +59 -0
  75. karta_ng-2.3.0/src/karta_ng/libs/compression/__init__.py +27 -0
  76. karta_ng-2.3.0/src/karta_ng/libs/compression/brotli_seeker.py +32 -0
  77. karta_ng-2.3.0/src/karta_ng/libs/compression/bzip2_seeker.py +34 -0
  78. karta_ng-2.3.0/src/karta_ng/libs/compression/deflate_seeker.py +34 -0
  79. karta_ng-2.3.0/src/karta_ng/libs/compression/lz4_seeker.py +112 -0
  80. karta_ng-2.3.0/src/karta_ng/libs/compression/lzfse_seeker.py +57 -0
  81. karta_ng-2.3.0/src/karta_ng/libs/compression/lzma_seeker.py +108 -0
  82. karta_ng-2.3.0/src/karta_ng/libs/compression/lzo_seeker.py +32 -0
  83. karta_ng-2.3.0/src/karta_ng/libs/compression/quicklz_seeker.py +64 -0
  84. karta_ng-2.3.0/src/karta_ng/libs/compression/rar_seeker.py +72 -0
  85. karta_ng-2.3.0/src/karta_ng/libs/compression/snappy_seeker.py +32 -0
  86. karta_ng-2.3.0/src/karta_ng/libs/compression/zstd_seeker.py +33 -0
  87. karta_ng-2.3.0/src/karta_ng/libs/container/__init__.py +40 -0
  88. karta_ng-2.3.0/src/karta_ng/libs/container/containerd_seeker.py +68 -0
  89. karta_ng-2.3.0/src/karta_ng/libs/container/docker_seeker.py +101 -0
  90. karta_ng-2.3.0/src/karta_ng/libs/container/kubernetes_seeker.py +139 -0
  91. karta_ng-2.3.0/src/karta_ng/libs/container/qemu_seeker.py +69 -0
  92. karta_ng-2.3.0/src/karta_ng/libs/container/virtualbox_seeker.py +75 -0
  93. karta_ng-2.3.0/src/karta_ng/libs/container/vmware_seeker.py +76 -0
  94. karta_ng-2.3.0/src/karta_ng/libs/crypto/__init__.py +35 -0
  95. karta_ng-2.3.0/src/karta_ng/libs/crypto/aes_seeker.py +102 -0
  96. karta_ng-2.3.0/src/karta_ng/libs/crypto/aria_seeker.py +91 -0
  97. karta_ng-2.3.0/src/karta_ng/libs/crypto/blake_seeker.py +63 -0
  98. karta_ng-2.3.0/src/karta_ng/libs/crypto/blowfish_seeker.py +101 -0
  99. karta_ng-2.3.0/src/karta_ng/libs/crypto/camellia_seeker.py +57 -0
  100. karta_ng-2.3.0/src/karta_ng/libs/crypto/cast5_seeker.py +73 -0
  101. karta_ng-2.3.0/src/karta_ng/libs/crypto/chacha20_seeker.py +146 -0
  102. karta_ng-2.3.0/src/karta_ng/libs/crypto/des_seeker.py +106 -0
  103. karta_ng-2.3.0/src/karta_ng/libs/crypto/ecdsa_seeker.py +67 -0
  104. karta_ng-2.3.0/src/karta_ng/libs/crypto/gost_seeker.py +95 -0
  105. karta_ng-2.3.0/src/karta_ng/libs/crypto/idea_seeker.py +78 -0
  106. karta_ng-2.3.0/src/karta_ng/libs/crypto/md5_seeker.py +102 -0
  107. karta_ng-2.3.0/src/karta_ng/libs/crypto/rc4_seeker.py +98 -0
  108. karta_ng-2.3.0/src/karta_ng/libs/crypto/ripemd_seeker.py +83 -0
  109. karta_ng-2.3.0/src/karta_ng/libs/crypto/rsa_seeker.py +111 -0
  110. karta_ng-2.3.0/src/karta_ng/libs/crypto/salsa20_seeker.py +58 -0
  111. karta_ng-2.3.0/src/karta_ng/libs/crypto/seed_seeker.py +82 -0
  112. karta_ng-2.3.0/src/karta_ng/libs/crypto/serpent_seeker.py +56 -0
  113. karta_ng-2.3.0/src/karta_ng/libs/crypto/sha_seeker.py +167 -0
  114. karta_ng-2.3.0/src/karta_ng/libs/crypto/skipjack_seeker.py +103 -0
  115. karta_ng-2.3.0/src/karta_ng/libs/crypto/sm4_seeker.py +119 -0
  116. karta_ng-2.3.0/src/karta_ng/libs/crypto/tea_seeker.py +67 -0
  117. karta_ng-2.3.0/src/karta_ng/libs/crypto/tiger_seeker.py +80 -0
  118. karta_ng-2.3.0/src/karta_ng/libs/crypto/twofish_seeker.py +101 -0
  119. karta_ng-2.3.0/src/karta_ng/libs/crypto/whirlpool_seeker.py +83 -0
  120. karta_ng-2.3.0/src/karta_ng/libs/cryptoapi.py +163 -0
  121. karta_ng-2.3.0/src/karta_ng/libs/database/__init__.py +21 -0
  122. karta_ng-2.3.0/src/karta_ng/libs/database/berkeleydb_seeker.py +74 -0
  123. karta_ng-2.3.0/src/karta_ng/libs/database/leveldb_seeker.py +72 -0
  124. karta_ng-2.3.0/src/karta_ng/libs/database/lmdb_seeker.py +70 -0
  125. karta_ng-2.3.0/src/karta_ng/libs/database/mongodb_seeker.py +73 -0
  126. karta_ng-2.3.0/src/karta_ng/libs/database/mysql_seeker.py +154 -0
  127. karta_ng-2.3.0/src/karta_ng/libs/database/postgresql_seeker.py +69 -0
  128. karta_ng-2.3.0/src/karta_ng/libs/database/redis_seeker.py +75 -0
  129. karta_ng-2.3.0/src/karta_ng/libs/database/rocksdb_seeker.py +71 -0
  130. karta_ng-2.3.0/src/karta_ng/libs/engine/chakracore_seeker.py +134 -0
  131. karta_ng-2.3.0/src/karta_ng/libs/engine/unity_seeker.py +99 -0
  132. karta_ng-2.3.0/src/karta_ng/libs/engine/unreal_seeker.py +107 -0
  133. karta_ng-2.3.0/src/karta_ng/libs/evasion/antidebug_seeker.py +204 -0
  134. karta_ng-2.3.0/src/karta_ng/libs/evasion/antivm_seeker.py +220 -0
  135. karta_ng-2.3.0/src/karta_ng/libs/evasion/sandbox_evasion_seeker.py +241 -0
  136. karta_ng-2.3.0/src/karta_ng/libs/framework/boost_seeker.py +112 -0
  137. karta_ng-2.3.0/src/karta_ng/libs/framework/dotnet_seeker.py +124 -0
  138. karta_ng-2.3.0/src/karta_ng/libs/framework/gtk_seeker.py +105 -0
  139. karta_ng-2.3.0/src/karta_ng/libs/framework/qt_seeker.py +102 -0
  140. karta_ng-2.3.0/src/karta_ng/libs/gameengine/__init__.py +40 -0
  141. karta_ng-2.3.0/src/karta_ng/libs/gameengine/cocos2d_seeker.py +70 -0
  142. karta_ng-2.3.0/src/karta_ng/libs/gameengine/cryengine_seeker.py +70 -0
  143. karta_ng-2.3.0/src/karta_ng/libs/gameengine/godot_seeker.py +71 -0
  144. karta_ng-2.3.0/src/karta_ng/libs/gameengine/pygame_seeker.py +71 -0
  145. karta_ng-2.3.0/src/karta_ng/libs/gameengine/unity_seeker.py +82 -0
  146. karta_ng-2.3.0/src/karta_ng/libs/gameengine/unreal_seeker.py +81 -0
  147. karta_ng-2.3.0/src/karta_ng/libs/graphics/__init__.py +40 -0
  148. karta_ng-2.3.0/src/karta_ng/libs/graphics/cairo_seeker.py +70 -0
  149. karta_ng-2.3.0/src/karta_ng/libs/graphics/directx_seeker.py +105 -0
  150. karta_ng-2.3.0/src/karta_ng/libs/graphics/metal_seeker.py +62 -0
  151. karta_ng-2.3.0/src/karta_ng/libs/graphics/opengl_seeker.py +124 -0
  152. karta_ng-2.3.0/src/karta_ng/libs/graphics/skia_seeker.py +62 -0
  153. karta_ng-2.3.0/src/karta_ng/libs/graphics/vulkan_seeker.py +80 -0
  154. karta_ng-2.3.0/src/karta_ng/libs/gsoap.py +64 -0
  155. karta_ng-2.3.0/src/karta_ng/libs/gui/__init__.py +40 -0
  156. karta_ng-2.3.0/src/karta_ng/libs/gui/gtk_seeker.py +77 -0
  157. karta_ng-2.3.0/src/karta_ng/libs/gui/imgui_seeker.py +78 -0
  158. karta_ng-2.3.0/src/karta_ng/libs/gui/mfc_seeker.py +80 -0
  159. karta_ng-2.3.0/src/karta_ng/libs/gui/qt_seeker.py +81 -0
  160. karta_ng-2.3.0/src/karta_ng/libs/gui/tkinter_seeker.py +77 -0
  161. karta_ng-2.3.0/src/karta_ng/libs/gui/wxwidgets_seeker.py +77 -0
  162. karta_ng-2.3.0/src/karta_ng/libs/icu.py +70 -0
  163. karta_ng-2.3.0/src/karta_ng/libs/image/avif_seeker.py +89 -0
  164. karta_ng-2.3.0/src/karta_ng/libs/image/heif_seeker.py +77 -0
  165. karta_ng-2.3.0/src/karta_ng/libs/image/jpeg2000_seeker.py +97 -0
  166. karta_ng-2.3.0/src/karta_ng/libs/iot/__init__.py +1 -0
  167. karta_ng-2.3.0/src/karta_ng/libs/iot/arm_shellcode_seeker.py +334 -0
  168. karta_ng-2.3.0/src/karta_ng/libs/iot/busybox_exploit_seeker.py +317 -0
  169. karta_ng-2.3.0/src/karta_ng/libs/iot/coap_seeker.py +78 -0
  170. karta_ng-2.3.0/src/karta_ng/libs/iot/freertos_seeker.py +79 -0
  171. karta_ng-2.3.0/src/karta_ng/libs/iot/lwip_seeker.py +79 -0
  172. karta_ng-2.3.0/src/karta_ng/libs/iot/mirai_seeker.py +260 -0
  173. karta_ng-2.3.0/src/karta_ng/libs/iot/modbus_seeker.py +79 -0
  174. karta_ng-2.3.0/src/karta_ng/libs/iot/mqtt_seeker.py +79 -0
  175. karta_ng-2.3.0/src/karta_ng/libs/iot/opcua_seeker.py +79 -0
  176. karta_ng-2.3.0/src/karta_ng/libs/jansson.py +149 -0
  177. karta_ng-2.3.0/src/karta_ng/libs/lib_factory.py +26 -0
  178. karta_ng-2.3.0/src/karta_ng/libs/lib_template.py +98 -0
  179. karta_ng-2.3.0/src/karta_ng/libs/libcurl.py +134 -0
  180. karta_ng-2.3.0/src/karta_ng/libs/libjpeg.py +70 -0
  181. karta_ng-2.3.0/src/karta_ng/libs/libjpeg_turbo.py +61 -0
  182. karta_ng-2.3.0/src/karta_ng/libs/libpng.py +96 -0
  183. karta_ng-2.3.0/src/karta_ng/libs/libtiff.py +71 -0
  184. karta_ng-2.3.0/src/karta_ng/libs/libvpx.py +67 -0
  185. karta_ng-2.3.0/src/karta_ng/libs/libxml2.py +69 -0
  186. karta_ng-2.3.0/src/karta_ng/libs/linux_malware/__init__.py +1 -0
  187. karta_ng-2.3.0/src/karta_ng/libs/linux_malware/gafgyt_seeker.py +457 -0
  188. karta_ng-2.3.0/src/karta_ng/libs/linux_malware/kaiten_seeker.py +456 -0
  189. karta_ng-2.3.0/src/karta_ng/libs/linux_malware/tsunami_seeker.py +394 -0
  190. karta_ng-2.3.0/src/karta_ng/libs/linux_malware/xorddos_seeker.py +357 -0
  191. karta_ng-2.3.0/src/karta_ng/libs/logging/__init__.py +40 -0
  192. karta_ng-2.3.0/src/karta_ng/libs/logging/elasticsearch_seeker.py +69 -0
  193. karta_ng-2.3.0/src/karta_ng/libs/logging/grafana_seeker.py +64 -0
  194. karta_ng-2.3.0/src/karta_ng/libs/logging/log4j_seeker.py +68 -0
  195. karta_ng-2.3.0/src/karta_ng/libs/logging/prometheus_seeker.py +68 -0
  196. karta_ng-2.3.0/src/karta_ng/libs/logging/spdlog_seeker.py +67 -0
  197. karta_ng-2.3.0/src/karta_ng/libs/logging/syslog_seeker.py +61 -0
  198. karta_ng-2.3.0/src/karta_ng/libs/mactelnet.py +66 -0
  199. karta_ng-2.3.0/src/karta_ng/libs/malware/packer_seeker.py +128 -0
  200. karta_ng-2.3.0/src/karta_ng/libs/malware/ransomware_seeker.py +148 -0
  201. karta_ng-2.3.0/src/karta_ng/libs/malware/rat_seeker.py +140 -0
  202. karta_ng-2.3.0/src/karta_ng/libs/math/__init__.py +40 -0
  203. karta_ng-2.3.0/src/karta_ng/libs/math/blas_seeker.py +71 -0
  204. karta_ng-2.3.0/src/karta_ng/libs/math/fftw_seeker.py +72 -0
  205. karta_ng-2.3.0/src/karta_ng/libs/math/gmp_seeker.py +72 -0
  206. karta_ng-2.3.0/src/karta_ng/libs/math/gsl_seeker.py +74 -0
  207. karta_ng-2.3.0/src/karta_ng/libs/math/lapack_seeker.py +72 -0
  208. karta_ng-2.3.0/src/karta_ng/libs/math/mpfr_seeker.py +70 -0
  209. karta_ng-2.3.0/src/karta_ng/libs/mdnsresponder.py +53 -0
  210. karta_ng-2.3.0/src/karta_ng/libs/ml/__init__.py +40 -0
  211. karta_ng-2.3.0/src/karta_ng/libs/ml/caffe_seeker.py +70 -0
  212. karta_ng-2.3.0/src/karta_ng/libs/ml/mxnet_seeker.py +70 -0
  213. karta_ng-2.3.0/src/karta_ng/libs/ml/onnx_seeker.py +76 -0
  214. karta_ng-2.3.0/src/karta_ng/libs/ml/opencv_seeker.py +79 -0
  215. karta_ng-2.3.0/src/karta_ng/libs/ml/pytorch_seeker.py +192 -0
  216. karta_ng-2.3.0/src/karta_ng/libs/ml/tensorflow_seeker.py +163 -0
  217. karta_ng-2.3.0/src/karta_ng/libs/multimedia/__init__.py +17 -0
  218. karta_ng-2.3.0/src/karta_ng/libs/multimedia/ffmpeg_seeker.py +187 -0
  219. karta_ng-2.3.0/src/karta_ng/libs/multimedia/mp3lame_seeker.py +15 -0
  220. karta_ng-2.3.0/src/karta_ng/libs/multimedia/opus_seeker.py +15 -0
  221. karta_ng-2.3.0/src/karta_ng/libs/multimedia/vorbis_seeker.py +15 -0
  222. karta_ng-2.3.0/src/karta_ng/libs/multimedia/webp_seeker.py +0 -0
  223. karta_ng-2.3.0/src/karta_ng/libs/multimedia/x264_seeker.py +15 -0
  224. karta_ng-2.3.0/src/karta_ng/libs/netsnmp.py +68 -0
  225. karta_ng-2.3.0/src/karta_ng/libs/network/__init__.py +21 -0
  226. karta_ng-2.3.0/src/karta_ng/libs/network/amqp_seeker.py +109 -0
  227. karta_ng-2.3.0/src/karta_ng/libs/network/dpdk_seeker.py +97 -0
  228. karta_ng-2.3.0/src/karta_ng/libs/network/gnutls_seeker.py +16 -0
  229. karta_ng-2.3.0/src/karta_ng/libs/network/libevent_seeker.py +16 -0
  230. karta_ng-2.3.0/src/karta_ng/libs/network/libnet_seeker.py +102 -0
  231. karta_ng-2.3.0/src/karta_ng/libs/network/libnids_seeker.py +98 -0
  232. karta_ng-2.3.0/src/karta_ng/libs/network/libpcap_seeker.py +152 -0
  233. karta_ng-2.3.0/src/karta_ng/libs/network/libssh_seeker.py +16 -0
  234. karta_ng-2.3.0/src/karta_ng/libs/network/libuv_seeker.py +154 -0
  235. karta_ng-2.3.0/src/karta_ng/libs/network/mbedtls_seeker.py +156 -0
  236. karta_ng-2.3.0/src/karta_ng/libs/network/nghttp2_seeker.py +16 -0
  237. karta_ng-2.3.0/src/karta_ng/libs/network/pfring_seeker.py +105 -0
  238. karta_ng-2.3.0/src/karta_ng/libs/network/thrift_seeker.py +114 -0
  239. karta_ng-2.3.0/src/karta_ng/libs/network/wininet_seeker.py +113 -0
  240. karta_ng-2.3.0/src/karta_ng/libs/network/wolfssl_seeker.py +155 -0
  241. karta_ng-2.3.0/src/karta_ng/libs/openssh.py +68 -0
  242. karta_ng-2.3.0/src/karta_ng/libs/openssl.py +102 -0
  243. karta_ng-2.3.0/src/karta_ng/libs/parsing/__init__.py +40 -0
  244. karta_ng-2.3.0/src/karta_ng/libs/parsing/flatbuffers_seeker.py +65 -0
  245. karta_ng-2.3.0/src/karta_ng/libs/parsing/msgpack_seeker.py +67 -0
  246. karta_ng-2.3.0/src/karta_ng/libs/parsing/protobuf_seeker.py +77 -0
  247. karta_ng-2.3.0/src/karta_ng/libs/parsing/rapidjson_seeker.py +69 -0
  248. karta_ng-2.3.0/src/karta_ng/libs/parsing/toml_seeker.py +66 -0
  249. karta_ng-2.3.0/src/karta_ng/libs/parsing/yaml_seeker.py +68 -0
  250. karta_ng-2.3.0/src/karta_ng/libs/physics/__init__.py +28 -0
  251. karta_ng-2.3.0/src/karta_ng/libs/physics/box2d_seeker.py +68 -0
  252. karta_ng-2.3.0/src/karta_ng/libs/physics/bullet_seeker.py +69 -0
  253. karta_ng-2.3.0/src/karta_ng/libs/physics/havok_seeker.py +68 -0
  254. karta_ng-2.3.0/src/karta_ng/libs/physics/physx_seeker.py +70 -0
  255. karta_ng-2.3.0/src/karta_ng/libs/protection/themida_seeker.py +126 -0
  256. karta_ng-2.3.0/src/karta_ng/libs/protection/vmprotect_seeker.py +113 -0
  257. karta_ng-2.3.0/src/karta_ng/libs/protocol/boringssl_seeker.py +97 -0
  258. karta_ng-2.3.0/src/karta_ng/libs/protocol/coap_seeker.py +172 -0
  259. karta_ng-2.3.0/src/karta_ng/libs/protocol/grpc_seeker.py +101 -0
  260. karta_ng-2.3.0/src/karta_ng/libs/protocol/mbedtls_seeker.py +97 -0
  261. karta_ng-2.3.0/src/karta_ng/libs/protocol/mqtt_seeker.py +145 -0
  262. karta_ng-2.3.0/src/karta_ng/libs/protocol/protobuf_seeker.py +101 -0
  263. karta_ng-2.3.0/src/karta_ng/libs/rootkit/dkom_seeker.py +258 -0
  264. karta_ng-2.3.0/src/karta_ng/libs/rootkit/kernel_module_seeker.py +293 -0
  265. karta_ng-2.3.0/src/karta_ng/libs/rootkit/ssdt_hook_seeker.py +254 -0
  266. karta_ng-2.3.0/src/karta_ng/libs/runtime/__init__.py +40 -0
  267. karta_ng-2.3.0/src/karta_ng/libs/runtime/dotnet_seeker.py +78 -0
  268. karta_ng-2.3.0/src/karta_ng/libs/runtime/golang_seeker.py +73 -0
  269. karta_ng-2.3.0/src/karta_ng/libs/runtime/java_seeker.py +82 -0
  270. karta_ng-2.3.0/src/karta_ng/libs/runtime/javascriptcore_seeker.py +116 -0
  271. karta_ng-2.3.0/src/karta_ng/libs/runtime/lua_seeker.py +115 -0
  272. karta_ng-2.3.0/src/karta_ng/libs/runtime/nodejs_seeker.py +78 -0
  273. karta_ng-2.3.0/src/karta_ng/libs/runtime/perl_seeker.py +124 -0
  274. karta_ng-2.3.0/src/karta_ng/libs/runtime/php_seeker.py +126 -0
  275. karta_ng-2.3.0/src/karta_ng/libs/runtime/python_seeker.py +79 -0
  276. karta_ng-2.3.0/src/karta_ng/libs/runtime/ruby_seeker.py +121 -0
  277. karta_ng-2.3.0/src/karta_ng/libs/runtime/rust_seeker.py +79 -0
  278. karta_ng-2.3.0/src/karta_ng/libs/runtime/spidermonkey_seeker.py +113 -0
  279. karta_ng-2.3.0/src/karta_ng/libs/runtime/v8_seeker.py +110 -0
  280. karta_ng-2.3.0/src/karta_ng/libs/scientific/blas_seeker.py +111 -0
  281. karta_ng-2.3.0/src/karta_ng/libs/scientific/fftw_seeker.py +99 -0
  282. karta_ng-2.3.0/src/karta_ng/libs/scientific/gmp_seeker.py +81 -0
  283. karta_ng-2.3.0/src/karta_ng/libs/scientific/gsl_seeker.py +93 -0
  284. karta_ng-2.3.0/src/karta_ng/libs/scientific/mpfr_seeker.py +85 -0
  285. karta_ng-2.3.0/src/karta_ng/libs/scientific/numpy_seeker.py +0 -0
  286. karta_ng-2.3.0/src/karta_ng/libs/security/__init__.py +40 -0
  287. karta_ng-2.3.0/src/karta_ng/libs/security/jwt_seeker.py +61 -0
  288. karta_ng-2.3.0/src/karta_ng/libs/security/kerberos_seeker.py +70 -0
  289. karta_ng-2.3.0/src/karta_ng/libs/security/ldap_seeker.py +71 -0
  290. karta_ng-2.3.0/src/karta_ng/libs/security/oauth_seeker.py +65 -0
  291. karta_ng-2.3.0/src/karta_ng/libs/security/pam_seeker.py +70 -0
  292. karta_ng-2.3.0/src/karta_ng/libs/security/saml_seeker.py +65 -0
  293. karta_ng-2.3.0/src/karta_ng/libs/sqlite3.py +142 -0
  294. karta_ng-2.3.0/src/karta_ng/libs/treck.py +63 -0
  295. karta_ng-2.3.0/src/karta_ng/libs/utility/asn1_seeker.py +120 -0
  296. karta_ng-2.3.0/src/karta_ng/libs/utility/base64_seeker.py +90 -0
  297. karta_ng-2.3.0/src/karta_ng/libs/utility/pkcs_seeker.py +127 -0
  298. karta_ng-2.3.0/src/karta_ng/libs/web/__init__.py +40 -0
  299. karta_ng-2.3.0/src/karta_ng/libs/web/angular_seeker.py +68 -0
  300. karta_ng-2.3.0/src/karta_ng/libs/web/django_seeker.py +68 -0
  301. karta_ng-2.3.0/src/karta_ng/libs/web/express_seeker.py +68 -0
  302. karta_ng-2.3.0/src/karta_ng/libs/web/flask_seeker.py +66 -0
  303. karta_ng-2.3.0/src/karta_ng/libs/web/react_seeker.py +68 -0
  304. karta_ng-2.3.0/src/karta_ng/libs/web/vue_seeker.py +67 -0
  305. karta_ng-2.3.0/src/karta_ng/libs/winhttp.py +124 -0
  306. karta_ng-2.3.0/src/karta_ng/libs/zlib.py +92 -0
  307. karta_ng-2.3.0/src/karta_ng/matching_engine.py +1497 -0
  308. karta_ng-2.3.0/src/karta_ng/plugins/__init__.py +1 -0
  309. karta_ng-2.3.0/src/karta_ng/plugins/ida_plugin.py +61 -0
  310. karta_ng-2.3.0/src/karta_ng/speedups/__init__.py +11 -0
  311. karta_ng-2.3.0/src/karta_ng/speedups/bootstrap.py +29 -0
  312. karta_ng-2.3.0/src/karta_ng/speedups/install.py +45 -0
  313. karta_ng-2.3.0/src/karta_ng/thumbs_up/__init__.py +5 -0
  314. karta_ng-2.3.0/src/karta_ng/thumbs_up/analyzer_utils.py +825 -0
  315. karta_ng-2.3.0/src/karta_ng/thumbs_up/analyzers/__init__.py +15 -0
  316. karta_ng-2.3.0/src/karta_ng/thumbs_up/analyzers/analyzer.py +366 -0
  317. karta_ng-2.3.0/src/karta_ng/thumbs_up/analyzers/analyzer_factory.py +49 -0
  318. karta_ng-2.3.0/src/karta_ng/thumbs_up/analyzers/arm.py +258 -0
  319. karta_ng-2.3.0/src/karta_ng/thumbs_up/analyzers/intel.py +149 -0
  320. karta_ng-2.3.0/src/karta_ng/thumbs_up/analyzers/mips.py +253 -0
  321. karta_ng-2.3.0/src/karta_ng/thumbs_up/thumbs_up_ELF.py +203 -0
  322. karta_ng-2.3.0/src/karta_ng/thumbs_up/thumbs_up_firmware.py +246 -0
  323. karta_ng-2.3.0/src/karta_ng/thumbs_up/utils/__init__.py +17 -0
  324. karta_ng-2.3.0/src/karta_ng/thumbs_up/utils/code_metric.py +163 -0
  325. karta_ng-2.3.0/src/karta_ng/thumbs_up/utils/code_regions.py +170 -0
  326. karta_ng-2.3.0/src/karta_ng/thumbs_up/utils/fptr.py +427 -0
  327. karta_ng-2.3.0/src/karta_ng/thumbs_up/utils/function.py +414 -0
  328. karta_ng-2.3.0/src/karta_ng/thumbs_up/utils/local_constants.py +159 -0
  329. karta_ng-2.3.0/src/karta_ng/thumbs_up/utils/pattern_observer.py +252 -0
  330. karta_ng-2.3.0/src/karta_ng/thumbs_up/utils/strings.py +273 -0
  331. karta_ng-2.3.0/src/karta_ng/thumbs_up/utils/switch_table.py +319 -0
  332. karta_ng-2.3.0/src/karta_ng.egg-info/PKG-INFO +23 -0
  333. karta_ng-2.3.0/src/karta_ng.egg-info/SOURCES.txt +335 -0
  334. karta_ng-2.3.0/src/karta_ng.egg-info/dependency_links.txt +1 -0
  335. karta_ng-2.3.0/src/karta_ng.egg-info/entry_points.txt +3 -0
  336. karta_ng-2.3.0/src/karta_ng.egg-info/requires.txt +19 -0
  337. karta_ng-2.3.0/src/karta_ng.egg-info/top_level.txt +1 -0
@@ -0,0 +1,9 @@
1
+ # Cython speedups must ship in sdists so a source install can build them.
2
+ recursive-include src/karta_ng/speedups *.pyx
3
+ recursive-include src/karta_ng/speedups *.pxd
4
+
5
+ # Never ship build output or VCS metadata.
6
+ prune build
7
+ prune dist
8
+ prune *.egg-info
9
+ global-exclude *.o *.a *.so *.dylib *.pyc __pycache__
@@ -0,0 +1,23 @@
1
+ Metadata-Version: 2.4
2
+ Name: karta-ng
3
+ Version: 2.3.0
4
+ Summary: karta-ng (Karta next-gen): identify and match open-source libraries inside binaries. Structural function fingerprinting and location-driven matching for malware and firmware analysis.
5
+ Author-email: Mahmoud Abdelkader <mabdelkader@gmail.com>
6
+ Requires-Python: >=3.10
7
+ Description-Content-Type: text/markdown
8
+ Requires-Dist: elementals
9
+ Requires-Dist: click
10
+ Requires-Dist: scikit-learn>=1.5.0
11
+ Provides-Extra: speedups
12
+ Requires-Dist: Cython>=3.0.0; extra == "speedups"
13
+ Provides-Extra: domain
14
+ Requires-Dist: ida-domain>=0.5.1; extra == "domain"
15
+ Provides-Extra: dev
16
+ Requires-Dist: setuptools>=77.0.1; extra == "dev"
17
+ Requires-Dist: libcst>=1.0.0; extra == "dev"
18
+ Requires-Dist: import-linter>=2.0; extra == "dev"
19
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
20
+ Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
21
+ Requires-Dist: coverage[toml]>=7.0.0; extra == "dev"
22
+ Requires-Dist: ruff>=0.12; extra == "dev"
23
+ Requires-Dist: pydocstyle; extra == "dev"
File without changes
@@ -0,0 +1,76 @@
1
+ [build-system]
2
+ requires = ["setuptools>=77.0.1", "wheel", "Cython>=3.0.0"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "karta-ng"
7
+ requires-python = ">= 3.10"
8
+ dynamic = ["version"]
9
+ authors = [
10
+ { name = "Mahmoud Abdelkader", email = "mabdelkader@gmail.com" },
11
+ ]
12
+ description = "karta-ng (Karta next-gen): identify and match open-source libraries inside binaries. Structural function fingerprinting and location-driven matching for malware and firmware analysis."
13
+ readme = "README.md"
14
+ dependencies = [
15
+ "elementals",
16
+ "click",
17
+ "scikit-learn>=1.5.0",
18
+ ]
19
+
20
+ [project.optional-dependencies]
21
+ speedups = ["Cython>=3.0.0"]
22
+ domain = ["ida-domain>=0.5.1"] # IDA Domain API (requires IDA 9.1+/idapro)
23
+ dev = [
24
+ "setuptools>=77.0.1",
25
+ "libcst>=1.0.0",
26
+ "import-linter>=2.0",
27
+ "pytest>=7.0.0",
28
+ "pytest-cov>=4.0.0",
29
+ "coverage[toml]>=7.0.0",
30
+ "ruff>=0.12",
31
+ "pydocstyle",
32
+ ]
33
+
34
+ [project.scripts]
35
+ install-speedups = "karta_ng.speedups.install:main"
36
+ karta-analyze-src = "karta_ng.karta_analyze_src:main"
37
+
38
+ [tool.setuptools]
39
+ package-dir = { "" = "src" }
40
+
41
+ [tool.setuptools.dynamic]
42
+ version = { attr = "karta_ng.__version__" }
43
+
44
+ [tool.setuptools.packages.find]
45
+ where = ["src"]
46
+
47
+ # pytest configuration
48
+ [tool.pytest.ini_options]
49
+ testpaths = ["tests"]
50
+ python_files = ["test_*.py"]
51
+ python_classes = ["Test*"]
52
+ python_functions = ["test_*"]
53
+ addopts = ["-m", "not requires_ida and not slow"]
54
+ markers = [
55
+ "requires_ida: Tests that require IDA Pro to run",
56
+ "runtime: IDA runtime invariant/API/stability tests",
57
+ "e2e: End-to-end pipeline tests with golden output comparison",
58
+ "slow: Slow tests (>10s) - typically long-running matching",
59
+ "integration: mark test as integration test",
60
+ ]
61
+
62
+ [tool.coverage.run]
63
+ source = ["src/karta_ng"]
64
+ omit = [
65
+ "*/tests/*",
66
+ "*/test_*",
67
+ "*/__pycache__/*",
68
+ # Seekers and the ML classifier are fixture-driven: without a real
69
+ # library corpus they are only imported, not exercised. Exclude them
70
+ # from the coverage gate so it measures the testable core instead of
71
+ # being dragged down by an untestable surface.
72
+ "src/karta_ng/libs/*",
73
+ "src/karta_ng/thumbs_up/*",
74
+ ]
75
+
76
+ [tool.coverage.report]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,74 @@
1
+ """Optional Cython extension builder for karta-ng.
2
+
3
+ By default, karta-ng installs as a pure Python package.
4
+ To build with Cython speedups:
5
+
6
+ KARTA_NG_BUILD_SPEEDUPS=1 pip install -e .[speedups]
7
+
8
+ This setup.py only handles ext_modules; all other config is in pyproject.toml.
9
+ Any ``.pyx`` files placed under ``src/karta_ng/speedups/`` are compiled when the
10
+ env var is set; otherwise the pure-Python implementations are used.
11
+ """
12
+
13
+ import os
14
+ import pathlib
15
+
16
+ from setuptools import setup
17
+
18
+ BUILD_SPEEDUPS = os.environ.get("KARTA_NG_BUILD_SPEEDUPS", "0") == "1"
19
+ DEBUG = os.environ.get("DEBUG") == "1"
20
+
21
+
22
+ def get_ext_modules():
23
+ """Build Cython extensions if KARTA_NG_BUILD_SPEEDUPS=1, else return []."""
24
+ want_speedups = os.environ.get("KARTA_NG_BUILD_SPEEDUPS", "0") == "1"
25
+ if not want_speedups:
26
+ return []
27
+
28
+ try:
29
+ from Cython.Build import cythonize
30
+ from setuptools import Extension
31
+ except ImportError:
32
+ raise ImportError(
33
+ "Cython is required to build speedups. "
34
+ "Install with: pip install 'karta-ng[speedups]'"
35
+ )
36
+
37
+ speedups_root = pathlib.Path(__file__).parent / "src" / "karta_ng" / "speedups"
38
+ pyx_files = sorted(str(p) for p in speedups_root.rglob("*.pyx"))
39
+ if not pyx_files:
40
+ print("[speedups] no .pyx files found under src/karta_ng/speedups; nothing to build")
41
+ return []
42
+
43
+ macros = []
44
+ if DEBUG:
45
+ macros.extend([("CYTHON_TRACE", "1"), ("CYTHON_CLINE_IN_TRACEBACK", "1")])
46
+
47
+ return cythonize(
48
+ [
49
+ Extension(
50
+ pathlib.Path(p).with_suffix("").as_posix().replace("/", "."),
51
+ [p],
52
+ language="c++",
53
+ define_macros=macros,
54
+ extra_compile_args=(
55
+ ["-g", "-O0"] if DEBUG else []
56
+ ),
57
+ )
58
+ for p in pyx_files
59
+ ],
60
+ compiler_directives={
61
+ "language_level": "3",
62
+ "binding": True,
63
+ "embedsignature": True,
64
+ "boundscheck": False,
65
+ "wraparound": False,
66
+ "profile": DEBUG,
67
+ "linetrace": DEBUG,
68
+ },
69
+ annotate=DEBUG,
70
+ )
71
+
72
+
73
+ # Minimal setup() - everything else comes from pyproject.toml
74
+ setup(ext_modules=get_ext_modules())
@@ -0,0 +1,7 @@
1
+ """karta-ng (Karta next-gen).
2
+
3
+ Identify and match open-source libraries inside binaries using structural
4
+ function fingerprinting and location-driven matching.
5
+ """
6
+
7
+ __version__ = "2.3.0"
@@ -0,0 +1,63 @@
1
+ from karta_ng.config.utils import (
2
+ get_disas,
3
+ set_windows_mode,
4
+ functions_to_file,
5
+ LIBRARY_NAME,
6
+ construct_init_log_path,
7
+ init_utils,
8
+ register_contexts,
9
+ construct_log_path,
10
+ )
11
+ from karta_ng.disassembler.factory import create_disassembler_handler
12
+ from karta_ng.function_context import SourceContext, BinaryContext, IslandContext
13
+ from elementals import Logger
14
+ import logging
15
+ import traceback
16
+
17
+
18
+ def analyze_file():
19
+ """Analyzes all of the (source) functions for a single compiled file."""
20
+ disas = get_disas()
21
+ logger.info("Started the Script")
22
+ contexts = []
23
+ # check for windows binary
24
+ if disas.input_file().endswith(".obj"):
25
+ logger.debug("Activating Windows mode")
26
+ set_windows_mode()
27
+ # build the list of exported (non-static) functions
28
+ exported = disas.exports()
29
+ for segment_idx in range(disas.num_segments()):
30
+ # Some executables use "_text" and some use ".text", so just look for "text"
31
+ # in section name. Also look for other sections marked executable.
32
+ if "text" not in disas.segment_name(segment_idx) and "X" not in disas.segment_permissions(segment_idx):
33
+ continue
34
+ for function_ea in disas.segment_functions(segment_idx):
35
+ src_ctx = disas.analyze_function(function_ea, True)
36
+ # check if static or not
37
+ if src_ctx.name not in exported:
38
+ src_ctx.mark_static()
39
+ contexts.append(src_ctx)
40
+ functions_to_file(disas.input_file(), contexts)
41
+ logger.info("Finished Successfully")
42
+
43
+
44
+ # Create a basic logger for the init phase
45
+ init_logger = Logger(LIBRARY_NAME)
46
+ init_logger.linkHandler(logging.FileHandler(construct_init_log_path(), "w"))
47
+ disas = create_disassembler_handler(init_logger)
48
+ # In case of a dependency issue, disas will be None
49
+ if disas is None:
50
+ exit()
51
+ # Always init the utils before we start (now with the real logger too)
52
+ logger = Logger(LIBRARY_NAME, use_stdout=False)
53
+ init_utils(logger, disas)
54
+ # Register our contexts
55
+ register_contexts(SourceContext, BinaryContext, IslandContext)
56
+ # Start to analyze the file
57
+ try:
58
+ logger.linkHandler(logging.FileHandler(construct_log_path(), "w"))
59
+ analyze_file()
60
+ except Exception:
61
+ logger.error(traceback.format_exc())
62
+ # Exit the disassembler
63
+ get_disas().exit()
@@ -0,0 +1,52 @@
1
+ def get_archive_files(ar_path):
2
+ """Return an ordered list of the files within the .ar archive.
3
+
4
+ Args:
5
+ ar_path (str): path to the compiled *.ar file
6
+
7
+ Return Value:
8
+ Ordered list of file names
9
+ """
10
+ import shutil
11
+ ar_bin = shutil.which("ar")
12
+ names = []
13
+
14
+ if ar_bin:
15
+ import subprocess
16
+ proc = subprocess.run([ar_bin, "t", ar_path], capture_output=True, text=True)
17
+ if proc.returncode == 0:
18
+ for line in proc.stdout.split("\n"):
19
+ if line:
20
+ names.append(line)
21
+
22
+ if not names:
23
+ ar_fd = open(ar_path, "rb")
24
+ is_windows = ar_path.endswith(".lib")
25
+
26
+ # check the signature
27
+ if ar_fd.read(8) != b"!<arch>\n":
28
+ raise ValueError("Invalid archive signature")
29
+
30
+ # split the content to parts
31
+ ar_content = ar_fd.read()
32
+ for ar_part in ar_content.split(b"\x60\x0A")[:-1]:
33
+ # .ar file format (unix) seems simpler
34
+ if not is_windows:
35
+ # sanity check
36
+ if len(ar_part) < 58:
37
+ continue
38
+ # now read the metadata of the record
39
+ name = ar_part[-58:].split(b'/')[0]
40
+ if not name.endswith(b".o"):
41
+ continue
42
+ # .lib file format is more complex
43
+ else:
44
+ if ar_part.find(b".obj") == -1:
45
+ continue
46
+ name = ar_part.split(b".obj")[-2].split(b"\x00")[-1].split(b"\\")[-1] + b".obj"
47
+ name = name.strip()
48
+ # append the new record
49
+ if name not in names and len(name) > 0:
50
+ names.append(name.decode("utf-8"))
51
+ ar_fd.close()
52
+ return names
@@ -0,0 +1,318 @@
1
+ from .utils import (
2
+ DISASSEMBLER_PATH,
3
+ GUI_CMD_IMPORT_MATCHED,
4
+ GUI_CMD_IMPORT_SELECTED,
5
+ GUI_COLOR_DARK_GREEN,
6
+ GUI_COLOR_DARK_RED,
7
+ GUI_COLOR_GRAY,
8
+ GUI_COLOR_GREEN,
9
+ GUI_COLOR_RED,
10
+ GUI_MATCH_REASONS,
11
+ JSON_TAG_ANCHORS,
12
+ JSON_TAG_FILES,
13
+ JSON_TAG_LIBRARY,
14
+ JSON_TAG_MANUAL_ANCHORS,
15
+ JSON_TAG_MANUAL_VERSIONS,
16
+ KNOWLEDGE_FILE_SUFFIX,
17
+ KartaException,
18
+ LIBRARY_NAME,
19
+ LOG_FILE_SUFFIX,
20
+ REASON_AGENT,
21
+ REASON_ANCHOR,
22
+ REASON_CALL_ORDER,
23
+ REASON_COLLISION,
24
+ REASON_DISABLED,
25
+ REASON_FILE_HINT,
26
+ REASON_FILE_SINGLETON,
27
+ REASON_LIBRARY_UNUSED,
28
+ REASON_MANUAL_ANCHOR,
29
+ REASON_NEIGHBOUR,
30
+ REASON_SCORE,
31
+ REASON_SINGLE_CALL,
32
+ REASON_SINGLE_XREF,
33
+ REASON_STATIC_UNUSED,
34
+ REASON_STRUCTURAL_SIGNATURE,
35
+ REASON_SWALLOW,
36
+ REASON_TRAPPED_COUPLE,
37
+ SCRIPT_PATH,
38
+ STATE_FILE_SUFFIX,
39
+ accumulated_knowledge_path,
40
+ are_neighbours_safe,
41
+ bin_func_class,
42
+ bin_instr_count,
43
+ binary_context,
44
+ construct_config_path,
45
+ construct_init_log_path,
46
+ construct_log_path,
47
+ count_set_bits,
48
+ disas_layer,
49
+ functions_to_file,
50
+ get_contexts_stats,
51
+ get_disas,
52
+ get_disas_path,
53
+ get_neighbour_score,
54
+ get_source_functions,
55
+ global_logger,
56
+ init_utils,
57
+ island_context,
58
+ island_func_class,
59
+ is_matching,
60
+ isWindows,
61
+ libraryName,
62
+ load_knowledge,
63
+ matched_library_name,
64
+ matching_mode,
65
+ measure_bits_entropy,
66
+ measure_bits_variance,
67
+ num_instr_samples,
68
+ num_neighbours_matched,
69
+ num_neighbours_mismatched,
70
+ parse_file_stats,
71
+ rank_const,
72
+ record_instr_ratio,
73
+ record_neighbour_match,
74
+ register_contexts,
75
+ reset_ratio,
76
+ reset_scoring,
77
+ set_disassembler_path,
78
+ set_matching_mode,
79
+ set_windows_mode,
80
+ source_context,
81
+ src_file_mappings,
82
+ src_func_class,
83
+ src_functions_ctx,
84
+ src_functions_list,
85
+ src_instr_count,
86
+ src_seen_consts,
87
+ src_seen_strings,
88
+ store_knowledge,
89
+ windows_config,
90
+ )
91
+
92
+ from .score_config import (
93
+ AGENT_BOOST_SCORE,
94
+ ARTIFACT_MATCH_SCORE,
95
+ BLOCK_MATCH_SCORE,
96
+ BLOCK_MISMATCH_SCORE,
97
+ CALL_COUNT_SCORE,
98
+ CONST_BOOST_BIT_FLAG,
99
+ CONST_BOOST_SMALL_FUNCS,
100
+ CONST_BOOST_SPECIAL,
101
+ CONST_SPECIAL_VALUES,
102
+ EXISTENCE_BOOST_SCORE,
103
+ EXTERNAL_COUNT_SCORE,
104
+ EXT_FUNC_MATCH_SCORE,
105
+ FRAME_SAFETY_GAP,
106
+ FRAME_SIZE_THRESHOLD,
107
+ FUNC_FRAME_SCORE,
108
+ FUNC_HINT_SCORE,
109
+ INSTR_COUNT_SCORE,
110
+ INSTR_COUNT_THRESHOLD,
111
+ INSTR_RATIO_COUNT_THRESHOLD,
112
+ LIBC_COMP_FUNC_MATCH_SCORE,
113
+ LIBC_FUNC_MATCH_SCORE,
114
+ LOCATION_BOOST_LOW_THRESHOLD,
115
+ LOCATION_BOOST_SCORE,
116
+ LOCATION_BOOST_TOP_THRESHOLD,
117
+ MATCHED_CALL_SCORE,
118
+ MINIMAL_BLOCKS_BOOST,
119
+ MINIMAL_ISLAND_SCORE,
120
+ MINIMAL_MATCH_SCORE,
121
+ MINIMAL_NEIGHBOUR_THRESHOLD,
122
+ MIN_STR_SIZE,
123
+ NUM_BITS_IN_CONST,
124
+ SAFTEY_GAP_SCORE,
125
+ STATIC_VIOLATION_PENALTY,
126
+ STRING_MATCH_SCORE,
127
+ STRING_MISMATCH_SCORE,
128
+ STRING_NAME_SCORE,
129
+ )
130
+
131
+ from .libc_config import (
132
+ gcc_skip_functions,
133
+ gcc_skip_math_functions,
134
+ libc_comp_function_names,
135
+ libc_function_names,
136
+ libc_functions,
137
+ skip_function_names,
138
+ windows_skip_functions,
139
+ windows_skip_math_functions,
140
+ )
141
+
142
+ from .anchor_config import (
143
+ CONST_COMPLEX_GROUP,
144
+ CONST_COMPLEX_LIMIT,
145
+ CONST_MEDIUM_GROUP,
146
+ CONST_MEDIUM_LIMIT,
147
+ MAXIMAL_CONST_SEARCH_RATE,
148
+ MAXIMAL_CONST_SEARCH_TIME,
149
+ STRING_HUGE_GROUP,
150
+ STRING_HUGE_LIMIT,
151
+ STRING_LONG_GROUP,
152
+ STRING_LONG_LIMIT,
153
+ STRING_MEDIUM_GROUP,
154
+ STRING_MEDIUM_LIMIT,
155
+ STRING_SHORT_GROUP,
156
+ STRING_SHORT_LIMIT,
157
+ )
158
+
159
+ from .anchor import (
160
+ is_agent,
161
+ isAnchor,
162
+ )
163
+
164
+ __all__ = [
165
+ # From utils
166
+ "DISASSEMBLER_PATH",
167
+ "GUI_CMD_IMPORT_MATCHED",
168
+ "GUI_CMD_IMPORT_SELECTED",
169
+ "GUI_COLOR_DARK_GREEN",
170
+ "GUI_COLOR_DARK_RED",
171
+ "GUI_COLOR_GRAY",
172
+ "GUI_COLOR_GREEN",
173
+ "GUI_COLOR_RED",
174
+ "GUI_MATCH_REASONS",
175
+ "JSON_TAG_ANCHORS",
176
+ "JSON_TAG_FILES",
177
+ "JSON_TAG_LIBRARY",
178
+ "JSON_TAG_MANUAL_ANCHORS",
179
+ "JSON_TAG_MANUAL_VERSIONS",
180
+ "KNOWLEDGE_FILE_SUFFIX",
181
+ "KartaException",
182
+ "LIBRARY_NAME",
183
+ "LOG_FILE_SUFFIX",
184
+ "REASON_AGENT",
185
+ "REASON_ANCHOR",
186
+ "REASON_CALL_ORDER",
187
+ "REASON_COLLISION",
188
+ "REASON_DISABLED",
189
+ "REASON_FILE_HINT",
190
+ "REASON_FILE_SINGLETON",
191
+ "REASON_LIBRARY_UNUSED",
192
+ "REASON_MANUAL_ANCHOR",
193
+ "REASON_NEIGHBOUR",
194
+ "REASON_SCORE",
195
+ "REASON_SINGLE_CALL",
196
+ "REASON_SINGLE_XREF",
197
+ "REASON_STATIC_UNUSED",
198
+ "REASON_STRUCTURAL_SIGNATURE",
199
+ "REASON_SWALLOW",
200
+ "REASON_TRAPPED_COUPLE",
201
+ "SCRIPT_PATH",
202
+ "STATE_FILE_SUFFIX",
203
+ "accumulatedKnowledgePath",
204
+ "areNeighboursSafe",
205
+ "bin_func_class",
206
+ "bin_instr_count",
207
+ "binaryContext",
208
+ "constructConfigPath",
209
+ "constructInitLogPath",
210
+ "constructLogPath",
211
+ "countSetBits",
212
+ "disas_layer",
213
+ "functionsToFile",
214
+ "getContextsStats",
215
+ "getDisas",
216
+ "getDisasPath",
217
+ "getNeighbourScore",
218
+ "getSourceFunctions",
219
+ "global_logger",
220
+ "initUtils",
221
+ "islandContext",
222
+ "island_func_class",
223
+ "isMatching",
224
+ "isWindows",
225
+ "libraryName",
226
+ "loadKnowledge",
227
+ "matched_library_name",
228
+ "matching_mode",
229
+ "measureBitsEntropy",
230
+ "measureBitsVariance",
231
+ "num_instr_samples",
232
+ "num_neighbours_matched",
233
+ "num_neighbours_mismatched",
234
+ "parseFileStats",
235
+ "rankConst",
236
+ "recordInstrRatio",
237
+ "recordNeighbourMatch",
238
+ "registerContexts",
239
+ "resetRatio",
240
+ "resetScoring",
241
+ "setDisassemblerPath",
242
+ "setMatchingMode",
243
+ "setWindowsMode",
244
+ "sourceContext",
245
+ "src_file_mappings",
246
+ "src_func_class",
247
+ "src_functions_ctx",
248
+ "src_functions_list",
249
+ "src_instr_count",
250
+ "src_seen_consts",
251
+ "src_seen_strings",
252
+ "storeKnowledge",
253
+ "windows_config",
254
+ # From score_config
255
+ "AGENT_BOOST_SCORE",
256
+ "ARTIFACT_MATCH_SCORE",
257
+ "BLOCK_MATCH_SCORE",
258
+ "BLOCK_MISMATCH_SCORE",
259
+ "CALL_COUNT_SCORE",
260
+ "CONST_BOOST_BIT_FLAG",
261
+ "CONST_BOOST_SMALL_FUNCS",
262
+ "CONST_BOOST_SPECIAL",
263
+ "CONST_SPECIAL_VALUES",
264
+ "EXISTENCE_BOOST_SCORE",
265
+ "EXTERNAL_COUNT_SCORE",
266
+ "EXT_FUNC_MATCH_SCORE",
267
+ "FRAME_SAFETY_GAP",
268
+ "FRAME_SIZE_THRESHOLD",
269
+ "FUNC_FRAME_SCORE",
270
+ "FUNC_HINT_SCORE",
271
+ "INSTR_COUNT_SCORE",
272
+ "INSTR_COUNT_THRESHOLD",
273
+ "INSTR_RATIO_COUNT_THRESHOLD",
274
+ "LIBC_COMP_FUNC_MATCH_SCORE",
275
+ "LIBC_FUNC_MATCH_SCORE",
276
+ "LOCATION_BOOST_LOW_THRESHOLD",
277
+ "LOCATION_BOOST_SCORE",
278
+ "LOCATION_BOOST_TOP_THRESHOLD",
279
+ "MATCHED_CALL_SCORE",
280
+ "MINIMAL_BLOCKS_BOOST",
281
+ "MINIMAL_ISLAND_SCORE",
282
+ "MINIMAL_MATCH_SCORE",
283
+ "MINIMAL_NEIGHBOUR_THRESHOLD",
284
+ "MIN_STR_SIZE",
285
+ "NUM_BITS_IN_CONST",
286
+ "SAFTEY_GAP_SCORE",
287
+ "STATIC_VIOLATION_PENALTY",
288
+ "STRING_MATCH_SCORE",
289
+ "STRING_MISMATCH_SCORE",
290
+ "STRING_NAME_SCORE",
291
+ # From libc_config
292
+ "gcc_skip_functions",
293
+ "gcc_skip_math_functions",
294
+ "libc_comp_function_names",
295
+ "libc_function_names",
296
+ "libc_functions",
297
+ "skip_function_names",
298
+ "windows_skip_functions",
299
+ "windows_skip_math_functions",
300
+ # From anchor_config
301
+ "CONST_COMPLEX_GROUP",
302
+ "CONST_COMPLEX_LIMIT",
303
+ "CONST_MEDIUM_GROUP",
304
+ "CONST_MEDIUM_LIMIT",
305
+ "MAXIMAL_CONST_SEARCH_RATE",
306
+ "MAXIMAL_CONST_SEARCH_TIME",
307
+ "STRING_HUGE_GROUP",
308
+ "STRING_HUGE_LIMIT",
309
+ "STRING_LONG_GROUP",
310
+ "STRING_LONG_LIMIT",
311
+ "STRING_MEDIUM_GROUP",
312
+ "STRING_MEDIUM_LIMIT",
313
+ "STRING_SHORT_GROUP",
314
+ "STRING_SHORT_LIMIT",
315
+ # From anchor
316
+ "isAgent",
317
+ "isAnchor",
318
+ ]