hardsploit_gui 2.3 → 2.4.0

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 (149) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +22 -22
  3. data/Rakefile +1 -1
  4. data/bin/hardsploit_gui +3 -3
  5. data/lib/Firmwares/FPGA/I2C/I2C_INTERACT/HARDSPLOIT_FIRMWARE_FPGA_I2C_INTERACT.rpd +0 -0
  6. data/lib/Firmwares/FPGA/PARALLEL/NO_MUX_PARALLEL_MEMORY/HARDSPLOIT_FIRMWARE_FPGA_NO_MUX_PARALLEL_MEMORY.rpd +0 -0
  7. data/lib/Firmwares/FPGA/SPI/SPI_INTERACT/HARDSPLOIT_FIRMWARE_FPGA_SPI_INTERACT.rpd +0 -0
  8. data/lib/Firmwares/FPGA/SPI/SPI_SNIFFER/HARDSPLOIT_FIRMWARE_FPGA_SPI_SNIFFER.rpd +0 -0
  9. data/lib/Firmwares/FPGA/SWD/SWD_INTERACT/HARDSPLOIT_FIRMWARE_FPGA_SWD_INTERACT.rpd +0 -0
  10. data/lib/Firmwares/FPGA/UART/UART_INTERACT/HARDSPLOIT_FIRMWARE_FPGA_UART_INTERACT.rpd +0 -0
  11. data/lib/Firmwares/FPGA/VersionFPGA.rb +5 -5
  12. data/lib/Firmwares/UC/VersionUC.rb +12 -12
  13. data/lib/HardsploitAPI/Core/HardsploitAPI.rb +210 -210
  14. data/lib/HardsploitAPI/Core/HardsploitAPI_CONSTANT.rb +150 -150
  15. data/lib/HardsploitAPI/Core/HardsploitAPI_ERROR.rb +109 -109
  16. data/lib/HardsploitAPI/Core/HardsploitAPI_FIRMWARE.rb +305 -305
  17. data/lib/HardsploitAPI/Core/HardsploitAPI_PROGRESS.rb +28 -28
  18. data/lib/HardsploitAPI/Core/HardsploitAPI_USB_COMMUNICATION.rb +166 -166
  19. data/lib/HardsploitAPI/Modules/I2C/HardsploitAPI_I2C.rb +356 -356
  20. data/lib/HardsploitAPI/Modules/NO_MUX_PARALLEL_MEMORY/HardsploitAPI_NO_MUX_PARALLEL_MEMORY.rb +206 -206
  21. data/lib/HardsploitAPI/Modules/NRF24L01/HardsploitAPI_NRF24L01.rb +306 -306
  22. data/lib/HardsploitAPI/Modules/SPI/HardsploitAPI_SPI.rb +340 -340
  23. data/lib/HardsploitAPI/Modules/SPI_SNIFFER/HardsploitAPI_SPI_SNIFFER.rb +83 -83
  24. data/lib/HardsploitAPI/Modules/SWD/HardsploitAPI_SWD.rb +367 -367
  25. data/lib/HardsploitAPI/Modules/SWD/HardsploitAPI_SWD_DEBUG.rb +89 -89
  26. data/lib/HardsploitAPI/Modules/SWD/HardsploitAPI_SWD_MEM_AP.rb +61 -61
  27. data/lib/HardsploitAPI/Modules/SWD/HardsploitAPI_SWD_STM32.rb +121 -121
  28. data/lib/HardsploitAPI/Modules/TEST/HardsploitAPI_TEST_INTERACT.rb +98 -98
  29. data/lib/HardsploitAPI/Modules/UART/HardsploitAPI_UART.rb +196 -196
  30. data/lib/Hardsploit_gui.rb +96 -96
  31. data/lib/LICENSE.txt +674 -674
  32. data/lib/README.md +22 -22
  33. data/lib/TRADEMARK +2 -2
  34. data/lib/class/Chip_editor.rb +304 -304
  35. data/lib/class/Chip_management.rb +496 -496
  36. data/lib/class/Command_editor.rb +216 -216
  37. data/lib/class/Command_table.rb +233 -233
  38. data/lib/class/Console.rb +26 -26
  39. data/lib/class/ErrorMsg.rb +312 -312
  40. data/lib/class/Export.rb +140 -140
  41. data/lib/class/Export_manager.rb +124 -124
  42. data/lib/class/Firmware.rb +70 -70
  43. data/lib/class/Generic_commands.rb +260 -260
  44. data/lib/class/{i2c → I2C}/I2c_command.rb +51 -51
  45. data/lib/class/{i2c → I2C}/I2c_export.rb +95 -95
  46. data/lib/class/{i2c → I2C}/I2c_import.rb +117 -117
  47. data/lib/class/{i2c → I2C}/I2c_scanner.rb +114 -114
  48. data/lib/class/{i2c → I2C}/I2c_settings.rb +148 -148
  49. data/lib/class/Import.rb +193 -193
  50. data/lib/class/{parallel → PARALLEL}/Parallel_export.rb +118 -118
  51. data/lib/class/{parallel → PARALLEL}/Parallel_import.rb +113 -113
  52. data/lib/class/{parallel → PARALLEL}/Parallel_settings.rb +81 -81
  53. data/lib/class/Progress_bar.rb +32 -32
  54. data/lib/class/{spi → SPI}/Spi_export.rb +108 -108
  55. data/lib/class/{spi → SPI}/Spi_import.rb +159 -159
  56. data/lib/class/{spi → SPI}/Spi_settings.rb +108 -108
  57. data/lib/class/{spi → SPI}/Spi_sniffer.rb +101 -101
  58. data/lib/class/Signal_mapper.rb +120 -120
  59. data/lib/class/Wire_helper.rb +230 -230
  60. data/lib/class/swd/Swd.rb +125 -125
  61. data/lib/class/swd/Swd_scanner.rb +121 -121
  62. data/lib/class/swd/Swd_settings.rb +76 -76
  63. data/lib/class/uart/Uart_baudrate.rb +62 -62
  64. data/lib/class/uart/Uart_console.rb +115 -115
  65. data/lib/class/uart/Uart_settings.rb +102 -102
  66. data/lib/db/associations.rb +138 -138
  67. data/lib/db/database.rb +4 -4
  68. data/lib/db/development.sqlite3 +0 -0
  69. data/lib/db/migrate/004_create_manufacturers.rb +13 -13
  70. data/lib/db/migrate/005_create_packages.rb +13 -13
  71. data/lib/db/migrate/006_create_chip_types.rb +11 -11
  72. data/lib/db/migrate/007_create_buses.rb +11 -11
  73. data/lib/db/migrate/008_create_signals.rb +14 -14
  74. data/lib/db/migrate/009_create_chips.rb +25 -25
  75. data/lib/db/migrate/010_create_commands.rb +21 -21
  76. data/lib/db/migrate/011_create_bytes.rb +19 -19
  77. data/lib/db/migrate/012_create_i2c_settings.rb +21 -21
  78. data/lib/db/migrate/013_create_spi_settings.rb +26 -26
  79. data/lib/db/migrate/014_create_parallel_settings.rb +21 -21
  80. data/lib/db/migrate/015_create_pins.rb +19 -19
  81. data/lib/db/migrate/016_create_uses.rb +17 -17
  82. data/lib/db/migrate/017_create_swd_settings.rb +19 -19
  83. data/lib/db/migrate/018_create_uart_settings.rb +22 -22
  84. data/lib/db/schema.rb +157 -157
  85. data/lib/db/seeds.rb +161 -161
  86. data/lib/gui/gui_chip_editor.rb +349 -349
  87. data/lib/gui/gui_chip_management.rb +377 -377
  88. data/lib/gui/gui_command_editor.rb +219 -219
  89. data/lib/gui/gui_export.rb +132 -132
  90. data/lib/gui/gui_export_manager.rb +93 -93
  91. data/lib/gui/gui_generic_commands.rb +202 -202
  92. data/lib/gui/gui_generic_export.rb +164 -164
  93. data/lib/gui/gui_generic_import.rb +142 -142
  94. data/lib/gui/gui_i2c_command.rb +116 -116
  95. data/lib/gui/gui_i2c_settings.rb +230 -230
  96. data/lib/gui/gui_import.rb +131 -131
  97. data/lib/gui/gui_parallel_settings.rb +195 -195
  98. data/lib/gui/gui_progress_bar.rb +85 -85
  99. data/lib/gui/gui_signal_mapper.rb +121 -121
  100. data/lib/gui/gui_signal_scanner.rb +146 -146
  101. data/lib/gui/gui_spi_import.rb +126 -126
  102. data/lib/gui/gui_spi_settings.rb +313 -313
  103. data/lib/gui/gui_spi_sniffer.rb +112 -112
  104. data/lib/gui/gui_swd_settings.rb +166 -166
  105. data/lib/gui/gui_uart_baudrate.rb +114 -114
  106. data/lib/gui/gui_uart_console.rb +164 -164
  107. data/lib/gui/gui_uart_settings.rb +243 -243
  108. data/lib/gui/gui_wire_helper.rb +99 -99
  109. data/lib/gui_designer/gui_chip_editor.ui +549 -549
  110. data/lib/gui_designer/gui_chip_management.ui +886 -886
  111. data/lib/gui_designer/gui_command_editor.ui +350 -350
  112. data/lib/gui_designer/gui_export.ui +171 -171
  113. data/lib/gui_designer/gui_export_manager.ui +115 -115
  114. data/lib/gui_designer/gui_generic_commands.ui +342 -342
  115. data/lib/gui_designer/gui_generic_export.ui +202 -202
  116. data/lib/gui_designer/gui_generic_import.ui +165 -165
  117. data/lib/gui_designer/gui_i2c_command.ui +148 -148
  118. data/lib/gui_designer/gui_i2c_settings.ui +292 -292
  119. data/lib/gui_designer/gui_import.ui +168 -168
  120. data/lib/gui_designer/gui_parallel_settings.ui +247 -247
  121. data/lib/gui_designer/gui_progress_bar.ui +86 -86
  122. data/lib/gui_designer/gui_signal_mapper.ui +179 -179
  123. data/lib/gui_designer/gui_signal_scanner.ui +261 -261
  124. data/lib/gui_designer/gui_spi_settings.ui +446 -446
  125. data/lib/gui_designer/gui_spi_sniffer.ui +156 -156
  126. data/lib/gui_designer/gui_swd_settings.ui +189 -189
  127. data/lib/gui_designer/gui_uart_baudrate.ui +161 -161
  128. data/lib/gui_designer/gui_uart_console.ui +284 -284
  129. data/lib/gui_designer/gui_uart_settings.ui +280 -280
  130. data/lib/gui_designer/gui_wire_helper.ui +117 -117
  131. data/lib/images/search.png +0 -0
  132. data/lib/logs/error.log +0 -63
  133. data/lib/models/bus.rb +19 -19
  134. data/lib/models/byte.rb +29 -29
  135. data/lib/models/chip.rb +41 -41
  136. data/lib/models/chip_type.rb +14 -14
  137. data/lib/models/command.rb +20 -20
  138. data/lib/models/i2c_setting.rb +41 -41
  139. data/lib/models/manufacturer.rb +14 -14
  140. data/lib/models/package.rb +26 -26
  141. data/lib/models/parallel_setting.rb +37 -37
  142. data/lib/models/pin.rb +14 -14
  143. data/lib/models/signall.rb +20 -20
  144. data/lib/models/spi_setting.rb +67 -67
  145. data/lib/models/swd_setting.rb +25 -25
  146. data/lib/models/uart_setting.rb +52 -52
  147. data/lib/models/use.rb +6 -6
  148. data/lib/startHardsploit.rb +10 -10
  149. metadata +14 -14
