pwn 0.5.708 → 0.5.710

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 (450) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -2
  3. data/documentation/Installation.md +1 -0
  4. data/etc/default_skills/exploitdev/SKILL.md +38 -0
  5. data/etc/default_skills/pwn/ai/agent/extrospection/osint/bridges/SKILL.md +30 -8
  6. data/etc/default_skills/pwn/ai/agent/extrospection/osint/social/SKILL.md +30 -8
  7. data/etc/default_skills/pwn/ai/agent/extrospection/osint/social/references/urls.md +1 -1
  8. data/etc/default_skills/pwn/ai/agent/extrospection/references/urls.md +0 -1
  9. data/etc/default_skills/pwn/memory_index/SKILL.md +0 -4
  10. data/etc/default_skills/pwn/plugins/aflplusplus/SKILL.md +49 -0
  11. data/etc/default_skills/pwn/plugins/android/SKILL.md +1 -0
  12. data/etc/default_skills/pwn/plugins/artifact_registry/SKILL.md +49 -0
  13. data/etc/default_skills/pwn/plugins/binary_parser/SKILL.md +54 -0
  14. data/etc/default_skills/pwn/plugins/credential_attack/SKILL.md +58 -0
  15. data/etc/default_skills/pwn/plugins/credential_attack/references/urls.md +3 -0
  16. data/etc/default_skills/pwn/plugins/exploit_db/SKILL.md +49 -0
  17. data/etc/default_skills/pwn/plugins/exploit_dev/SKILL.md +63 -0
  18. data/etc/default_skills/pwn/plugins/frida/SKILL.md +51 -0
  19. data/etc/default_skills/pwn/plugins/fuzz/SKILL.md +2 -0
  20. data/etc/default_skills/pwn/plugins/gdb/SKILL.md +53 -0
  21. data/etc/default_skills/pwn/plugins/jobs/SKILL.md +51 -0
  22. data/etc/default_skills/pwn/plugins/k8s/SKILL.md +51 -0
  23. data/etc/default_skills/pwn/plugins/nuclei/SKILL.md +50 -0
  24. data/etc/default_skills/pwn/plugins/preflight_checker/SKILL.md +59 -0
  25. data/etc/default_skills/pwn/plugins/process_tube/SKILL.md +53 -0
  26. data/etc/default_skills/pwn/plugins/radare2/SKILL.md +59 -0
  27. data/etc/default_skills/pwn/plugins/recon/SKILL.md +57 -0
  28. data/etc/default_skills/pwn/plugins/recon/references/urls.md +6 -0
  29. data/etc/default_skills/pwn/plugins/semgrep/SKILL.md +48 -0
  30. data/etc/default_skills/pwn/plugins/sqlmap/SKILL.md +48 -0
  31. data/etc/default_skills/pwn/plugins/transparent_browser/SKILL.md +0 -4
  32. data/etc/default_skills/pwn/plugins/volatility/SKILL.md +49 -0
  33. data/lib/pwn/ai/agent/assembly.rb +4 -1
  34. data/lib/pwn/ai/agent/btc.rb +4 -1
  35. data/lib/pwn/ai/agent/burp_suite.rb +5 -2
  36. data/lib/pwn/ai/agent/curriculum.rb +89 -30
  37. data/lib/pwn/ai/agent/dispatch.rb +27 -16
  38. data/lib/pwn/ai/agent/extrospection/osint/bridges.rb +9 -18
  39. data/lib/pwn/ai/agent/extrospection/osint/social.rb +9 -18
  40. data/lib/pwn/ai/agent/extrospection.rb +185 -60
  41. data/lib/pwn/ai/agent/gqrx.rb +4 -1
  42. data/lib/pwn/ai/agent/hacker_one.rb +5 -2
  43. data/lib/pwn/ai/agent/learning.rb +142 -25
  44. data/lib/pwn/ai/agent/loop.rb +53 -46
  45. data/lib/pwn/ai/agent/metrics.rb +133 -23
  46. data/lib/pwn/ai/agent/mistakes.rb +126 -17
  47. data/lib/pwn/ai/agent/open_goal.rb +25 -9
  48. data/lib/pwn/ai/agent/policy.rb +158 -18
  49. data/lib/pwn/ai/agent/prompt_builder.rb +21 -11
  50. data/lib/pwn/ai/agent/prompt_cache.rb +44 -13
  51. data/lib/pwn/ai/agent/reflect.rb +9 -5
  52. data/lib/pwn/ai/agent/registry.rb +65 -12
  53. data/lib/pwn/ai/agent/result.rb +19 -10
  54. data/lib/pwn/ai/agent/reward.rb +150 -32
  55. data/lib/pwn/ai/agent/sast.rb +4 -1
  56. data/lib/pwn/ai/agent/swarm.rb +72 -36
  57. data/lib/pwn/ai/agent/task_summarizer.rb +165 -36
  58. data/lib/pwn/ai/agent/tool_guard.rb +105 -6
  59. data/lib/pwn/ai/agent/tools/sessions.rb +8 -1
  60. data/lib/pwn/ai/agent/transparent_browser.rb +4 -1
  61. data/lib/pwn/ai/agent/turn_finalizer.rb +41 -21
  62. data/lib/pwn/ai/agent/vuln_gen.rb +6 -3
  63. data/lib/pwn/ai/agent.rb +4 -0
  64. data/lib/pwn/ai/anthropic.rb +41 -7
  65. data/lib/pwn/ai/gemini.rb +21 -11
  66. data/lib/pwn/ai/grok.rb +44 -6
  67. data/lib/pwn/ai/http_retry.rb +40 -12
  68. data/lib/pwn/ai/ollama.rb +19 -10
  69. data/lib/pwn/ai/open_ai.rb +81 -30
  70. data/lib/pwn/ai/open_web_ui.rb +20 -14
  71. data/lib/pwn/ai/red_team/agent_protocol_abuse.rb +7 -1
  72. data/lib/pwn/ai/red_team/data_and_model_poisoning.rb +7 -1
  73. data/lib/pwn/ai/red_team/excessive_agency.rb +7 -1
  74. data/lib/pwn/ai/red_team/hidden_context_exposure.rb +7 -1
  75. data/lib/pwn/ai/red_team/insecure_output_handling.rb +7 -1
  76. data/lib/pwn/ai/red_team/jailbreak.rb +7 -1
  77. data/lib/pwn/ai/red_team/memory_poisoning.rb +7 -1
  78. data/lib/pwn/ai/red_team/multimodal_injection.rb +7 -1
  79. data/lib/pwn/ai/red_team/overreliance.rb +7 -1
  80. data/lib/pwn/ai/red_team/payload_splitting.rb +7 -1
  81. data/lib/pwn/ai/red_team/prompt_injection.rb +7 -1
  82. data/lib/pwn/ai/red_team/rag_poisoning.rb +7 -1
  83. data/lib/pwn/ai/red_team/sensitive_information_disclosure.rb +7 -1
  84. data/lib/pwn/ai/red_team/supply_chain.rb +7 -1
  85. data/lib/pwn/ai/red_team/system_prompt_extraction.rb +7 -1
  86. data/lib/pwn/ai/red_team/test_case_engine.rb +12 -9
  87. data/lib/pwn/ai/red_team/token_smuggling.rb +7 -1
  88. data/lib/pwn/ai/red_team/unbounded_consumption.rb +7 -1
  89. data/lib/pwn/ai/red_team/vector_and_embedding_weaknesses.rb +7 -1
  90. data/lib/pwn/ai/red_team.rb +4 -0
  91. data/lib/pwn/ai.rb +4 -0
  92. data/lib/pwn/aws/acm.rb +5 -2
  93. data/lib/pwn/aws/api_gateway.rb +10 -7
  94. data/lib/pwn/aws/app_stream.rb +5 -2
  95. data/lib/pwn/aws/application_auto_scaling.rb +5 -2
  96. data/lib/pwn/aws/application_discovery_service.rb +5 -2
  97. data/lib/pwn/aws/auto_scaling.rb +5 -2
  98. data/lib/pwn/aws/batch.rb +5 -2
  99. data/lib/pwn/aws/budgets.rb +5 -2
  100. data/lib/pwn/aws/cloud_formation.rb +5 -2
  101. data/lib/pwn/aws/cloud_front.rb +7 -4
  102. data/lib/pwn/aws/cloud_hsm.rb +5 -2
  103. data/lib/pwn/aws/cloud_search.rb +5 -2
  104. data/lib/pwn/aws/cloud_search_domain.rb +5 -2
  105. data/lib/pwn/aws/cloud_trail.rb +5 -2
  106. data/lib/pwn/aws/cloud_watch.rb +5 -2
  107. data/lib/pwn/aws/cloud_watch_events.rb +5 -2
  108. data/lib/pwn/aws/cloud_watch_logs.rb +5 -2
  109. data/lib/pwn/aws/code_build.rb +5 -2
  110. data/lib/pwn/aws/code_commit.rb +5 -2
  111. data/lib/pwn/aws/code_deploy.rb +5 -2
  112. data/lib/pwn/aws/code_pipeline.rb +5 -2
  113. data/lib/pwn/aws/cognito_identity.rb +5 -2
  114. data/lib/pwn/aws/cognito_identity_provider.rb +5 -2
  115. data/lib/pwn/aws/cognito_sync.rb +5 -2
  116. data/lib/pwn/aws/config_service.rb +5 -2
  117. data/lib/pwn/aws/data_pipleline.rb +5 -2
  118. data/lib/pwn/aws/database_migration_service.rb +5 -2
  119. data/lib/pwn/aws/device_farm.rb +5 -2
  120. data/lib/pwn/aws/direct_connect.rb +5 -2
  121. data/lib/pwn/aws/directory_service.rb +5 -2
  122. data/lib/pwn/aws/dynamo_db.rb +5 -2
  123. data/lib/pwn/aws/dynamo_db_streams.rb +5 -2
  124. data/lib/pwn/aws/ec2.rb +5 -2
  125. data/lib/pwn/aws/ecr.rb +5 -2
  126. data/lib/pwn/aws/ecs.rb +5 -2
  127. data/lib/pwn/aws/efs.rb +5 -2
  128. data/lib/pwn/aws/elasti_cache.rb +5 -2
  129. data/lib/pwn/aws/elastic_beanstalk.rb +8 -5
  130. data/lib/pwn/aws/elastic_load_balancing.rb +5 -2
  131. data/lib/pwn/aws/elastic_load_balancing_v2.rb +6 -3
  132. data/lib/pwn/aws/elastic_transcoder.rb +5 -2
  133. data/lib/pwn/aws/elasticsearch_service.rb +5 -2
  134. data/lib/pwn/aws/emr.rb +5 -2
  135. data/lib/pwn/aws/firehose.rb +5 -2
  136. data/lib/pwn/aws/game_lift.rb +5 -2
  137. data/lib/pwn/aws/glacier.rb +6 -3
  138. data/lib/pwn/aws/health.rb +5 -2
  139. data/lib/pwn/aws/iam.rb +10 -4
  140. data/lib/pwn/aws/import_export.rb +5 -2
  141. data/lib/pwn/aws/inspector.rb +5 -2
  142. data/lib/pwn/aws/iot.rb +5 -2
  143. data/lib/pwn/aws/iot_data_plane.rb +5 -2
  144. data/lib/pwn/aws/kinesis.rb +5 -2
  145. data/lib/pwn/aws/kinesis_analytics.rb +5 -2
  146. data/lib/pwn/aws/kms.rb +5 -2
  147. data/lib/pwn/aws/lambda.rb +5 -2
  148. data/lib/pwn/aws/lambda_preview.rb +5 -2
  149. data/lib/pwn/aws/lex.rb +5 -2
  150. data/lib/pwn/aws/lightsail.rb +5 -2
  151. data/lib/pwn/aws/machine_learning.rb +5 -2
  152. data/lib/pwn/aws/marketplace_commerce_analytics.rb +5 -2
  153. data/lib/pwn/aws/marketplace_metering.rb +5 -2
  154. data/lib/pwn/aws/ops_works.rb +5 -2
  155. data/lib/pwn/aws/ops_works_cm.rb +5 -2
  156. data/lib/pwn/aws/pinpoint.rb +5 -2
  157. data/lib/pwn/aws/polly.rb +5 -2
  158. data/lib/pwn/aws/rds.rb +5 -2
  159. data/lib/pwn/aws/redshift.rb +5 -2
  160. data/lib/pwn/aws/rekognition.rb +5 -2
  161. data/lib/pwn/aws/route53.rb +5 -2
  162. data/lib/pwn/aws/route53_domains.rb +5 -2
  163. data/lib/pwn/aws/s3.rb +5 -2
  164. data/lib/pwn/aws/service_catalog.rb +5 -2
  165. data/lib/pwn/aws/ses.rb +5 -2
  166. data/lib/pwn/aws/shield.rb +5 -2
  167. data/lib/pwn/aws/simple_db.rb +5 -2
  168. data/lib/pwn/aws/sms.rb +5 -2
  169. data/lib/pwn/aws/snowball.rb +5 -2
  170. data/lib/pwn/aws/sns.rb +5 -2
  171. data/lib/pwn/aws/sqs.rb +5 -2
  172. data/lib/pwn/aws/ssm.rb +5 -2
  173. data/lib/pwn/aws/states.rb +5 -2
  174. data/lib/pwn/aws/storage_gateway.rb +5 -2
  175. data/lib/pwn/aws/sts.rb +4 -1
  176. data/lib/pwn/aws/support.rb +5 -2
  177. data/lib/pwn/aws/swf.rb +5 -2
  178. data/lib/pwn/aws/waf.rb +5 -2
  179. data/lib/pwn/aws/waf_regional.rb +5 -2
  180. data/lib/pwn/aws/workspaces.rb +5 -2
  181. data/lib/pwn/aws/x_ray.rb +5 -2
  182. data/lib/pwn/aws.rb +4 -0
  183. data/lib/pwn/banner/anon.rb +3 -0
  184. data/lib/pwn/banner/bubble.rb +3 -0
  185. data/lib/pwn/banner/cheshire.rb +3 -0
  186. data/lib/pwn/banner/code_cave.rb +3 -0
  187. data/lib/pwn/banner/dont_panic.rb +3 -0
  188. data/lib/pwn/banner/f_society.rb +3 -0
  189. data/lib/pwn/banner/fork_bomb.rb +3 -0
  190. data/lib/pwn/banner/jmp_esp.rb +3 -0
  191. data/lib/pwn/banner/matrix.rb +5 -1
  192. data/lib/pwn/banner/ninja.rb +3 -0
  193. data/lib/pwn/banner/off_the_air.rb +3 -0
  194. data/lib/pwn/banner/pirate.rb +3 -0
  195. data/lib/pwn/banner/radare2.rb +3 -0
  196. data/lib/pwn/banner/radare2_ai.rb +3 -0
  197. data/lib/pwn/banner/white_rabbit.rb +3 -0
  198. data/lib/pwn/banner.rb +6 -2
  199. data/lib/pwn/blockchain/btc.rb +8 -3
  200. data/lib/pwn/blockchain/eth.rb +10 -3
  201. data/lib/pwn/blockchain.rb +4 -0
  202. data/lib/pwn/bounty/lifecycle_authz_replay.rb +46 -27
  203. data/lib/pwn/bounty.rb +4 -0
  204. data/lib/pwn/config.rb +79 -13
  205. data/lib/pwn/cron.rb +297 -20
  206. data/lib/pwn/driver.rb +2 -18
  207. data/lib/pwn/ffi/adalm_pluto.rb +65 -11
  208. data/lib/pwn/ffi/fftw.rb +31 -6
  209. data/lib/pwn/ffi/hack_rf.rb +59 -8
  210. data/lib/pwn/ffi/liquid.rb +63 -10
  211. data/lib/pwn/ffi/rtl_sdr.rb +35 -5
  212. data/lib/pwn/ffi/soapy_sdr.rb +60 -10
  213. data/lib/pwn/ffi/stdio.rb +7 -8
  214. data/lib/pwn/ffi/volk.rb +36 -7
  215. data/lib/pwn/ffi.rb +12 -0
  216. data/lib/pwn/memory.rb +136 -16
  217. data/lib/pwn/memory_index.rb +34 -19
  218. data/lib/pwn/migrate.rb +34 -24
  219. data/lib/pwn/module_skills.rb +39 -8
  220. data/lib/pwn/plugins/aflplusplus.rb +72 -0
  221. data/lib/pwn/plugins/android.rb +71 -245
  222. data/lib/pwn/plugins/artifact_registry.rb +71 -0
  223. data/lib/pwn/plugins/assembly.rb +9 -4
  224. data/lib/pwn/plugins/authentication_helper.rb +8 -5
  225. data/lib/pwn/plugins/baresip.rb +59 -12
  226. data/lib/pwn/plugins/basic_auth.rb +9 -3
  227. data/lib/pwn/plugins/beef.rb +28 -18
  228. data/lib/pwn/plugins/binary_parser.rb +133 -0
  229. data/lib/pwn/plugins/black_duck_binary_analysis.rb +63 -39
  230. data/lib/pwn/plugins/burp_suite.rb +98 -68
  231. data/lib/pwn/plugins/bus_pirate.rb +15 -8
  232. data/lib/pwn/plugins/char.rb +33 -3
  233. data/lib/pwn/plugins/credential_attack.rb +158 -0
  234. data/lib/pwn/plugins/credit_card.rb +6 -1
  235. data/lib/pwn/plugins/dao_ldap.rb +19 -13
  236. data/lib/pwn/plugins/dao_mongo.rb +11 -5
  237. data/lib/pwn/plugins/dao_postgres.rb +28 -19
  238. data/lib/pwn/plugins/dao_sqlite3.rb +15 -6
  239. data/lib/pwn/plugins/defect_dojo.rb +38 -22
  240. data/lib/pwn/plugins/detect_os.rb +5 -0
  241. data/lib/pwn/plugins/ein.rb +3 -0
  242. data/lib/pwn/plugins/exploit_db.rb +69 -0
  243. data/lib/pwn/plugins/exploit_dev.rb +330 -0
  244. data/lib/pwn/plugins/file_fu.rb +11 -8
  245. data/lib/pwn/plugins/frida.rb +112 -0
  246. data/lib/pwn/plugins/fuzz.rb +42 -6
  247. data/lib/pwn/plugins/gdb.rb +115 -0
  248. data/lib/pwn/plugins/git.rb +19 -14
  249. data/lib/pwn/plugins/github.rb +38 -15
  250. data/lib/pwn/plugins/google_workspace.rb +188 -45
  251. data/lib/pwn/plugins/hacker_one.rb +159 -35
  252. data/lib/pwn/plugins/hunter.rb +6 -3
  253. data/lib/pwn/plugins/ip_info.rb +9 -4
  254. data/lib/pwn/plugins/irc.rb +28 -15
  255. data/lib/pwn/plugins/jenkins.rb +65 -57
  256. data/lib/pwn/plugins/jira_data_center.rb +30 -22
  257. data/lib/pwn/plugins/jobs.rb +110 -0
  258. data/lib/pwn/plugins/json_pathify.rb +9 -5
  259. data/lib/pwn/plugins/k8s.rb +73 -0
  260. data/lib/pwn/plugins/log.rb +113 -13
  261. data/lib/pwn/plugins/mail_agent.rb +87 -79
  262. data/lib/pwn/plugins/metasploit.rb +11 -6
  263. data/lib/pwn/plugins/monkey_patch.rb +3 -0
  264. data/lib/pwn/plugins/msr206.rb +42 -28
  265. data/lib/pwn/plugins/nessus_cloud.rb +44 -4
  266. data/lib/pwn/plugins/nexpose_vuln_scan.rb +40 -24
  267. data/lib/pwn/plugins/nmap_it.rb +14 -34
  268. data/lib/pwn/plugins/nuclei.rb +90 -0
  269. data/lib/pwn/plugins/oauth2.rb +11 -5
  270. data/lib/pwn/plugins/ocr.rb +3 -0
  271. data/lib/pwn/plugins/open_api.rb +5 -2
  272. data/lib/pwn/plugins/openvas.rb +33 -25
  273. data/lib/pwn/plugins/packet.rb +152 -31
  274. data/lib/pwn/plugins/pdf_parse.rb +5 -2
  275. data/lib/pwn/plugins/pony.rb +86 -1
  276. data/lib/pwn/plugins/preflight_checker.rb +166 -0
  277. data/lib/pwn/plugins/process_tube.rb +139 -0
  278. data/lib/pwn/plugins/ps.rb +7 -1
  279. data/lib/pwn/plugins/pwn_logger.rb +6 -2
  280. data/lib/pwn/plugins/rabbit_mq.rb +12 -7
  281. data/lib/pwn/plugins/radare2.rb +253 -0
  282. data/lib/pwn/plugins/recon.rb +196 -0
  283. data/lib/pwn/plugins/repl.rb +122 -1
  284. data/lib/pwn/plugins/scannable_codes.rb +5 -1
  285. data/lib/pwn/plugins/semgrep.rb +61 -0
  286. data/lib/pwn/plugins/serial.rb +24 -14
  287. data/lib/pwn/plugins/shodan.rb +54 -35
  288. data/lib/pwn/plugins/slack_client.rb +11 -6
  289. data/lib/pwn/plugins/sock.rb +17 -8
  290. data/lib/pwn/plugins/spider.rb +5 -2
  291. data/lib/pwn/plugins/sqlmap.rb +49 -0
  292. data/lib/pwn/plugins/ssn.rb +3 -0
  293. data/lib/pwn/plugins/thread_pool.rb +6 -9
  294. data/lib/pwn/plugins/tor.rb +9 -4
  295. data/lib/pwn/plugins/transparent_browser.rb +62 -107
  296. data/lib/pwn/plugins/tty_spinner.rb +16 -2
  297. data/lib/pwn/plugins/twitter_api.rb +6 -2
  298. data/lib/pwn/plugins/uri_scheme.rb +4 -1
  299. data/lib/pwn/plugins/vault.rb +12 -3
  300. data/lib/pwn/plugins/vin.rb +24 -12
  301. data/lib/pwn/plugins/voice.rb +7 -2
  302. data/lib/pwn/plugins/volatility.rb +67 -0
  303. data/lib/pwn/plugins/vsphere.rb +9 -5
  304. data/lib/pwn/plugins/xxd.rb +12 -43
  305. data/lib/pwn/plugins/zaproxy.rb +30 -16
  306. data/lib/pwn/plugins.rb +22 -0
  307. data/lib/pwn/reports/ai_red_team.rb +6 -2
  308. data/lib/pwn/reports/csv.rb +8 -1
  309. data/lib/pwn/reports/fuzz.rb +5 -2
  310. data/lib/pwn/reports/html.rb +8 -1
  311. data/lib/pwn/reports/html_footer.rb +4 -3
  312. data/lib/pwn/reports/html_header.rb +6 -2
  313. data/lib/pwn/reports/json.rb +8 -1
  314. data/lib/pwn/reports/markdown.rb +8 -1
  315. data/lib/pwn/reports/pdf.rb +8 -1
  316. data/lib/pwn/reports/phone.rb +5 -2
  317. data/lib/pwn/reports/sast.rb +6 -2
  318. data/lib/pwn/reports/uri_buster.rb +5 -2
  319. data/lib/pwn/reports/xml.rb +8 -1
  320. data/lib/pwn/reports.rb +19 -0
  321. data/lib/pwn/sast/amqp_connect_as_guest.rb +9 -3
  322. data/lib/pwn/sast/apache_file_system_util_api.rb +9 -3
  323. data/lib/pwn/sast/aws.rb +9 -3
  324. data/lib/pwn/sast/banned_function_calls_c.rb +9 -3
  325. data/lib/pwn/sast/base64.rb +9 -3
  326. data/lib/pwn/sast/beef_hook.rb +9 -3
  327. data/lib/pwn/sast/cmd_execution_go_lang.rb +9 -3
  328. data/lib/pwn/sast/cmd_execution_java.rb +9 -3
  329. data/lib/pwn/sast/cmd_execution_python.rb +9 -3
  330. data/lib/pwn/sast/cmd_execution_ruby.rb +9 -3
  331. data/lib/pwn/sast/cmd_execution_scala.rb +9 -3
  332. data/lib/pwn/sast/csrf.rb +9 -3
  333. data/lib/pwn/sast/deserial_java.rb +9 -3
  334. data/lib/pwn/sast/emoticon.rb +9 -3
  335. data/lib/pwn/sast/eval.rb +9 -3
  336. data/lib/pwn/sast/factory.rb +9 -3
  337. data/lib/pwn/sast/http_authorization_header.rb +9 -3
  338. data/lib/pwn/sast/inner_html.rb +9 -3
  339. data/lib/pwn/sast/keystore.rb +9 -3
  340. data/lib/pwn/sast/local_storage.rb +9 -3
  341. data/lib/pwn/sast/location_hash.rb +9 -3
  342. data/lib/pwn/sast/log4j.rb +9 -3
  343. data/lib/pwn/sast/logger.rb +9 -3
  344. data/lib/pwn/sast/md5.rb +9 -3
  345. data/lib/pwn/sast/outer_html.rb +9 -3
  346. data/lib/pwn/sast/padding_oracle.rb +9 -3
  347. data/lib/pwn/sast/password.rb +9 -3
  348. data/lib/pwn/sast/php_input_mechanisms.rb +9 -3
  349. data/lib/pwn/sast/php_type_juggling.rb +9 -3
  350. data/lib/pwn/sast/pom_version.rb +9 -3
  351. data/lib/pwn/sast/port.rb +9 -3
  352. data/lib/pwn/sast/post_message.rb +9 -3
  353. data/lib/pwn/sast/private_key.rb +9 -3
  354. data/lib/pwn/sast/redirect.rb +9 -3
  355. data/lib/pwn/sast/redos.rb +9 -3
  356. data/lib/pwn/sast/shell.rb +9 -3
  357. data/lib/pwn/sast/signature.rb +9 -3
  358. data/lib/pwn/sast/sql.rb +9 -3
  359. data/lib/pwn/sast/ssl.rb +9 -3
  360. data/lib/pwn/sast/sudo.rb +9 -3
  361. data/lib/pwn/sast/task_tag.rb +9 -3
  362. data/lib/pwn/sast/test_case_engine.rb +11 -7
  363. data/lib/pwn/sast/throw_errors.rb +9 -3
  364. data/lib/pwn/sast/token.rb +9 -3
  365. data/lib/pwn/sast/type_script_type_juggling.rb +9 -3
  366. data/lib/pwn/sast/use_after_free.rb +9 -3
  367. data/lib/pwn/sast/version.rb +9 -3
  368. data/lib/pwn/sast/window_location_hash.rb +9 -3
  369. data/lib/pwn/sast.rb +4 -0
  370. data/lib/pwn/sdr/decoder/adsb.rb +36 -5
  371. data/lib/pwn/sdr/decoder/apt.rb +9 -6
  372. data/lib/pwn/sdr/decoder/base.rb +74 -22
  373. data/lib/pwn/sdr/decoder/bluetooth.rb +17 -5
  374. data/lib/pwn/sdr/decoder/dect.rb +12 -3
  375. data/lib/pwn/sdr/decoder/dsp.rb +229 -39
  376. data/lib/pwn/sdr/decoder/flex.rb +59 -11
  377. data/lib/pwn/sdr/decoder/gps.rb +12 -3
  378. data/lib/pwn/sdr/decoder/gsm.rb +24 -4
  379. data/lib/pwn/sdr/decoder/iridium.rb +12 -3
  380. data/lib/pwn/sdr/decoder/lora.rb +13 -4
  381. data/lib/pwn/sdr/decoder/lte.rb +27 -3
  382. data/lib/pwn/sdr/decoder/morse.rb +12 -3
  383. data/lib/pwn/sdr/decoder/p25.rb +12 -3
  384. data/lib/pwn/sdr/decoder/pager.rb +8 -5
  385. data/lib/pwn/sdr/decoder/pocsag.rb +29 -9
  386. data/lib/pwn/sdr/decoder/rds.rb +14 -8
  387. data/lib/pwn/sdr/decoder/rfid.rb +12 -3
  388. data/lib/pwn/sdr/decoder/rtl433.rb +12 -3
  389. data/lib/pwn/sdr/decoder/rtty.rb +8 -5
  390. data/lib/pwn/sdr/decoder/wifi.rb +12 -3
  391. data/lib/pwn/sdr/decoder/zigbee.rb +12 -3
  392. data/lib/pwn/sdr/decoder.rb +9 -0
  393. data/lib/pwn/sdr/flipper_zero.rb +17 -10
  394. data/lib/pwn/sdr/frequency_allocation.rb +4 -1
  395. data/lib/pwn/sdr/gqrx.rb +178 -119
  396. data/lib/pwn/sdr/rfidler.rb +4 -1
  397. data/lib/pwn/sdr/son_micro_rfid.rb +37 -24
  398. data/lib/pwn/sdr.rb +14 -0
  399. data/lib/pwn/sessions.rb +86 -16
  400. data/lib/pwn/setup.rb +106 -37
  401. data/lib/pwn/version.rb +1 -1
  402. data/lib/pwn/www/app_cobalt_io.rb +11 -5
  403. data/lib/pwn/www/bing.rb +10 -5
  404. data/lib/pwn/www/bug_crowd.rb +11 -5
  405. data/lib/pwn/www/checkip.rb +8 -4
  406. data/lib/pwn/www/coinbase_pro.rb +11 -5
  407. data/lib/pwn/www/duckduckgo.rb +12 -6
  408. data/lib/pwn/www/facebook.rb +11 -5
  409. data/lib/pwn/www/github.rb +11 -5
  410. data/lib/pwn/www/google.rb +11 -5
  411. data/lib/pwn/www/hacker_one.rb +20 -9
  412. data/lib/pwn/www/linkedin.rb +11 -5
  413. data/lib/pwn/www/pandora.rb +11 -5
  414. data/lib/pwn/www/pastebin.rb +9 -4
  415. data/lib/pwn/www/paypal.rb +19 -11
  416. data/lib/pwn/www/synack.rb +11 -5
  417. data/lib/pwn/www/torch.rb +13 -8
  418. data/lib/pwn/www/trading_view.rb +11 -5
  419. data/lib/pwn/www/twitter.rb +11 -5
  420. data/lib/pwn/www/uber.rb +11 -5
  421. data/lib/pwn/www/upwork.rb +11 -5
  422. data/lib/pwn/www/wayback_machine.rb +12 -6
  423. data/lib/pwn/www/youtube.rb +10 -5
  424. data/lib/pwn/www.rb +4 -0
  425. data/spec/conventions_spec.rb +118 -2
  426. data/spec/integration/help_contract_spec.rb +2 -0
  427. data/spec/lib/pwn/ai/agent/reward_spec.rb +9 -0
  428. data/spec/lib/pwn/plugins/aflplusplus_spec.rb +13 -0
  429. data/spec/lib/pwn/plugins/artifact_registry_spec.rb +13 -0
  430. data/spec/lib/pwn/plugins/binary_parser_spec.rb +21 -0
  431. data/spec/lib/pwn/plugins/credential_attack_spec.rb +13 -0
  432. data/spec/lib/pwn/plugins/exploit_db_spec.rb +13 -0
  433. data/spec/lib/pwn/plugins/exploit_dev_spec.rb +23 -0
  434. data/spec/lib/pwn/plugins/frida_spec.rb +13 -0
  435. data/spec/lib/pwn/plugins/gdb_spec.rb +13 -0
  436. data/spec/lib/pwn/plugins/jobs_spec.rb +13 -0
  437. data/spec/lib/pwn/plugins/k8s_spec.rb +13 -0
  438. data/spec/lib/pwn/plugins/nuclei_spec.rb +13 -0
  439. data/spec/lib/pwn/plugins/preflight_checker_spec.rb +23 -0
  440. data/spec/lib/pwn/plugins/process_tube_spec.rb +13 -0
  441. data/spec/lib/pwn/plugins/radare2_spec.rb +13 -0
  442. data/spec/lib/pwn/plugins/recon_spec.rb +26 -0
  443. data/spec/lib/pwn/plugins/semgrep_spec.rb +13 -0
  444. data/spec/lib/pwn/plugins/sqlmap_spec.rb +13 -0
  445. data/spec/lib/pwn/plugins/volatility_spec.rb +13 -0
  446. data/spec/lib/pwn/req_queue_spec.rb +168 -0
  447. data/third_party/pwn_rdoc.jsonl +160 -5
  448. metadata +63 -7
  449. data/etc/default_skills/pwn/memory_index/references/urls.md +0 -4
  450. data/etc/default_skills/pwn/plugins/transparent_browser/references/urls.md +0 -3
data/lib/pwn/sast/port.rb CHANGED
@@ -69,13 +69,19 @@ module PWN
69
69
 
70
70
  public_class_method def self.help
71
71
  puts "USAGE:
72
- sast_arr = #{self}.scan(
73
- dir_path: 'optional path to dir defaults to .',
74
- git_repo_root_uri: 'optional http uri of git repo scanned'
72
+ # Run scan and return its result
73
+ #{self}.scan(
74
+ dir_path: 'optional - optional path to dir defaults to .',
75
+ git_repo_root_uri: 'optional - optional http uri of git repo scanned'
75
76
  )
76
77
 
78
+ # Used primarily to map NIST 800-53 Revision 4 Security Controls
79
+ #{self}.security_references
80
+
81
+ # Print the AUTHOR(S) string for this module.
77
82
  #{self}.authors
78
83
  "
84
+ constants.sort
79
85
  end
80
86
  end
81
87
  end
@@ -63,13 +63,19 @@ module PWN
63
63
 
64
64
  public_class_method def self.help
65
65
  puts "USAGE:
66
- sast_arr = #{self}.scan(
67
- dir_path: 'optional path to dir defaults to .',
68
- git_repo_root_uri: 'optional http uri of git repo scanned'
66
+ # Run scan and return its result
67
+ #{self}.scan(
68
+ dir_path: 'optional - optional path to dir defaults to .',
69
+ git_repo_root_uri: 'optional - optional http uri of git repo scanned'
69
70
  )