@@ -1,102 +1,102 @@
1
- #===================================================
2
- # Hardsploit GUI - By Opale Security
3
- # www.opale-security.com || www.hardsploit.io
4
- # License: GNU General Public License v3
5
- # License URI: http://www.gnu.org/licenses/gpl.txt
6
- #===================================================
7
-
8
- require_relative '../../gui/gui_uart_settings'
9
- class Uart_settings < Qt::Widget
10
- slots 'save_settings()'
11
- slots 'autodetect()'
12
-
13
- def initialize(chip)
14
- super()
15
- @view = Ui_Uart_settings.new
16
- centerWindow(self)
17
- @view.setupUi(self)
18
- @view.lbl_chip.setText(chip.reference)
19
- inputRestrict(@view.lie_baud_rate, 0)
20
- inputRestrict(@view.lie_idle_line_lvl, 0)
21
- inputRestrict(@view.lie_parity_bit, 0)
22
- inputRestrict(@view.lie_parity_type, 0)
23
- inputRestrict(@view.lie_stop_bits_nbr, 0)
24
- inputRestrict(@view.lie_word_size, 0)
25
- @chip = chip
26
- feed_settings_form unless chip.uart_setting.nil?
27
- end
28
-
29
- def save_settings
30
- @chip.uart_setting.nil? ? create : update
31
- @chip.reload
32
- rescue Exception => msg
33
- ErrorMsg.new.unknown(msg)
34
- end
35
-
36
- def feed_settings_form
37
- @view.lie_baud_rate.setText(@chip.uart_setting.baud_rate.to_s)
38
- @view.lie_idle_line_lvl.setText(@chip.uart_setting.idle_line.to_s)
39
- @view.lie_parity_bit.setText(@chip.uart_setting.parity_bit.to_s)
40
- @view.lie_parity_type.setText(@chip.uart_setting.parity_type.to_s)
41
- @view.lie_stop_bits_nbr.setText(@chip.uart_setting.stop_bits_nbr.to_s)
42
- @view.lie_word_size.setText(@chip.uart_setting.word_size.to_s)
43
- @view.rbn_cr.setChecked(true) if @chip.uart_setting.return_type == 0
44
- @view.rbn_lf.setChecked(true) if @chip.uart_setting.return_type == 1
45
- @view.rbn_both.setChecked(true) if @chip.uart_setting.return_type == 2
46
- rescue Exception => msg
47
- ErrorMsg.new.unknown(msg)
48
- end
49
-
50
- def create
51
- chip_settings = UartSetting.create(
52
- baud_rate: @view.lie_baud_rate.text.to_i,
53
- idle_line: @view.lie_idle_line_lvl.text.to_i,
54
- parity_bit: @view.lie_parity_bit.text.to_i,
55
- parity_type: @view.lie_parity_type.text.to_i,
56
- stop_bits_nbr: @view.lie_stop_bits_nbr.text.to_i,
57
- word_size: @view.lie_word_size.text.to_i,
58
- return_type: get_return_type,
59
- chip_id: @chip.id
60
- )
61
- unless check_for_errors(chip_settings)
62
- Qt::MessageBox.new(
63
- Qt::MessageBox::Information,
64
- 'Succes',
65
- 'UART settings saved'
66
- ).exec
67
- close
68
- end
69
- end
70
-
71
- def update
72
- @chip.uart_setting.update(
73
- baud_rate: @view.lie_baud_rate.text.to_i,
74
- idle_line: @view.lie_idle_line_lvl.text.to_i,
75
- parity_bit: @view.lie_parity_bit.text.to_i,
76
- parity_type: @view.lie_parity_type.text.to_i,
77
- stop_bits_nbr: @view.lie_stop_bits_nbr.text.to_i,
78
- word_size: @view.lie_word_size.text.to_i,
79
- return_type: get_return_type
80
- )
81
- unless check_for_errors(@chip.uart_setting)
82
- Qt::MessageBox.new(
83
- Qt::MessageBox::Information,
84
- 'Succes',
85
- 'UART settings updated'
86
- ).exec
87
- close
88
- end
89
- end
90
-
91
- def get_return_type
92
- return 0 if @view.rbn_cr.isChecked
93
- return 1 if @view.rbn_lf.isChecked
94
- return 2 if @view.rbn_both.isChecked
95
- end
96
-
97
- def autodetect
98
- baudUART = Uart_baudrate.new(@view)
99
- baudUART.setWindowModality(Qt::ApplicationModal)
100
- baudUART.show
101
- end
102
- end
1
+ #===================================================
2
+ # Hardsploit GUI - By Opale Security
3
+ # www.opale-security.com || www.hardsploit.io
4
+ # License: GNU General Public License v3
5
+ # License URI: http://www.gnu.org/licenses/gpl.txt
6
+ #===================================================
7
+
8
+ require_relative '../../gui/gui_uart_settings'
9
+ class Uart_settings < Qt::Widget
10
+ slots 'save_settings()'
11
+ slots 'autodetect()'
12
+
13
+ def initialize(chip)
14
+ super()
15
+ @view = Ui_Uart_settings.new
16
+ centerWindow(self)
17
+ @view.setupUi(self)
18
+ @view.lbl_chip.setText(chip.reference)
19
+ inputRestrict(@view.lie_baud_rate, 0)
20
+ inputRestrict(@view.lie_idle_line_lvl, 0)
21
+ inputRestrict(@view.lie_parity_bit, 0)
22
+ inputRestrict(@view.lie_parity_type, 0)
23
+ inputRestrict(@view.lie_stop_bits_nbr, 0)
24
+ inputRestrict(@view.lie_word_size, 0)
25
+ @chip = chip
26
+ feed_settings_form unless chip.uart_setting.nil?
27
+ end
28
+
29
+ def save_settings
30
+ @chip.uart_setting.nil? ? create : update
31
+ @chip.reload
32
+ rescue Exception => msg
33
+ ErrorMsg.new.unknown(msg)
34
+ end
35
+
36
+ def feed_settings_form
37
+ @view.lie_baud_rate.setText(@chip.uart_setting.baud_rate.to_s)
38
+ @view.lie_idle_line_lvl.setText(@chip.uart_setting.idle_line.to_s)
39
+ @view.lie_parity_bit.setText(@chip.uart_setting.parity_bit.to_s)
40
+ @view.lie_parity_type.setText(@chip.uart_setting.parity_type.to_s)
41
+ @view.lie_stop_bits_nbr.setText(@chip.uart_setting.stop_bits_nbr.to_s)
42
+ @view.lie_word_size.setText(@chip.uart_setting.word_size.to_s)
43
+ @view.rbn_cr.setChecked(true) if @chip.uart_setting.return_type == 0
44
+ @view.rbn_lf.setChecked(true) if @chip.uart_setting.return_type == 1
45
+ @view.rbn_both.setChecked(true) if @chip.uart_setting.return_type == 2
46
+ rescue Exception => msg
47
+ ErrorMsg.new.unknown(msg)
48
+ end
49
+
50
+ def create
51
+ chip_settings = UartSetting.create(
52
+ baud_rate: @view.lie_baud_rate.text.to_i,
53
+ idle_line: @view.lie_idle_line_lvl.text.to_i,
54
+ parity_bit: @view.lie_parity_bit.text.to_i,
55
+ parity_type: @view.lie_parity_type.text.to_i,
56
+ stop_bits_nbr: @view.lie_stop_bits_nbr.text.to_i,
57
+ word_size: @view.lie_word_size.text.to_i,
58
+ return_type: get_return_type,
59
+ chip_id: @chip.id
60
+ )
61
+ unless check_for_errors(chip_settings)
62
+ Qt::MessageBox.new(
63
+ Qt::MessageBox::Information,
64
+ 'Succes',
65
+ 'UART settings saved'
66
+ ).exec
67
+ close
68
+ end
69
+ end
70
+
71
+ def update
72
+ @chip.uart_setting.update(
73
+ baud_rate: @view.lie_baud_rate.text.to_i,
74
+ idle_line: @view.lie_idle_line_lvl.text.to_i,
75
+ parity_bit: @view.lie_parity_bit.text.to_i,
76
+ parity_type: @view.lie_parity_type.text.to_i,
77
+ stop_bits_nbr: @view.lie_stop_bits_nbr.text.to_i,
78
+ word_size: @view.lie_word_size.text.to_i,
79
+ return_type: get_return_type
80
+ )
81
+ unless check_for_errors(@chip.uart_setting)
82
+ Qt::MessageBox.new(
83
+ Qt::MessageBox::Information,
84
+ 'Succes',
85
+ 'UART settings updated'
86
+ ).exec
87
+ close
88
+ end
89
+ end
90
+
91
+ def get_return_type
92
+ return 0 if @view.rbn_cr.isChecked
93
+ return 1 if @view.rbn_lf.isChecked
94
+ return 2 if @view.rbn_both.isChecked
95
+ end
96
+
97
+ def autodetect
98
+ baudUART = Uart_baudrate.new(@view)
99
+ baudUART.setWindowModality(Qt::ApplicationModal)
100
+ baudUART.show
101
+ end
102
+ end
@@ -1,138 +1,138 @@
1
- #===================================================
2
- # Hardsploit GUI - By Opale Security
3
- # www.opale-security.com || www.hardsploit.io
4
- # License: GNU General Public License v3
5
- # License URI: http://www.gnu.org/licenses/gpl.txt
6
- #===================================================
7
-
8
- require 'sqlite3'
9
- require 'active_record'
10
-
11
- ActiveRecord::Base.establish_connection(
12
- :adapter => 'sqlite3',
13
- :database => File.expand_path(File.dirname(__FILE__)) + '/hs.db'
14
- )
15
-
16
- class Package < ActiveRecord::Base
17
- self.table_name = "HS_PACKAGES"
18
- validates :package_name, uniqueness: true
19
- has_many :chips,
20
- foreign_key: "chip_package",
21
- :dependent => :destroy
22
- end
23
-
24
- class Manufacturer < ActiveRecord::Base
25
- self.table_name = "HS_MANUFACTURERS"
26
- validates :manufacturer_name, uniqueness: true
27
- has_many :chips,
28
- foreign_key: "chip_manufacturer",
29
- :dependent => :destroy
30
- end
31
-
32
- class CType < ActiveRecord::Base
33
- self.table_name = "HS_CHIP_TYPES"
34
- validates :cType_name, uniqueness: true
35
- has_many :chips,
36
- foreign_key: "chip_type",
37
- :dependent => :destroy
38
- end
39
-
40
- class Chip < ActiveRecord::Base
41
- self.table_name = "HS_CHIPS"
42
- belongs_to :package,
43
- foreign_key: "chip_package"
44
- belongs_to :manufacturer,
45
- foreign_key: "chip_manufacturer"
46
- belongs_to :ctype,
47
- class_name: "CType",
48
- foreign_key: "chip_type"
49
- has_many :pins,
50
- foreign_key: "pin_chip",
51
- :dependent => :destroy
52
- has_many :cmds,
53
- foreign_key: "cmd_chip",
54
- :dependent => :destroy
55
- has_many :parallel,
56
- foreign_key: "parallel_chip",
57
- :dependent => :destroy
58
- has_many :spi,
59
- foreign_key: "spi_chip",
60
- :dependent => :destroy
61
- has_many :I2C,
62
- foreign_key: "i2c_chip",
63
- :dependent => :destroy
64
- end
65
-
66
- class Parallel < ActiveRecord::Base
67
- self.table_name = "HS_PARALLEL_SETTINGS"
68
- belongs_to :chip,
69
- class_name: "Chip",
70
- foreign_key: "parallel_chip"
71
- end
72
-
73
- class Spi < ActiveRecord::Base
74
- self.table_name = "HS_SPI_SETTINGS"
75
- belongs_to :chip,
76
- class_name: "Chip",
77
- foreign_key: "spi_chip"
78
- end
79
-
80
- class I2C < ActiveRecord::Base
81
- self.table_name = "HS_I2C_SETTINGS"
82
- belongs_to :chip,
83
- class_name: "Chip",
84
- foreign_key: "i2c_chip"
85
- end
86
-
87
- class Pin < ActiveRecord::Base
88
- self.table_name = "HS_PINS"
89
- belongs_to :chip
90
- belongs_to :signall,
91
- class_name: "Signall",
92
- foreign_key: "pin_signal"
93
- end
94
-
95
- class Signall < ActiveRecord::Base
96
- self.table_name = "HS_SIGNALS"
97
- has_many :uses,
98
- class_name: "Use",
99
- foreign_key: "signal_id"
100
- has_many :buses, through: :uses
101
- has_many :pins
102
- end
103
-
104
- class Use < ActiveRecord::Base
105
- self.table_name = "HS_USES"
106
- belongs_to :signall,
107
- class_name: "Signall",
108
- foreign_key: "signal_id"
109
- belongs_to :bus,
110
- class_name: "Bus",
111
- foreign_key: "bus_id"
112
- end
113
-
114
- class Bus < ActiveRecord::Base
115
- self.table_name = "HS_BUSES"
116
- has_many :signalls, through: :uses
117
- has_many :cmds
118
- end
119
-
120
- class Cmd < ActiveRecord::Base
121
- self.table_name = "HS_COMMANDS"
122
- has_many :bytes,
123
- foreign_key: "byte_cmd",
124
- :dependent => :destroy
125
- belongs_to :bus,
126
- class_name: "Bus",
127
- foreign_key: "cmd_bus"
128
- belongs_to :chip,
129
- class_name: "Chip",
130
- foreign_key: "cmd_chip"
131
- end
132
-
133
- class Byte < ActiveRecord::Base
134
- self.table_name = "HS_CMD_BYTES"
135
- belongs_to :cmd,
136
- class_name: "Cmd",
137
- foreign_key: "byte_cmd"
138
- end
1
+ #===================================================
2
+ # Hardsploit GUI - By Opale Security
3
+ # www.opale-security.com || www.hardsploit.io
4
+ # License: GNU General Public License v3
5
+ # License URI: http://www.gnu.org/licenses/gpl.txt
6
+ #===================================================
7
+
8
+ require 'sqlite3'
9
+ require 'active_record'
10
+
11
+ ActiveRecord::Base.establish_connection(
12
+ :adapter => 'sqlite3',
13
+ :database => File.expand_path(File.dirname(__FILE__)) + '/hs.db'
14
+ )
15
+
16
+ class Package < ActiveRecord::Base
17
+ self.table_name = "HS_PACKAGES"
18
+ validates :package_name, uniqueness: true
19
+ has_many :chips,
20
+ foreign_key: "chip_package",
21
+ :dependent => :destroy
22
+ end
23
+
24
+ class Manufacturer < ActiveRecord::Base
25
+ self.table_name = "HS_MANUFACTURERS"
26
+ validates :manufacturer_name, uniqueness: true
27
+ has_many :chips,
28
+ foreign_key: "chip_manufacturer",
29
+ :dependent => :destroy
30
+ end
31
+
32
+ class CType < ActiveRecord::Base
33
+ self.table_name = "HS_CHIP_TYPES"
34
+ validates :cType_name, uniqueness: true
35
+ has_many :chips,
36
+ foreign_key: "chip_type",
37
+ :dependent => :destroy
38
+ end
39
+
40
+ class Chip < ActiveRecord::Base
41
+ self.table_name = "HS_CHIPS"
42
+ belongs_to :package,
43
+ foreign_key: "chip_package"
44
+ belongs_to :manufacturer,
45
+ foreign_key: "chip_manufacturer"
46
+ belongs_to :ctype,
47
+ class_name: "CType",
48
+ foreign_key: "chip_type"
49
+ has_many :pins,
50
+ foreign_key: "pin_chip",
51
+ :dependent => :destroy
52
+ has_many :cmds,
53
+ foreign_key: "cmd_chip",
54
+ :dependent => :destroy
55
+ has_many :parallel,
56
+ foreign_key: "parallel_chip",
57
+ :dependent => :destroy
58
+ has_many :spi,
59
+ foreign_key: "spi_chip",
60
+ :dependent => :destroy
61
+ has_many :I2C,
62
+ foreign_key: "i2c_chip",
63
+ :dependent => :destroy
64
+ end
65
+
66
+ class Parallel < ActiveRecord::Base
67
+ self.table_name = "HS_PARALLEL_SETTINGS"
68
+ belongs_to :chip,
69
+ class_name: "Chip",
70
+ foreign_key: "parallel_chip"
71
+ end
72
+
73
+ class Spi < ActiveRecord::Base
74
+ self.table_name = "HS_SPI_SETTINGS"
75
+ belongs_to :chip,
76
+ class_name: "Chip",
77
+ foreign_key: "spi_chip"
78
+ end
79
+
80
+ class I2C < ActiveRecord::Base
81
+ self.table_name = "HS_I2C_SETTINGS"
82
+ belongs_to :chip,
83
+ class_name: "Chip",
84
+ foreign_key: "i2c_chip"
85
+ end
86
+
87
+ class Pin < ActiveRecord::Base
88
+ self.table_name = "HS_PINS"
89
+ belongs_to :chip
90
+ belongs_to :signall,
91
+ class_name: "Signall",
92
+ foreign_key: "pin_signal"
93
+ end
94
+
95
+ class Signall < ActiveRecord::Base
96
+ self.table_name = "HS_SIGNALS"
97
+ has_many :uses,
98
+ class_name: "Use",
99
+ foreign_key: "signal_id"
100
+ has_many :buses, through: :uses
101
+ has_many :pins
102
+ end
103
+
104
+ class Use < ActiveRecord::Base
105
+ self.table_name = "HS_USES"
106
+ belongs_to :signall,
107
+ class_name: "Signall",
108
+ foreign_key: "signal_id"
109
+ belongs_to :bus,
110
+ class_name: "Bus",
111
+ foreign_key: "bus_id"
112
+ end
113
+
114
+ class Bus < ActiveRecord::Base
115
+ self.table_name = "HS_BUSES"
116
+ has_many :signalls, through: :uses
117
+ has_many :cmds
118
+ end
119
+
120
+ class Cmd < ActiveRecord::Base
121
+ self.table_name = "HS_COMMANDS"
122
+ has_many :bytes,
123
+ foreign_key: "byte_cmd",
124
+ :dependent => :destroy
125
+ belongs_to :bus,
126
+ class_name: "Bus",
127
+ foreign_key: "cmd_bus"
128
+ belongs_to :chip,
129
+ class_name: "Chip",
130
+ foreign_key: "cmd_chip"
131
+ end
132
+
133
+ class Byte < ActiveRecord::Base
134
+ self.table_name = "HS_CMD_BYTES"
135
+ belongs_to :cmd,
136
+ class_name: "Cmd",
137
+ foreign_key: "byte_cmd"
138
+ end