70
71
 
72
+ # Used primarily to map NIST 800-53 Revision 4 Security Controls
73
+ #{self}.security_references
74
+
75
+ # Print the AUTHOR(S) string for this module.
71
76
  #{self}.authors
72
77
  "
78
+ constants.sort
73
79
  end
74
80
  end
75
81
  end
@@ -62,13 +62,19 @@ module PWN
62
62
 
63
63
  public_class_method def self.help
64
64
  puts "USAGE:
65
- sast_arr = #{self}.scan(
66
- dir_path: 'optional path to dir defaults to .',
67
- git_repo_root_uri: 'optional http uri of git repo scanned'
65
+ # Run scan and return its result
66
+ #{self}.scan(
67
+ dir_path: 'optional - optional path to dir defaults to .',
68
+ git_repo_root_uri: 'optional - optional http uri of git repo scanned'
68
69
  )
69
70
 
71
+ # Used primarily to map NIST 800-53 Revision 4 Security Controls
72
+ #{self}.security_references
73
+
74
+ # Print the AUTHOR(S) string for this module.
70
75
  #{self}.authors
71
76
  "
77
+ constants.sort
72
78
  end
73
79
  end
74
80
  end
@@ -64,13 +64,19 @@ module PWN
64
64
 
65
65
  public_class_method def self.help
66
66
  puts "USAGE:
67
- sast_arr = #{self}.scan(
68
- dir_path: 'optional path to dir defaults to .',
69
- git_repo_root_uri: 'optional http uri of git repo scanned'
67
+ # Run scan and return its result
68
+ #{self}.scan(
69
+ dir_path: 'optional - optional path to dir defaults to .',
70
+ git_repo_root_uri: 'optional - optional http uri of git repo scanned'
70
71
  )
71
72
 
73
+ # Used primarily to map NIST 800-53 Revision 4 Security Controls
74
+ #{self}.security_references
75
+
76
+ # Print the AUTHOR(S) string for this module.
72
77
  #{self}.authors
73
78
  "
79
+ constants.sort
74
80
  end
75
81
  end
76
82
  end
@@ -69,13 +69,19 @@ module PWN
69
69
 
70
70
  public_class_method def self.help
71
71
  puts "USAGE:
72
- sast_arr = #{self}.scan(
73
- :dir_path => 'optional path to dir defaults to .',
74
- :git_repo_root_uri => 'optional http uri of git repo scanned'
72
+ # Run scan and return its result
73
+ #{self}.scan(
74
+ dir_path: 'optional - optional path to dir defaults to .',
75
+ git_repo_root_uri: 'optional - optional http uri of git repo scanned'
75
76
  )
76
77
 
78
+ # Used primarily to map NIST 800-53 Revision 4 Security Controls
79
+ #{self}.security_references
80
+
81
+ # Print the AUTHOR(S) string for this module.
77
82
  #{self}.authors
78
83
  "
84
+ constants.sort
79
85
  end
80
86
  end
81
87
  end
@@ -70,13 +70,19 @@ module PWN
70
70
 
71
71
  public_class_method def self.help
72
72
  puts "USAGE:
73
- sast_arr = #{self}.scan(
74
- dir_path: 'optional path to dir defaults to .',
75
- git_repo_root_uri: 'optional http uri of git repo scanned'
73
+ # Run scan and return its result
74
+ #{self}.scan(
75
+ dir_path: 'optional - optional path to dir defaults to .',
76
+ git_repo_root_uri: 'optional - optional http uri of git repo scanned'
76
77
  )
77
78
 
79
+ # Used primarily to map NIST 800-53 Revision 4 Security Controls
80
+ #{self}.security_references
81
+
82
+ # Print the AUTHOR(S) string for this module.
78
83
  #{self}.authors
79
84
  "
85
+ constants.sort
80
86
  end
81
87
  end
82
88
  end
@@ -62,13 +62,19 @@ module PWN
62
62
 
63
63
  public_class_method def self.help
64
64
  puts "USAGE:
65
- sast_arr = #{self}.scan(
66
- dir_path: 'optional path to dir defaults to .',
67
- git_repo_root_uri: 'optional http uri of git repo scanned'
65
+ # Run scan and return its result
66
+ #{self}.scan(
67
+ dir_path: 'optional - optional path to dir defaults to .',
68
+ git_repo_root_uri: 'optional - optional http uri of git repo scanned'
68
69
  )
69
70
 
71
+ # Used primarily to map NIST 800-53 Revision 4 Security Controls
72
+ #{self}.security_references
73
+
74
+ # Print the AUTHOR(S) string for this module.
70
75
  #{self}.authors
71
76
  "
77
+ constants.sort
72
78
  end
73
79
  end
74
80
  end
data/lib/pwn/sast/sql.rb CHANGED
@@ -72,13 +72,19 @@ module PWN
72
72
 
73
73
  public_class_method def self.help
74
74
  puts "USAGE:
75
- sast_arr = #{self}.scan(
76
- dir_path: 'optional path to dir defaults to .',
77
- git_repo_root_uri: 'optional http uri of git repo scanned'
75
+ # Run scan and return its result
76
+ #{self}.scan(
77
+ dir_path: 'optional - optional path to dir defaults to .',
78
+ git_repo_root_uri: 'optional - optional http uri of git repo scanned'
78
79
  )
79
80
 
81
+ # Used primarily to map NIST 800-53 Revision 4 Security Controls
82
+ #{self}.security_references
83
+
84
+ # Print the AUTHOR(S) string for this module.
80
85
  #{self}.authors
81
86
  "
87
+ constants.sort
82
88
  end
83
89
  end
84
90
  end
data/lib/pwn/sast/ssl.rb CHANGED
@@ -66,13 +66,19 @@ module PWN
66
66
 
67
67
  public_class_method def self.help
68
68
  puts "USAGE:
69
- sast_arr = #{self}.scan(
70
- dir_path: 'optional path to dir defaults to .',
71
- git_repo_root_uri: 'optional http uri of git repo scanned'
69
+ # Run scan and return its result
70
+ #{self}.scan(
71
+ dir_path: 'optional - optional path to dir defaults to .',
72
+ git_repo_root_uri: 'optional - optional http uri of git repo scanned'
72
73
  )
73
74
 
75
+ # Used primarily to map NIST 800-53 Revision 4 Security Controls
76
+ #{self}.security_references
77
+
78
+ # Print the AUTHOR(S) string for this module.
74
79
  #{self}.authors
75
80
  "
81
+ constants.sort
76
82
  end
77
83
  end
78
84
  end
data/lib/pwn/sast/sudo.rb CHANGED
@@ -62,13 +62,19 @@ module PWN
62
62
 
63
63
  public_class_method def self.help
64
64
  puts "USAGE:
65
- sast_arr = #{self}.scan(
66
- dir_path: 'optional path to dir defaults to .',
67
- git_repo_root_uri: 'optional http uri of git repo scanned'
65
+ # Run scan and return its result
66
+ #{self}.scan(
67
+ dir_path: 'optional - optional path to dir defaults to .',
68
+ git_repo_root_uri: 'optional - optional http uri of git repo scanned'
68
69
  )
69
70
 
71
+ # Used primarily to map NIST 800-53 Revision 4 Security Controls
72
+ #{self}.security_references
73
+
74
+ # Print the AUTHOR(S) string for this module.
70
75
  #{self}.authors
71
76
  "
77
+ constants.sort
72
78
  end
73
79
  end
74
80
  end
@@ -76,13 +76,19 @@ module PWN
76
76
 
77
77
  public_class_method def self.help
78
78
  puts "USAGE:
79
- sast_arr = #{self}.scan(
80
- dir_path: 'optional path to dir defaults to .',
81
- git_repo_root_uri: 'optional http uri of git repo scanned'
79
+ # Run scan and return its result
80
+ #{self}.scan(
81
+ dir_path: 'optional - optional path to dir defaults to .',
82
+ git_repo_root_uri: 'optional - optional http uri of git repo scanned'
82
83
  )
83
84
 
85
+ # Used primarily to map NIST 800-53 Revision 4 Security Controls
86
+ #{self}.security_references
87
+
88
+ # Print the AUTHOR(S) string for this module.
84
89
  #{self}.authors
85
90
  "
91
+ constants.sort
86
92
  end
87
93
  end
88
94
  end
@@ -169,17 +169,21 @@ module PWN
169
169
 
170
170
  public_class_method def self.help
171
171
  puts "USAGE:
172
- sast_arr = #{self}.execute(
173
- test_case_filter: 'required grep command to filter results',
174
- security_references: 'required Hash with keys :sast_module, :section, :nist_800_53_uri, :cwe_id, :cwe_uri',
175
- dir_path: 'optional path to dir defaults to .',
176
- include_extensions: 'optional array of file extensions to search for in scan (Defaults to all file types / i.e. [])',
177
- exclude_extensions: 'optional array of file extensions to exclude from scan (Defaults to [.bin, .dat, .JS-BEAUTIFIED, .o, .test, .png, .jpg, .jpeg, .gif, .svg, .ico, .so, .spec, .zip, .tar, .gz, .tgz, .7z, .mp3, .mp4, .mov, .avi, .wmv, .flv, .mkv])',
178
- git_repo_root_uri: 'optional http uri of git repo scanned'
172
+ # Run execute and return its result
173
+ #{self}.execute(
174
+ test_case_filter: 'required - grep command to filter results',
175
+ security_references: 'required - Hash with keys :sast_module, :section, :nist_800_53_uri, :cwe_id, :cwe_uri',
176
+ dir_path: 'optional - path to dir defaults to .',
177
+ include_extensions: 'optional - array of file extensions to search for in scan (Defaults to all file types / i.e. [])',
178
+ exclude_extensions: 'optional - array of file extensions to exclude from scan (Defaults to [.bin, .dat, .JS-BEAUTIFIED, .o, .test, .png, .jpg, .jpeg, .gif, .svg, .ico, .so, .spec, .zip, .tar, .gz, .tgz, .7z, .mp3, .mp4, .mov, .avi, .wmv, .flv, .mkv])',
179
+ git_repo_root_uri: 'optional - http uri of git repo scanned',
180
+ exclude_extentions: 'optional - exclude extentions value consumed by #execute'
179
181
  )
180
182
 
183
+ # Print the AUTHOR(S) string for this module.
181
184
  #{self}.authors
182
185
  "
186
+ constants.sort
183
187
  end
184
188
  end
185
189
  end
@@ -65,13 +65,19 @@ module PWN
65
65
 
66
66
  public_class_method def self.help
67
67
  puts "USAGE:
68
- sast_arr = #{self}.scan(
69
- dir_path: 'optional path to dir defaults to .',
70
- git_repo_root_uri: 'optional http uri of git repo scanned'
68
+ # Run scan and return its result
69
+ #{self}.scan(
70
+ dir_path: 'optional - optional path to dir defaults to .',
71
+ git_repo_root_uri: 'optional - optional http uri of git repo scanned'
71
72
  )
72
73
 
74
+ # Used primarily to map NIST 800-53 Revision 4 Security Controls
75
+ #{self}.security_references
76
+
77
+ # Print the AUTHOR(S) string for this module.
73
78
  #{self}.authors
74
79
  "
80
+ constants.sort
75
81
  end
76
82
  end
77
83
  end
@@ -64,13 +64,19 @@ module PWN
64
64
 
65
65
  public_class_method def self.help
66
66
  puts "USAGE:
67
- sast_arr = #{self}.scan(
68
- dir_path: 'optional path to dir defaults to .',
69
- git_repo_root_uri: 'optional http uri of git repo scanned'
67
+ # Run scan and return its result
68
+ #{self}.scan(
69
+ dir_path: 'optional - optional path to dir defaults to .',
70
+ git_repo_root_uri: 'optional - optional http uri of git repo scanned'
70
71
  )
71
72
 
73
+ # Used primarily to map NIST 800-53 Revision 4 Security Controls
74
+ #{self}.security_references
75
+
76
+ # Print the AUTHOR(S) string for this module.
72
77
  #{self}.authors
73
78
  "
79
+ constants.sort
74
80
  end
75
81
  end
76
82
  end
@@ -69,13 +69,19 @@ module PWN
69
69
 
70
70
  public_class_method def self.help
71
71
  puts "USAGE:
72
- sast_arr = #{self}.scan(
73
- :dir_path => 'optional path to dir defaults to .',
74
- :git_repo_root_uri => 'optional http uri of git repo scanned'
72
+ # Run scan and return its result
73
+ #{self}.scan(
74
+ dir_path: 'optional - optional path to dir defaults to .',
75
+ git_repo_root_uri: 'optional - optional http uri of git repo scanned'
75
76
  )
76
77
 
78
+ # Used primarily to map NIST 800-53 Revision 4 Security Controls
79
+ #{self}.security_references
80
+
81
+ # Print the AUTHOR(S) string for this module.
77
82
  #{self}.authors
78
83
  "
84
+ constants.sort
79
85
  end
80
86
  end
81
87
  end
@@ -69,13 +69,19 @@ module PWN
69
69
 
70
70
  public_class_method def self.help
71
71
  puts "USAGE:
72
- sast_arr = #{self}.scan(
73
- :dir_path => 'optional path to dir defaults to .',
74
- :git_repo_root_uri => 'optional http uri of git repo scanned'
72
+ # :dir_path => optional path to dir defaults to .
73
+ #{self}.scan(
74
+ dir_path: 'optional - dir path value consumed by #scan',
75
+ git_repo_root_uri: 'optional - git repo root uri value consumed by #scan'
75
76
  )
76
77
 
78
+ # Used primarily to map NIST 800-53 Revision 4 Security Controls
79
+ #{self}.security_references
80
+
81
+ # Print the AUTHOR(S) string for this module.
77
82
  #{self}.authors
78
83
  "
84
+ constants.sort
79
85
  end
80
86
  end
81
87
  end
@@ -63,13 +63,19 @@ module PWN
63
63
 
64
64
  public_class_method def self.help
65
65
  puts "USAGE:
66
- sast_arr = #{self}.scan(
67
- dir_path: 'optional path to dir defaults to .',
68
- git_repo_root_uri: 'optional http uri of git repo scanned'
66
+ # Run scan and return its result
67
+ #{self}.scan(
68
+ dir_path: 'optional - optional path to dir defaults to .',
69
+ git_repo_root_uri: 'optional - optional http uri of git repo scanned'
69
70
  )
70
71
 
72
+ # Used primarily to map NIST 800-53 Revision 4 Security Controls
73
+ #{self}.security_references
74
+
75
+ # Print the AUTHOR(S) string for this module.
71
76
  #{self}.authors
72
77
  "
78
+ constants.sort
73
79
  end
74
80
  end
75
81
  end
@@ -62,13 +62,19 @@ module PWN
62
62
 
63
63
  public_class_method def self.help
64
64
  puts "USAGE:
65
- sast_arr = #{self}.scan(
66
- dir_path: 'optional path to dir defaults to .',
67
- git_repo_root_uri: 'optional http uri of git repo scanned'
65
+ # Run scan and return its result
66
+ #{self}.scan(
67
+ dir_path: 'optional - optional path to dir defaults to .',
68
+ git_repo_root_uri: 'optional - optional http uri of git repo scanned'
68
69
  )
69
70
 
71
+ # Used primarily to map NIST 800-53 Revision 4 Security Controls
72
+ #{self}.security_references
73
+
74
+ # Print the AUTHOR(S) string for this module.
70
75
  #{self}.authors
71
76
  "
77
+ constants.sort
72
78
  end
73
79
  end
74
80
  end
data/lib/pwn/sast.rb CHANGED
@@ -67,6 +67,10 @@ module PWN
67
67
  end
68
68
 
69
69
  public_class_method def self.help
70
+ puts "USAGE:
71
+ # Display a List of Every PWN::SAST Module
72
+ #{self}.authors
73
+ "
70
74
  constants.sort
71
75
  end
72
76
  end
@@ -252,18 +252,49 @@ module PWN
252
252
  # Display Usage for this Module
253
253
 
254
254
  public_class_method def self.help
255
- puts "USAGE (true-air I/Q via PWN::FFI + detector fallback):
255
+ puts "USAGE:
256
+ # Run crc24 and return its result
257
+ #{self}.crc24(
258
+ bits: 'optional - bits value consumed by #crc24 (defaults to [])'
259
+ )
260
+
261
+ # Run crc ok and return its result
262
+ #{self}.crc_ok?(
263
+ bits: 'optional - bits value consumed by #crc_ok? (defaults to [])'
264
+ )
265
+
266
+ # Run decode modes and return its result
267
+ #{self}.decode_modes(
268
+ bits: 'optional - bits value consumed by #decode_modes (defaults to [])'
269
+ )
270
+
271
+ # Run ais char and return its result
272
+ #{self}.ais_char(
273
+ code: 'optional - code value consumed by #ais_char'
274
+ )
275
+
276
+ # Run modes altitude and return its result
277
+ #{self}.modes_altitude(
278
+ bits12: 'optional - bits12 value consumed by #modes_altitude'
279
+ )
280
+
281
+ # Run decode and return its result
256
282
  #{self}.decode(
257
283
  freq_obj: 'required - freq_obj returned from PWN::SDR::GQRX.init_freq',
258
- source: 'optional - :auto|:rtlsdr|:adalm_pluto|:file',
259
- file: 'optional - .cu8/.cs16 capture at ≥2 Msps'
284
+ sample_rate: 'optional - sample rate value consumed by #decode',
285
+ source: 'optional - source value consumed by #decode',
286
+ file: 'optional - filesystem path'
260
287
  )
261
288
 
262
- #{self}.decode_modes(bits: [0,1,...]) # 56/112 Mode-S bits
263
- #{self}.parse_line(line: 'MSG,3,1,1,ABCDEF,1,...')
289
+ # Run parse line and return its result
290
+ #{self}.parse_line(
291
+ line: 'optional - line value consumed by #parse_line'
292
+ )
264
293
 
294
+ # Print the AUTHOR(S) string for this module.
265
295
  #{self}.authors
266
296
  "
297
+ constants.sort
267
298
  end
268
299
  end
269
300
  end
@@ -132,17 +132,20 @@ module PWN
132
132
  # Display Usage for this Module
133
133
 
134
134
  public_class_method def self.help
135
- puts "USAGE (ruby-native, no external binaries):
135
+ puts "USAGE:
136
+ # Run decode and return its result
136
137
  #{self}.decode(
137
- freq_obj: 'required - freq_obj returned from PWN::SDR::GQRX.init_freq'
138
+ freq_obj: 'required - freq_obj returned from PWN::SDR::GQRX.init_freq',
139
+ source: 'optional - source value consumed by #decode',
140
+ file: 'optional - filesystem path',
141
+ out_path: 'optional - out path value consumed by #decode',
142
+ sample_rate: 'optional - sample rate value consumed by #decode'
138
143
  )
139
144
 
140
- NOTE: Set GQRX to WFM (mono), ~34 kHz filter. Writes an 8-bit
141
- greyscale Netpbm P5 image to /tmp/apt_<ts>.pgm every 10 s
142
- of received pass. Both A/B channels are in one strip.
143
-
145
+ # Print the AUTHOR(S) string for this module.
144
146
  #{self}.authors
145
147
  "
148
+ constants.sort
146
149
  end
147
150
  end
148
151
  end