Compare commits

..

634 Commits
3.0.2 ... 3.4.3

Author SHA1 Message Date
Matt Nadareski
871ac97a3a Bump version 2025-09-29 14:18:10 -04:00
Matt Nadareski
5e11048e18 Remove compiler flags that weren't working 2025-09-29 12:44:52 -04:00
Matt Nadareski
19e696bf15 Use an assumption to help trim for now 2025-09-29 08:33:33 -04:00
Matt Nadareski
ddf8c393df Use AddD reader instead of manual 2025-09-29 08:29:30 -04:00
Matt Nadareski
d234549099 Use constant for AddD 2025-09-29 08:26:37 -04:00
Matt Nadareski
5899dd99f3 Reduce AddD search window 2025-09-29 08:24:08 -04:00
Matt Nadareski
f50f9f741d Update Serialization to 2.0.0 2025-09-29 08:01:50 -04:00
Matt Nadareski
09f5b28de7 More Clickteam notes 2025-09-27 21:34:11 -04:00
Matt Nadareski
f71a007b35 Add notes about Clickteam 2025-09-27 21:02:08 -04:00
Matt Nadareski
d6a89c8905 Partially revert and clarify 2025-09-26 21:45:01 -04:00
Matt Nadareski
1b4f363b08 Couple of PECompact things 2025-09-26 21:41:15 -04:00
Matt Nadareski
8abdaa4218 Add a couple more NSIS notes 2025-09-26 21:35:33 -04:00
Matt Nadareski
454bfa9f4f Check overlay for NSIS 2025-09-26 21:31:59 -04:00
Matt Nadareski
8534cda9c5 Add comment for NSIS 2025-09-26 21:28:37 -04:00
Matt Nadareski
b285127cee Intel Installation Framework is extractable 2025-09-26 21:24:47 -04:00
Matt Nadareski
8a6179ea11 Add newly found Shrinker section name 2025-09-26 20:59:19 -04:00
Matt Nadareski
d07e46c5f7 Add a Gentee note 2025-09-26 20:54:59 -04:00
Matt Nadareski
ee5ed5e833 Add some notes about EXECryptor 2025-09-26 20:51:29 -04:00
Matt Nadareski
7fcdfce152 Add notes about ApecSoft 2025-09-26 20:39:22 -04:00
Matt Nadareski
f1d7ee89cb Remove TODO 2025-09-26 20:05:58 -04:00
Matt Nadareski
1765e4da16 Clean up remarks, add SFX trailing name 2025-09-26 08:35:25 -04:00
Matt Nadareski
2a7455252e Add more Advanced Installer notes 2025-09-25 21:53:19 -04:00
Matt Nadareski
057ce3c4cc Add more Advanced Installer notes 2025-09-25 21:44:08 -04:00
Matt Nadareski
7e7d166ed8 Add note for Advanced Installer 2025-09-25 21:02:54 -04:00
Matt Nadareski
0872e0ff49 Bump version 2025-09-24 13:07:03 -04:00
Matt Nadareski
c0a590db63 Use package-provided IProgress to avoid conflict 2025-09-24 13:06:27 -04:00
Matt Nadareski
50b4eb99e3 Bump version 2025-09-24 12:38:01 -04:00
Matt Nadareski
08a90d52a8 Update packages 2025-09-24 12:14:31 -04:00
Matt Nadareski
d41cd63ad7 Use "proper" namespace since it's public 2025-09-22 21:05:39 -04:00
Matt Nadareski
c12d3fbe15 Progress doesn't need to be hindered 2025-09-22 21:04:17 -04:00
Matt Nadareski
4db1c57830 Internalize Func for .NET Framework 2.0 2025-09-22 21:01:23 -04:00
Matt Nadareski
1e1da59ba0 Bump verison 2025-09-22 09:36:40 -04:00
Matt Nadareski
4a94c80ec1 Move constructor closer to use 2025-09-22 08:58:43 -04:00
Matt Nadareski
cb4c4cb3fb Make exception handling less broad 2025-09-22 08:56:58 -04:00
Matt Nadareski
8008705366 Move BurnOut reference to Special Thanks 2025-09-21 19:01:27 -04:00
Matt Nadareski
20888a22db Unify file endings again 2025-09-21 19:00:36 -04:00
Matt Nadareski
b06512e292 Slight documentation cleanup 2025-09-21 18:59:29 -04:00
Matt Nadareski
18ce24400a Unify file endings again 2025-09-21 18:55:55 -04:00
Matt Nadareski
31d85360e9 These shoutouts have been replaced by references in Models 2025-09-21 17:49:15 -04:00
Matt Nadareski
53c8ec1dcf Whitespace and usings cleanup 2025-09-21 15:30:18 -04:00
Matt Nadareski
c68f126210 How did all of this whitespace slip through? 2025-09-21 15:13:23 -04:00
Matt Nadareski
03016f3399 Try 16 2025-09-21 14:27:35 -04:00
Matt Nadareski
778064b3a5 Remove now-duplicated extensions 2025-09-21 13:32:45 -04:00
Matt Nadareski
4ed619ee30 Update Serialization to 1.9.5 2025-09-21 12:54:25 -04:00
Matt Nadareski
df52d08406 Update readme, remove unused cases 2025-09-21 10:33:32 -04:00
Matt Nadareski
66d48ed1cd Inlclude Serialization directly in ProtectionScan 2025-09-21 10:05:07 -04:00
Matt Nadareski
79680135b7 Update Serialization to 1.9.4 2025-09-21 09:46:47 -04:00
Matt Nadareski
84b9b46744 Set these properties because MPQ is funny like that 2025-09-21 09:39:55 -04:00
Matt Nadareski
33e83b9f52 Try this 2025-09-20 23:24:37 -04:00
Matt Nadareski
57759a3bef Update packages 2025-09-20 22:47:30 -04:00
Matt Nadareski
9caa91736c Add notes to relevant places about entry point 2025-09-20 20:29:57 -04:00
HeroponRikiBestest
3ffbeddcbe Add versioning to FrontLine ProActive (#385)
* Fix version

* sf
2025-09-20 20:00:55 -04:00
Matt Nadareski
6a5afd8d2c Another round of cleanup and normalization 2025-09-20 19:18:08 -04:00
Matt Nadareski
0afd189fe0 Align ContainsSection checks 2025-09-20 18:55:05 -04:00
Matt Nadareski
cc87d44e3f Make packer and protection code more consistent 2025-09-20 18:41:58 -04:00
Matt Nadareski
981a5bb7b5 Introduce OptionalEndsWith 2025-09-20 18:03:09 -04:00
Matt Nadareski
4afea551ba Make packers code more consistent 2025-09-20 17:59:20 -04:00
Matt Nadareski
5f9f21ae14 Replace things that are marked for replacement 2025-09-20 17:48:51 -04:00
Matt Nadareski
4c4c72fd98 Only check one section at a time in RenderWare 2025-09-20 17:42:01 -04:00
Matt Nadareski
821a853975 Use IO extensions where appropriate 2025-09-20 17:40:03 -04:00
Matt Nadareski
34a3050e27 None of this needs to account for nulls 2025-09-20 17:37:59 -04:00
Matt Nadareski
5c1a1364a1 Minor addition of usings 2025-09-20 17:35:31 -04:00
HeroponRikiBestest
d1f1c1f728 Process some extra securom DLLs, PA versioning (#384)
* Process a few extra securom things

* Forgot to remove copy paste

* move out of helper
2025-09-20 17:31:29 -04:00
Matt Nadareski
d969dd691b Remove some unnecessary null handling, use arrays 2025-09-20 17:24:25 -04:00
Matt Nadareski
13e4d86135 Remove one now-invalid NoWarn 2025-09-20 17:18:48 -04:00
Matt Nadareski
d37b400566 These are no longer needed 2025-09-20 17:17:27 -04:00
Matt Nadareski
da4188a49b One more early return 2025-09-20 16:56:41 -04:00
Matt Nadareski
a85998ebf6 Filter out invalid types first 2025-09-20 16:55:54 -04:00
Matt Nadareski
bd934c0af3 Formatting change to match current standards 2025-09-20 16:51:03 -04:00
Matt Nadareski
14dae3dd73 Rearrange code to be safer and more efficient 2025-09-20 16:50:41 -04:00
Matt Nadareski
80cd7dffdb Put these in a region 2025-09-20 16:45:06 -04:00
Matt Nadareski
a0bbd0be32 Tests should care about how many there are 2025-09-20 16:44:09 -04:00
Matt Nadareski
3bd9eadfe2 Add note that most extensions are going away 2025-09-20 16:28:11 -04:00
Matt Nadareski
c537f9dac9 Non-depth constructor unneeded now 2025-09-20 16:24:21 -04:00
Matt Nadareski
64b65b0f59 Initial checkpoint should use depth too 2025-09-20 16:23:59 -04:00
Matt Nadareski
36c858fac1 A couple more debug places to avoid confusion 2025-09-20 16:23:04 -04:00
Matt Nadareski
30361a9af7 This should never have to clear anything 2025-09-20 16:21:12 -04:00
Matt Nadareski
d6708a0cbe Scan even partial extractions, simplify branches 2025-09-20 16:20:17 -04:00
Matt Nadareski
9639f40e55 No reason for these to use inline null checks 2025-09-20 16:15:54 -04:00
Matt Nadareski
7fa41ba945 Revert extra check, forgot about un-wrappered types 2025-09-20 16:13:45 -04:00
Matt Nadareski
e1a659af5f Simplify double assignment 2025-09-20 16:12:21 -04:00
Matt Nadareski
bca5ec48d5 Exit early on invalid wrappers 2025-09-20 16:03:36 -04:00
Matt Nadareski
303fa314e6 Formatting faux pas 2025-09-20 16:01:58 -04:00
Matt Nadareski
cbcc11547c This should have a debug statement too 2025-09-20 16:01:44 -04:00
Matt Nadareski
10286e8380 Use extension for slightly easier reading 2025-09-20 16:00:54 -04:00
Matt Nadareski
a4ddc014ee Better debug logging 2025-09-20 16:00:03 -04:00
Matt Nadareski
61d186cae3 Slight tweak to logic direction and formatting 2025-09-20 15:58:52 -04:00
Matt Nadareski
799489d079 Reduce unnecessary code separation 2025-09-20 15:29:13 -04:00
Matt Nadareski
9eb74a411c SecuROM cleanup 2025-09-20 14:27:28 -04:00
HeroponRikiBestest
f263781250 Add Matroschka processing (#381)
* Make matroschka changes

* Catch some nullable values

* Use var more

* Trim path until models update

* Improve hashing string implementation.

* Change file reading

* change to keep up with serialization

* First round of fixes.

* Reverted to TryGetValue

* Small formatting fixes

* change to packageType

* Fixed glaring oversight on my part

* ungate full output

* *grumble grumble*
2025-09-20 14:22:00 -04:00
Matt Nadareski
6e7ef785ff Fix tests 2025-09-20 11:05:56 -04:00
Matt Nadareski
aef4495168 Update Serialization to 1.9.2 2025-09-20 11:00:09 -04:00
Matt Nadareski
2c0885383e Bound overlay checking in GetV4Version 2025-09-19 11:35:36 -04:00
Matt Nadareski
04355d851a Add SafeDisc 1.35.000 remnants hashes 2025-09-18 13:11:05 -04:00
Matt Nadareski
2cc72e2059 Add a couple ActiveMark notes 2025-09-08 20:10:29 -04:00
Matt Nadareski
6f61ee19b1 Add embedded gzip detection 2025-09-08 20:10:20 -04:00
Matt Nadareski
7784e0cfef Add Zylom Wrapper detection 2025-09-08 19:38:53 -04:00
Matt Nadareski
a55e490e73 Add Reflexive Arcade path checks 2025-09-08 18:46:26 -04:00
Matt Nadareski
d316edf8d0 Be smarter about SecuROM v4 2025-09-08 18:38:12 -04:00
Matt Nadareski
9af871c0ff Search for AddD header in SecuROM 2025-09-08 18:35:21 -04:00
Matt Nadareski
6cb86512c3 Organize StarForce, get rid of all Model calls 2025-09-08 17:58:48 -04:00
Matt Nadareski
d6a3a37d49 Add investigation notes about weird SF version 2025-09-08 17:51:43 -04:00
Matt Nadareski
281e7b419a Fix SF comment 2025-09-08 17:45:20 -04:00
Matt Nadareski
fd6de0d10c Add yuPlay Launcher detection 2025-09-08 17:11:06 -04:00
Matt Nadareski
760434309b Add StarForce Crypto detection (fixes #338) 2025-09-08 17:05:16 -04:00
HeroponRikiBestest
11034a7a7c Move PA Module detection into its own helper method. (#379)
* Move PA Module detection into its own helper method.

* Fix review changes.
2025-09-08 14:57:41 -04:00
HeroponRikiBestest
a76a8d0839 Add check for modified securom product activation. (#372)
* Added check for modified securom product activation. Marked as draft because it relies on a recent infotool fix in order to function properly.

* Fix variable name change post-rebase.

* Use wrapper exporttable, remove unneeded dependancies.
2025-09-08 12:07:43 -04:00
Matt Nadareski
de35586f30 Fix this because I didn't 2025-09-08 11:51:01 -04:00
Matt Nadareski
d29dec3904 Return all detected embedded types 2025-09-08 09:25:45 -04:00
Matt Nadareski
d8b0588d6e Add embedded UHA support 2025-09-08 09:14:22 -04:00
Matt Nadareski
5c7ea889be Add Reflexive Arcade Installer detection (fixes #102) 2025-09-08 08:44:18 -04:00
Matt Nadareski
846000cb3f Include BZip2 and XZ in embedded file checks 2025-09-08 08:30:18 -04:00
Matt Nadareski
d1398791f5 Add Ghost Installer detection (fixes #103) 2025-09-08 08:27:40 -04:00
Matt Nadareski
999c5c473e Fix a couple of formatting inconsistencies 2025-09-08 07:55:13 -04:00
Matt Nadareski
6e334c8770 Add Smart Install Maker detection (fixes #101) 2025-09-08 07:27:26 -04:00
Matt Nadareski
42dd33c8bd Add Create Install 2003 detection, add resource checks (fixes #96) 2025-09-07 21:17:37 -04:00
Matt Nadareski
4420021cbe Add Gentee note 2025-09-07 21:08:17 -04:00
Matt Nadareski
d8049792f1 Add Spoon Installer detection (fixes #98) 2025-09-07 21:07:00 -04:00
Matt Nadareski
86c4639d52 Minor cleanup 2025-09-07 13:04:30 -04:00
Matt Nadareski
abfcc52fd2 Tweak a couple more Uniloc 2025-09-07 12:44:04 -04:00
Matt Nadareski
06f84db092 Add a couple more Uniloc filenames 2025-09-07 12:39:06 -04:00
Matt Nadareski
ef03ca3a03 Undo launch change 2025-09-07 12:36:49 -04:00
Matt Nadareski
28783c83cf Add Hudson huPPPX detection 2025-09-07 12:36:37 -04:00
Matt Nadareski
e497540bdc Add Ubisoft Orbit detection (fixes #316) 2025-09-07 11:41:57 -04:00
Matt Nadareski
7b8c006f4d Add MPRESS detection (fixes #206) 2025-09-07 11:37:09 -04:00
Matt Nadareski
4b697c7d20 Fix inconsistency in interface implementations 2025-09-07 11:15:26 -04:00
Matt Nadareski
bef5749b5e Add PKLITE32 detection (fixes #100) 2025-09-07 11:09:43 -04:00
Matt Nadareski
0d371d0f3c Add GP-Install detection (fixes #99) 2025-09-07 11:04:28 -04:00
Matt Nadareski
fa67d370c0 Add GkWare SFX detection (fixes #97) 2025-09-07 11:00:55 -04:00
Matt Nadareski
a89124883c Add Uniloc SoftAnchor detection (fixes #85) 2025-09-07 10:34:33 -04:00
Matt Nadareski
2690536fda Remove now-unused .gitmodules 2025-09-06 20:15:43 -04:00
Matt Nadareski
8e8c43e304 I like this better 2025-09-06 17:13:59 -04:00
Matt Nadareski
edc32af47c Slight tweak to wording 2025-09-06 17:11:54 -04:00
Matt Nadareski
57685f0682 Protected readonly makes way more sense 2025-09-06 15:49:45 -04:00
Matt Nadareski
dd7f120ddc Add .NET Standard 2.x to builds 2025-09-06 15:38:36 -04:00
Matt Nadareski
16ca7e7920 None of this needs to be public 2025-09-06 15:20:59 -04:00
Matt Nadareski
397294ac63 Remove now-unused compatibility item 2025-09-06 15:18:27 -04:00
Matt Nadareski
1afbd2d484 Options object no longer makes sense 2025-09-06 15:17:33 -04:00
Matt Nadareski
7d39a6165e Take advantage of Impl and make depth incremental 2025-09-06 15:12:51 -04:00
Matt Nadareski
785f5cfde1 Don't expose ProtectionDictionary anymore 2025-09-06 12:55:09 -04:00
Matt Nadareski
f5b1868eec Move some things around 2025-09-06 12:40:06 -04:00
Matt Nadareski
8fedbb8f77 Remove extractable interfaces to avoid conflicts 2025-09-06 12:32:21 -04:00
Matt Nadareski
9af64f23a5 Make AACS a bit easier to follow 2025-09-06 12:20:39 -04:00
Matt Nadareski
3558ceb890 Missed one NE 2025-09-06 11:59:10 -04:00
Matt Nadareski
bd1166cbab Undo the wrapped NE issues 2025-09-06 11:58:04 -04:00
Matt Nadareski
6361398b1b Use extractable wrappers where appropriate 2025-09-06 11:56:46 -04:00
Matt Nadareski
e87a0ff8ec Wrapper-based extractables are now thinner 2025-09-06 11:48:32 -04:00
Matt Nadareski
00db772594 Simplify using new base class 2025-09-06 11:35:37 -04:00
Matt Nadareski
8043201be7 Introduce typed IExtractable 2025-09-06 11:05:47 -04:00
Matt Nadareski
3a5e7004a3 Don't reopen the stream unnecessarily 2025-09-06 10:58:46 -04:00
Matt Nadareski
168231cc94 Don't reinvent the wheel 2025-09-06 10:56:36 -04:00
Matt Nadareski
a11c7dc9d5 Fix tests for file types with default values 2025-09-06 10:51:00 -04:00
Matt Nadareski
038910b744 Remove now-incorrect things from the factory 2025-09-06 10:48:11 -04:00
Matt Nadareski
4d85ba2d31 Only some executables are extractable 2025-09-06 10:46:57 -04:00
Matt Nadareski
46feb3e568 Create wrapper-centric methods 2025-09-06 10:40:26 -04:00
Matt Nadareski
821b91a555 Start making Detectable a bit better 2025-09-06 10:01:09 -04:00
Matt Nadareski
43b3c72a02 Start rearranging things 2025-09-06 09:53:34 -04:00
Matt Nadareski
e9c1e9b7e7 Make these private static 2025-09-06 09:03:35 -04:00
Matt Nadareski
6ea98f5dc4 Consolidate detectable Executable checks 2025-09-06 09:03:05 -04:00
Matt Nadareski
5ef9c4cd8a Remove temporary code 2025-09-06 08:58:35 -04:00
Matt Nadareski
2597575500 Update Nuget packages 2025-09-06 08:49:21 -04:00
Matt Nadareski
523e670cc5 ONE MORE TIME 2025-09-03 11:24:21 -04:00
Matt Nadareski
ed6d3c1f3e NewExecutable is just a magnet for issues 2025-09-03 11:12:36 -04:00
Matt Nadareski
0efc6aef10 This can fail? 2025-09-03 10:51:29 -04:00
Matt Nadareski
b1600ad7d2 Make ReadArbitraryRange safer to handle 2025-09-03 10:41:53 -04:00
Matt Nadareski
6904674785 Temporarily migrate more code 2025-09-03 09:33:44 -04:00
Matt Nadareski
6da9e9c931 Use direct assignment 2025-09-03 09:04:21 -04:00
Matt Nadareski
b4a94cf247 Limit strings to 16KiB 2025-09-03 08:58:48 -04:00
Matt Nadareski
f81e46670a Remove UTF-8 strings from check 2025-09-03 08:42:22 -04:00
Matt Nadareski
cc7040c3cb That were dumb 2025-09-03 08:35:41 -04:00
Matt Nadareski
c70f0d72d2 Downstream potential fixes for testing 2025-09-03 08:35:19 -04:00
Matt Nadareski
d2ed0a822a Clean up configuration files 2025-09-03 08:35:04 -04:00
Matt Nadareski
e21a6e78d7 Smarter executable scanning, maybe 2025-09-02 22:18:42 -04:00
Matt Nadareski
138842318a Let's try to be fancy 2025-09-02 22:04:02 -04:00
Matt Nadareski
e883f0c7d4 Different visual indicator of extracted file scans 2025-09-02 21:52:06 -04:00
Matt Nadareski
03f96238a5 Clean up a couple things that might cause issues? 2025-09-02 21:38:51 -04:00
Matt Nadareski
60cd67e22e Fix executable test 2025-09-02 20:31:30 -04:00
Matt Nadareski
c0e82fa021 Handle extractable executables properly 2025-09-02 20:28:38 -04:00
Matt Nadareski
cc826fdc60 Fix all broken tests from previous update 2025-09-02 20:21:53 -04:00
Matt Nadareski
77ad6e791a The update 2025-09-02 20:18:01 -04:00
Matt Nadareski
55e368e23a Remove ExtractionTool and all references 2025-08-29 14:05:07 -04:00
Matt Nadareski
a82d1e729c Remove vestigial content files 2025-08-28 14:50:23 -04:00
Matt Nadareski
5958dac739 Remove commented code 2025-08-26 06:56:11 -04:00
Matt Nadareski
29bd888052 Order of operations 2025-08-26 06:53:08 -04:00
Matt Nadareski
1b2c62da9a Use file part count, not partial files 2025-08-26 06:41:07 -04:00
Matt Nadareski
c95890aae5 Handle archive parts 2025-08-25 22:20:19 -04:00
Matt Nadareski
58022ec328 Fix MPQ on x64, notes 2025-08-25 21:26:33 -04:00
Matt Nadareski
692da62dee Remove libmspack4n submodule 2025-08-25 20:39:18 -04:00
Matt Nadareski
91aea728ac Weird note, checks out 2025-08-25 13:54:47 -04:00
Matt Nadareski
c408f349fe Add notes about migrated code 2025-08-25 13:50:15 -04:00
Matt Nadareski
de85426f04 Remove restriction from RAR 2025-08-25 13:25:11 -04:00
Matt Nadareski
43649851ca Downstream changes from Serialization for now 2025-08-25 13:24:22 -04:00
Matt Nadareski
9b49f7c597 Add note about upcoming changes 2025-08-23 11:35:27 -04:00
Matt Nadareski
0f186634f2 See which extractors need BOS file types 2025-08-23 11:32:55 -04:00
Matt Nadareski
e24172245e Wise can be NE too 2025-08-23 10:56:50 -04:00
Matt Nadareski
5e40c7a37e Func-y 2025-07-31 14:28:12 -04:00
Matt Nadareski
0bf1be23c4 Remove MinAsyncBridge requirement 2025-07-31 14:21:34 -04:00
Matt Nadareski
06e51247e1 Remove Net35.Actions requirement 2025-07-31 14:15:40 -04:00
Matt Nadareski
251bf9ca6d Order is important 2025-07-31 12:48:48 -04:00
Matt Nadareski
fe5f114290 General cleanup 2025-07-31 12:45:07 -04:00
Matt Nadareski
8f2d20dcfa Fix reference to PE TradeName 2025-07-31 09:26:12 -04:00
Matt Nadareski
8e516f3b6b Sync include debug flag for CFB extraction 2025-07-31 09:19:40 -04:00
Matt Nadareski
ad449c2e33 Exception debugging should use Error stream 2025-07-31 09:14:21 -04:00
Matt Nadareski
ddbd396b6b Use correct mask for v3 CFB files 2025-07-30 16:56:21 -04:00
Matt Nadareski
b2b9083221 Fix DIFAT assumptions for directory entries 2025-07-30 16:28:43 -04:00
Matt Nadareski
d71cb413fd Fix parsing of large DIFAT tables in CFB 2025-07-30 15:46:22 -04:00
Matt Nadareski
8e745db34e Fix MS-CAB block continuation 2025-07-30 15:18:27 -04:00
Matt Nadareski
93a6ab5b19 Fix spanned blocks, previously skipped 2025-07-30 14:54:38 -04:00
Matt Nadareski
edd990bc89 Wrap MS-ZIP compression in case of failure 2025-07-30 14:21:20 -04:00
Matt Nadareski
fb1310a5a9 Move more things in removal region for CFB 2025-07-30 11:38:36 -04:00
Matt Nadareski
a818a8af0a Fix deserialization issue for CFB 2025-07-30 11:36:10 -04:00
Matt Nadareski
589214ea38 Fix most CFB extraction issues, remove OpenMcdf 2025-07-30 11:30:33 -04:00
Matt Nadareski
892fd945bb Reencode string properly 2025-07-30 08:20:00 -04:00
Matt Nadareski
7a72961ee5 Add removal notes for CFB helpers 2025-07-30 08:11:00 -04:00
Matt Nadareski
b745038829 Update some nuget packages (non-ST) 2025-07-29 21:59:51 -04:00
Matt Nadareski
58b5b5228a Normalize extraction methods 2025-07-29 21:31:35 -04:00
Matt Nadareski
0725f4ba0f Use Serialization implementation of BFPK extraction 2025-07-29 20:35:06 -04:00
Matt Nadareski
6e0063cd1f More graceful handling of MS-CAB sets 2025-07-29 11:48:28 -04:00
Matt Nadareski
78373dd620 Split out MS-ZIP handling for cleaner code 2025-07-29 11:38:30 -04:00
Matt Nadareski
fa74963a75 Only derive the compression type once per folder 2025-07-29 11:26:28 -04:00
Matt Nadareski
7331f8f576 Remove redundant check 2025-07-29 08:30:40 -04:00
Matt Nadareski
6f4e7138fb Split out MS-CAB ExtractFile logic 2025-07-29 08:28:37 -04:00
Matt Nadareski
28b2eaa029 Fix assumption about MS-CAB sets 2025-07-29 08:03:33 -04:00
Matt Nadareski
0585f0a3cb Temproarily port MS-CAB extract code back from Serialization 2025-07-28 21:41:35 -04:00
Matt Nadareski
12e8349ab1 Pad short MS-ZIP blocks 2025-07-28 16:28:13 -04:00
Matt Nadareski
3c05bece9e Better message 2025-07-28 16:14:29 -04:00
Matt Nadareski
dc1944b768 Add tracking for MS-ZIP issues 2025-07-28 16:11:08 -04:00
Matt Nadareski
fd489c5b46 Fix incorrect spacing 2025-07-28 15:24:06 -04:00
Matt Nadareski
7ce4c252e2 Add notes about ported methods 2025-07-28 15:22:47 -04:00
Matt Nadareski
d54c88a01d Don't use MemoryStream.ToArray 2025-07-28 15:16:57 -04:00
Matt Nadareski
6a4d5bddeb Ensure memory streams are scoped in MS-CAB 2025-07-28 15:13:38 -04:00
Matt Nadareski
aca01e2058 Fix(?) Windows-only path for MS-CAB 2025-07-28 14:31:48 -04:00
Matt Nadareski
e93bab29fa Fix output path issues for MS-CAB 2025-07-28 14:26:13 -04:00
Matt Nadareski
ca87c48cd7 Fix issue with determining compression type in MS-CAB 2025-07-28 14:26:03 -04:00
Matt Nadareski
0d215d0817 Enhance GetDataBlocks 2025-07-28 14:04:32 -04:00
Matt Nadareski
d86dbf47b5 Add MS-CAB GetDataBlocks helper 2025-07-28 13:55:07 -04:00
Matt Nadareski
7cb318ce6d Fix build warning 2025-07-28 13:33:47 -04:00
Matt Nadareski
18b89543ef Add MS-CAB OpenNext and OpenPrevious helpers 2025-07-28 13:25:33 -04:00
Matt Nadareski
be50d1343e Add MS-CAB DecompressBlocks helper 2025-07-28 13:18:10 -04:00
Matt Nadareski
32c9ea7838 Add MS-CAB GetFiles helper 2025-07-28 13:14:33 -04:00
Matt Nadareski
cf7a68602b Add MS-CAB GetFolderIndex helper 2025-07-28 13:09:08 -04:00
Matt Nadareski
f2fe2623c6 Add note for MS-CAB 2025-07-28 12:33:11 -04:00
HeroponRikiBestest
249a17be1f Add branching and specific SharpCompress calls for solid vs non-solid archives in order to extract solid archives properly. (#375)
* Add branching for solid vs non-solid archives in order to extract solid archives properly.

* Change comments on sevenzip, reuse archive-level solid flag for rar

* Fully simplify identifying if archive is solid.

* Finish implementing first round of feedback.

* Fix second round of formatting issues.

* Final formatting fixes.
2025-07-11 23:13:00 -04:00
HeroponRikiBestest
dff15ef799 Fixes .hdr+.cab installshield cabinet files not being extracted by BOS when relative paths are provided. (#374)
* Fixes .hdr+.cab installshield cabinet files not being extracted when relative paths are provided.

* Fix for unit tests empty file string.

* Better fix for unit test failures, due to https://learn.microsoft.com/en-us/dotnet/api/system.io.path.getfullpath?view=net-9.0 listing several more exceptions than the other functions, most of which I would not imagine should be directly handled.

* Removed try-catch fullpath obtaining, added getting fullpath in scanner via filestream name instead.

* Undid previous changes again, re-added path assertion at request, added assert.throws exception for empty paths in the unit tests
2025-07-04 14:34:31 -04:00
Matt Nadareski
c0c94fd78d Get full path for each input for programs 2025-06-30 07:28:33 -04:00
HeroponRikiBestest
af43748766 Improve detection for cd/dvd-cops version string (#368)
* Improve detection for cd/dvd-cops version string

* I forgot to include the regex compensation for comma version number cases

* Pasted comment wrong previously

* Implemented Sabre's review fixes, also added check for Codefree
2025-05-13 10:59:39 -04:00
Matt Nadareski
d28d8b5a2b Update Nuget packages 2025-05-12 08:28:02 -04:00
Matt Nadareski
0edc380059 Fix brackets from last commit 2025-05-06 15:53:20 -04:00
HeroponRikiBestest
2311dd9cc8 Add EA Game Authorization Management checking to paul.dll (#366)
* Add EA Game Authorization Management checking to paul.dll

Checks if PA is using EA Game Authorization Management

* Fix if else
2025-05-06 15:51:40 -04:00
HeroponRikiBestest
f87ce49f7e make paul.dll internal name check non-case-sensitive (#365)
* make paul.dll internal name check non-case-sensitive

Sometimes the internal name is in all caps, like http://redump.org/disc/115608/ and http://redump.org/disc/47171/

* Added proper import for ignore case

Forgot it wasn't covered by system.text
2025-05-06 15:22:11 -04:00
HeroponRikiBestest
928e93a7da Fix my own Frontline Proactive sample comment spacing because it was bothering me so much I couldn't go to bed (#363) 2025-04-20 20:36:35 -04:00
HeroponRikiBestest
75517a5f83 Add PACE Anti-Piracy InterLok detection (#362)
* Add detection class and test class for PACE Anti-Piracy Interlok

* Remove unnecessary empty lines after end of class.

* Added missing null check for pex section strings.

* Add newline above getversion

* GetFirstSectionStrings assigned to variable.

* Change getversion in InterLok to use regex.

* Final? getversion regex cleanup
2025-04-19 23:08:49 -04:00
HeroponRikiBestest
cfe9825af7 Add detection for FrontLine ProActive (#361)
* Add detection for FrontLine ProActive

* Wrap samples onto newlines

Wrap samples onto newlines
2025-04-19 22:35:22 -04:00
HeroponRikiBestest
1ff1281c8f Add rcpacker detection (#360)
Some late securom Release Control games call what'd usually be the matrosch section "rcpacker", as in Release Control packer. Not detected at the moment because of this, and given the name, should only refer to Securom Release Control. Games affected by this include all currently dumped in redump versions of FIFA 13 and Mass Effect 3 with Release Control.
2025-03-28 19:50:10 -04:00
TheRogueArchivist
c9194f18ef Begin SafeDisc 4 documentation (#354)
* Begin SafeDisc 4 documentation

Starting off with just 4.00.000 since this needed a bit more groundwork to establish with the AuthServ checks.

* Add SafeDisc 4.00.001

* Add SafeDisc 4.00.002+4.00.003

* Add SafeDisc 4.50.000 notes

* Document SafeDisc 4.60.000-4.80.000

Also add new comment about the unknown version of SecDrv.

* Document SafeDisc 4.81.000

Found a new clcd16 file, which hasn't happened in a long time

* Document SafeDisc 4.85.000 and 4.90.000

Improve some comments and detections for other versions as well.

* Document the remaining SafeDisc 4 versions

Still needs some mild cleanup

* Add SafeDisc 4.91.000 clcd32 hash

* Add SD4/Lite notes
2025-03-25 10:05:04 -04:00
Matt Nadareski
60a3a74862 Fix how conditions are used for references 2025-02-25 21:21:32 -05:00
Matt Nadareski
7a96e8cfe3 Don't crash if writing fails 2025-01-29 11:06:13 -05:00
HeroponRikiBestest
9fee74f2a6 Move Crunch to its own Packer, improve SmartE detection. (#353)
* Move Crunch to its own Packer, improve SmartE detection.

* Fix formatting by removing brackets

Co-authored-by: Matt Nadareski <mnadareski@outlook.com>

* Remove named section checks, minor formatting fixes

* Add newline before summary.

* Remove empty returns.

* Remove unnecessary newline

* Change Crunch to use IExtractableExecutable

* Remove unnecessary whitespace.

* Add tests for Crunch.

---------

Co-authored-by: Matt Nadareski <mnadareski@outlook.com>
2025-01-13 23:17:57 -05:00
HeroponRikiBestest
63a5a25a17 Add missed "Check disc for physical ring" in copy-X return (#352)
Caught by noigeaR, crucial to communicate since some tivola discs have dummy files but no ring (and thus no copy-X), either as remnants, or seemingly as future preparation for copy-X
2025-01-13 10:33:28 -05:00
Matt Nadareski
610078b47c Bump version 2024-12-31 13:25:24 -05:00
Matt Nadareski
ff450a9bcf Update Serialization to 1.8.6 2024-12-30 22:56:12 -05:00
TheRogueArchivist
6661c48428 Don't check files with ".srdata" section for Denuvo (#351)
Prone to too many false positives.
2024-12-30 22:16:55 -05:00
Matt Nadareski
f2a07fc088 Update copyright 2024-12-30 21:41:27 -05:00
Matt Nadareski
e34ea5faca Remove unnecessary action step 2024-12-30 21:40:52 -05:00
Matt Nadareski
11ed09caf2 Update Serialization to 1.8.5 2024-12-30 21:00:53 -05:00
HeroponRikiBestest
f5615d7713 Removed secondary ASPack 1.08.04 check due to false positives. (#350) 2024-12-30 20:32:35 -05:00
Matt Nadareski
2df4144f23 Add new SolidShield activation manager description (fixes #348) 2024-12-29 15:17:35 -05:00
HeroponRikiBestest
5f5dc7d0de Improve Hexalock detection slightly (#347)
* Improve Hexalock detection via checking different known sections for mfint.dll

* Add sabre's suggestion

Improve code with sabre's code suggestion

Co-authored-by: Matt Nadareski <mnadareski@outlook.com>

* Add extra check for instances in UPX executables.

* Add newlines between if blocks.

---------

Co-authored-by: Matt Nadareski <mnadareski@outlook.com>
2024-12-29 14:40:24 -05:00
TheRogueArchivist
d505707dee Add sources for SafeDisc 3 (#346)
Add sources for SafeDisc 3, and add the corresponding clcd32.dll hashes
2024-12-27 07:51:00 -05:00
Matt Nadareski
5e7342477a Ensure .NET versions are installed for testing 2024-12-19 10:54:47 -05:00
Matt Nadareski
35b1bb817e Add flag for SafeGetFiles 2024-12-19 00:02:53 -05:00
Matt Nadareski
73d7c5790e Bump version 2024-12-18 21:50:21 -05:00
Matt Nadareski
d81be84f58 Remove unnecessary complexity in publish scripts 2024-12-18 10:21:06 -05:00
Matt Nadareski
d6920bc1e2 Fix Wise detection slightly 2024-12-18 10:14:14 -05:00
Matt Nadareski
68d4eeef27 Update packages 2024-12-18 10:02:42 -05:00
Matt Nadareski
92c29610df Fix publishing executables 2024-12-18 09:56:57 -05:00
Matt Nadareski
24eddda72c Allow symbols to be packed 2024-12-18 09:54:01 -05:00
TheRogueArchivist
3257b59b27 Add SafeDisc 2.90.045 detections (#345) 2024-12-17 17:29:59 -05:00
Matt Nadareski
10c95f86b1 Add alternate signatures for PKZIP embedded 2024-12-17 00:57:57 -05:00
Matt Nadareski
269e01b7bf Move to native subfolder 2024-12-14 23:04:25 -05:00
Matt Nadareski
84f8a3e780 Update publish scripts for later 2024-12-14 22:49:26 -05:00
Matt Nadareski
fe74f1de82 Bump version 2024-12-14 22:41:24 -05:00
TheRogueArchivist
7b604a8bda Begin documentation of SafeDisc 2 sources (#342)
* Begin documentation of SafeDisc 2 sources

Also add new clcd32 checks for SafeDisc2.

* Update comments through 2.40.011

(Almost) halfway there

* Update documentation through version 2.60.052

* Finish documenting SafeDisc 2 sources

This also removes any detections for "2.90.010" as this doesn't appear to be a legitimate version, and seems to have originated from a typo.
2024-12-14 22:37:51 -05:00
Matt Nadareski
cde1a8931a Fix build script again, add MPQ to win-x64 2024-12-14 18:30:57 -05:00
Matt Nadareski
33c9da7cfe Attempt to fix packing of native DLLs 2024-12-14 17:45:17 -05:00
Matt Nadareski
944b0ce91b Redefine WIN constant to WINX86 2024-12-14 17:33:46 -05:00
Matt Nadareski
6f388102ee Fix MS-ZIP decompression in MS-CAB 2024-12-13 15:13:08 -05:00
Matt Nadareski
677f66f98d Fix MS-CAB writing 2024-12-13 14:58:25 -05:00
Matt Nadareski
8ff205843d Enable partial decompression of MS-ZIP on all platforms 2024-12-13 14:55:20 -05:00
Matt Nadareski
a781fffb39 Enable full BFPK extraction on all platforms 2024-12-13 14:19:12 -05:00
Matt Nadareski
f3267f7fcf Add CopyTo extenion for old .NET 2024-12-13 14:10:00 -05:00
Matt Nadareski
103ffc70bd Enable bz2 and gzip on all platforms 2024-12-13 14:07:08 -05:00
Matt Nadareski
f9b4e262f2 Update packages 2024-12-13 11:56:31 -05:00
Matt Nadareski
69f8d8cfdd Update Serialization to 1.8.2 2024-12-10 15:54:28 -05:00
Matt Nadareski
be69c52cfe Reduce unnecessary complexity 2024-12-10 13:11:31 -05:00
Matt Nadareski
6fdbdd9f09 Match versioned GFWL installers (fixes #343) 2024-12-08 21:59:13 -05:00
Matt Nadareski
e638b7b38a Remove PEiD ActiveMark checks 2024-12-08 21:54:22 -05:00
Matt Nadareski
750a43290c Use publish script and update README 2024-12-06 11:52:33 -05:00
Matt Nadareski
cdc9171615 Bump version 2024-12-03 13:07:59 -05:00
Matt Nadareski
21451c5294 Update WiseUnpacker to 1.5.4 2024-12-03 11:58:04 -05:00
Matt Nadareski
dea35ca158 Update WiseUnpacker to 1.5.3 2024-12-03 06:53:32 -05:00
Matt Nadareski
7d96e7b333 Enable more embedded archive types 2024-12-03 06:26:39 -05:00
Matt Nadareski
4f493626cb Use default extraction for Wise finally 2024-12-03 06:14:30 -05:00
Matt Nadareski
03a2dff668 Try reading files if streams fail 2024-12-03 06:00:03 -05:00
Matt Nadareski
0d213274b5 Update WiseUnpacker to 1.5.2 2024-12-03 05:06:52 -05:00
TheRogueArchivist
80d3b8d8bb Add sources for SafeDisc detections up through V1 (#341)
Also fix a false positive in ASPack due to an overly generic check, and fix a comment.
2024-12-03 04:25:50 -05:00
Matt Nadareski
e788ad9287 Ensure keys in a better way 2024-12-03 03:54:55 -05:00
Matt Nadareski
c70b5f6ec8 Increase extraction safety 2024-12-03 03:43:39 -05:00
Matt Nadareski
6b7ad781b7 Update UnshieldSharp to 1.9.2 2024-12-03 03:34:07 -05:00
Matt Nadareski
9d60a4d1ec Fix output directory issues 2024-12-03 03:24:24 -05:00
Matt Nadareski
ec091ada95 Ensure all protections are split properly 2024-12-03 03:09:52 -05:00
TheRogueArchivist
c2547295bf Check .data/DATA sections for ASPack as well (#340)
Also add some comments regarding ASProtect.
2024-12-03 02:40:28 -05:00
Matt Nadareski
58707feb72 Debug data debugged data 2024-12-03 02:09:19 -05:00
Matt Nadareski
7efe622990 Update Serialization to 1.8.1 2024-12-03 01:15:30 -05:00
Matt Nadareski
fee4e482cf Bump version 2024-12-03 00:32:49 -05:00
Matt Nadareski
33b498cd39 Remove AppVeyor 2024-12-02 16:34:11 -05:00
Matt Nadareski
8570237fb3 Disallow empty values in custom dictionaries 2024-12-02 16:31:19 -05:00
Matt Nadareski
8b10a7c3ea Fix outputting multi-detected files 2024-12-02 15:12:19 -05:00
Matt Nadareski
0a3f83b15e Hook up disconnected FLEXnet checks 2024-12-02 15:05:58 -05:00
Matt Nadareski
f7a25c7d2d Reduce content check boilerplate 2024-12-02 14:51:48 -05:00
Matt Nadareski
f092a4d2ea CanSeek can throw exceptions 2024-12-02 14:43:40 -05:00
Matt Nadareski
027864aaa6 Add automatic test running 2024-12-02 12:04:46 -05:00
Matt Nadareski
8bcf81fbbd Add detect dictionary test for executable 2024-12-02 12:00:55 -05:00
Matt Nadareski
8c0a8f6856 Fix TAR test name 2024-12-02 11:56:28 -05:00
Matt Nadareski
254d2877b5 Add scanner helper method tests 2024-12-02 11:50:34 -05:00
Matt Nadareski
f71919f8f7 Add one more boundary test 2024-12-02 11:45:43 -05:00
Matt Nadareski
50bece6ac4 Add more paranoia in file size helper 2024-12-02 11:44:57 -05:00
Matt Nadareski
3141e1f020 Add file size helper extension 2024-12-02 11:43:04 -05:00
Matt Nadareski
0a131c502e Remove empty file 2024-12-02 11:36:06 -05:00
Matt Nadareski
6db0d27bf8 Fix access level for helper method 2024-12-02 11:35:34 -05:00
Matt Nadareski
366e6ae171 Wrappers should never throw 2024-12-02 11:34:08 -05:00
Matt Nadareski
1ed0fe7dd3 Fill out more extraction boundary tests 2024-12-02 11:21:14 -05:00
Matt Nadareski
dbd2175446 Add file type tests 2024-12-02 11:07:01 -05:00
Matt Nadareski
1a997679a9 Add protection tests 2024-12-02 10:38:36 -05:00
Matt Nadareski
477356bd77 Add content and NE tests for packers 2024-12-02 01:59:23 -05:00
Matt Nadareski
bf5899d9fd Add packer tests 2024-12-02 01:50:40 -05:00
Matt Nadareski
1565efd097 Add game engine tests 2024-12-02 01:28:24 -05:00
Matt Nadareski
1dd9022407 Add tests for static check class generators 2024-12-02 01:22:33 -05:00
Matt Nadareski
ff2b27c6d0 Reduce PE boilerplate 2024-12-02 00:58:52 -05:00
Matt Nadareski
a6b494841f Add and use new nullable string extensions 2024-12-02 00:35:04 -05:00
Matt Nadareski
0aff061781 Migrate to new Serialization code 2024-12-02 00:02:51 -05:00
Matt Nadareski
c73d558ca4 Add Factory tests 2024-12-01 23:50:19 -05:00
Matt Nadareski
f80de3a941 Fix namespace 2024-12-01 23:38:25 -05:00
Matt Nadareski
ca51733aa2 Add enumerable extensions tests 2024-12-01 23:37:27 -05:00
Matt Nadareski
bfb4499005 Framework only matters for executables 2024-12-01 23:25:44 -05:00
Matt Nadareski
2984d3f5e5 Add skeleton test project 2024-12-01 23:09:38 -05:00
Matt Nadareski
4eff18bf3a Update packages 2024-12-01 23:07:52 -05:00
Matt Nadareski
eeeac97553 Remove unnecessary double assignment 2024-11-27 22:39:19 -05:00
Matt Nadareski
62475f725a Version gate remaining Linq statements 2024-11-22 13:00:11 -05:00
Matt Nadareski
575c1a7bd7 Minor change to Array.Copy syntax 2024-11-21 13:49:55 -05:00
Matt Nadareski
eb03470625 Bump version 2024-11-21 11:20:19 -05:00
Matt Nadareski
b1aa2fc73a Enable MPQ on .NET Framework 4.0 2024-11-21 10:40:10 -05:00
Matt Nadareski
cd21c76c97 Add versions to executables 2024-11-21 10:35:15 -05:00
Matt Nadareski
9e205ddf2a More incidental cleanup 2024-11-21 01:32:30 -05:00
Matt Nadareski
07a183955b Reduce framework gating in SecuROM 2024-11-20 23:41:09 -05:00
Matt Nadareski
b49c6e96fd Add guards around previous commit 2024-11-20 21:48:37 -05:00
Matt Nadareski
148cfed141 Add executable extraction to tool 2024-11-20 21:45:15 -05:00
Matt Nadareski
cebbe6a1e8 Check overlay for embedded data as well 2024-11-20 21:33:56 -05:00
Matt Nadareski
558e23a9cd Clean up after last few commits 2024-11-20 21:18:12 -05:00
Matt Nadareski
d7c37f6e0a Lists lead to less Linq 2024-11-20 20:58:39 -05:00
Matt Nadareski
c05090db8c Update packages 2024-11-20 20:23:05 -05:00
Matt Nadareski
fa19304a6d Remove some framework gating 2024-11-20 20:10:18 -05:00
Matt Nadareski
ec4962a3c9 Use List where possible, Macrovision edition 2024-11-20 17:13:47 -05:00
Matt Nadareski
7122aa44a1 Use List where possible 2024-11-20 17:10:03 -05:00
Matt Nadareski
cf62be365c Use List where possible 2024-11-20 17:05:40 -05:00
Matt Nadareski
9cc2f99334 Quick package sync 2024-11-20 16:51:06 -05:00
Matt Nadareski
d9d9f23af9 Read entire file for content checks 2024-11-20 15:53:09 -05:00
Matt Nadareski
c29354f054 Add embedded archive scanning 2024-11-20 15:19:39 -05:00
Matt Nadareski
7738630952 Bump version 2024-11-16 00:00:00 -05:00
Matt Nadareski
c945ca4fe3 Make BOS compatible with RedumpLib 2024-11-15 23:59:23 -05:00
Matt Nadareski
6acf5ccc09 Bump version 2024-11-15 23:11:00 -05:00
Matt Nadareski
a5f9006ef1 One last Linq place (not all of them) 2024-11-15 23:09:58 -05:00
Matt Nadareski
ae7111e201 Update package versions 2024-11-15 23:06:47 -05:00
Matt Nadareski
5a94cd3b66 Framework only matters for executable 2024-11-15 23:00:37 -05:00
Matt Nadareski
3de58ff05e Fix linux publish script 2024-11-13 13:03:13 -05:00
Matt Nadareski
6e409988a5 Bump version 2024-11-13 13:01:48 -05:00
Matt Nadareski
864fa8d3f8 Add .NET 9 to target frameworks 2024-11-13 04:26:26 -05:00
Matt Nadareski
622f36b056 Add .NET 9 to target frameworks 2024-11-13 04:26:24 -05:00
Matt Nadareski
efe144313b Fix build 2024-11-12 23:29:53 -05:00
Matt Nadareski
1e3aac6748 Linq is friend, not food 2024-11-12 23:17:48 -05:00
Matt Nadareski
984ad1f642 Remove minimally-used System.Memory package 2024-11-05 16:58:13 -05:00
Matt Nadareski
b379e1781b Remove unused MinThreadingBridge library 2024-11-05 16:53:52 -05:00
Matt Nadareski
e244d6939c Attempt to reduce nesting in GHA builds 2024-11-05 13:50:04 -05:00
Matt Nadareski
b4a781acc7 Bump version 2024-11-05 13:10:09 -05:00
Matt Nadareski
eb7bbdde52 Remove now-incorrect remark 2024-11-05 11:06:30 -05:00
Matt Nadareski
f470263196 Func not obj 2024-11-05 01:45:35 -05:00
Matt Nadareski
3822cc41f2 Extract loop into new method; fix build 2024-11-05 01:24:14 -05:00
Matt Nadareski
f04cf25fa9 Move all executable handling to Executable 2024-11-05 01:12:18 -05:00
Matt Nadareski
eb8b9daea8 Reduce unncessary nulls 2024-11-05 00:42:45 -05:00
Matt Nadareski
33ecc246dc Reorganize yet again around check sets 2024-11-05 00:32:42 -05:00
Matt Nadareski
7d55c8224a Move Factory to Data namespace 2024-11-05 00:28:39 -05:00
Matt Nadareski
0ccae4e4b7 Move static check collections to separate class 2024-11-05 00:25:22 -05:00
Matt Nadareski
1798371513 Add better info to coding and dev guides 2024-11-05 00:10:40 -05:00
Matt Nadareski
0858437196 Undo launch changes 2024-11-04 23:59:46 -05:00
Matt Nadareski
ece758bf03 IExtractableExecutable extends IExecutableCheck 2024-11-04 23:59:10 -05:00
Matt Nadareski
d9661cd03d Fix access level 2024-11-04 23:52:40 -05:00
Matt Nadareski
682529d7ba Consolidate more typed methods 2024-11-04 23:49:13 -05:00
Matt Nadareski
27ef24636c Use typed check methods as well 2024-11-04 23:37:23 -05:00
Matt Nadareski
f5f3d3d29a Fun with typed interfaces 2024-11-04 23:21:12 -05:00
Matt Nadareski
550fb70952 Use typed interface for extractable executables 2024-11-04 22:02:10 -05:00
Matt Nadareski
7d6248a3bf Re-merge some code from Handler to Scanner 2024-11-04 21:53:59 -05:00
Matt Nadareski
4575da77bd Use private field when possible 2024-11-04 21:40:56 -05:00
Matt Nadareski
a85aa08117 Reduce publicly visible fields in Scanner 2024-11-04 21:37:03 -05:00
Matt Nadareski
667207761c Reduce SFX code duplication 2024-11-04 21:25:30 -05:00
Matt Nadareski
92097222b0 Sync IExtractable*Executable implementations 2024-11-04 21:14:06 -05:00
Matt Nadareski
5ec90b290a Steam any false 2024-11-04 20:06:47 -05:00
Matt Nadareski
5de78ef552 Make GitHub action Debug-only 2024-11-04 15:02:11 -05:00
Matt Nadareski
57a5531fbd Remove old Test executable; update docs 2024-11-04 14:58:21 -05:00
Matt Nadareski
f7a4b6b43c Add separate ExtractionTool executable 2024-11-04 14:48:29 -05:00
Matt Nadareski
3de56083d8 Add separate ProtectionScan executable 2024-11-04 14:38:23 -05:00
Matt Nadareski
f998a578cc Make Extractor static like Protector 2024-11-04 14:14:50 -05:00
Matt Nadareski
0fc7ce2e07 Simplify code in Extractor 2024-11-04 14:10:16 -05:00
Matt Nadareski
156df10e37 Remove Printer 2024-11-04 14:05:20 -05:00
Matt Nadareski
9490d06509 Remove Utilities namespace references 2024-11-04 11:54:41 -05:00
Matt Nadareski
b8b70a3848 Ensure all files matched in RainbowSentinel (fixes #336) 2024-11-04 11:42:24 -05:00
Matt Nadareski
42df482ffa Fix MPQ compilation 2024-11-04 11:29:36 -05:00
Matt Nadareski
058dfaeb37 Fix missed outDir location 2024-11-04 11:25:42 -05:00
Matt Nadareski
1622bcbe60 Replace now-duplicate code 2024-11-04 11:17:09 -05:00
Matt Nadareski
72629ea3a4 Update IExtractable interface 2024-11-04 11:00:59 -05:00
Matt Nadareski
4ba3c3e3ad Normalize extraction 2024-11-04 10:20:46 -05:00
Matt Nadareski
56c1fd31d4 Add Steam extension matching (fixes #234) 2024-11-04 09:51:20 -05:00
Matt Nadareski
9c27da72bb Add VOB-PCD.KEY detection 2024-11-04 09:38:25 -05:00
Matt Nadareski
e5dc66b140 Bump version 2024-11-03 20:01:41 -05:00
HeroponRikiBestest
41e10a4150 Add aditional light directory checks (#335)
Compensate for some additional variance in directory names found from new samples, in lieu of a more "advanced" check
2024-11-02 19:42:00 -04:00
Matt Nadareski
3c4381049b Minor leftover cleanup 2024-10-31 23:11:11 -04:00
Matt Nadareski
3188c6e922 Further reduce awkward framework gating 2024-10-31 23:08:05 -04:00
Matt Nadareski
1bfb6cda08 Use CheckDictionary helper type 2024-10-31 22:52:20 -04:00
Matt Nadareski
86feb930a8 Add CheckDictionary (unused) 2024-10-31 22:49:57 -04:00
Matt Nadareski
5587c79ac5 Reduce use of generic PathMatch 2024-10-31 22:42:20 -04:00
Matt Nadareski
dc2a2e10de Add summary to ProtectionDictionary 2024-10-31 22:25:11 -04:00
Matt Nadareski
a2fdcb4f6f Remove remaining unncessary Concurrent usings 2024-10-31 22:22:52 -04:00
Matt Nadareski
a355670af9 Use semantic versioning for var names 2024-10-31 22:16:51 -04:00
Matt Nadareski
3489c67e2b Make CheckDirectoryPath signature easier 2024-10-31 22:15:30 -04:00
Matt Nadareski
99a64942ea Reduce per-framework complexity 2024-10-31 21:46:40 -04:00
Matt Nadareski
5eab12946f Fix accidental change 2024-10-31 21:13:09 -04:00
Matt Nadareski
683cfb6306 Start using ProtectionDictionary 2024-10-31 21:10:06 -04:00
Matt Nadareski
9a3fde0518 Add ProtectionDictionary type (unused) 2024-10-31 20:54:36 -04:00
Matt Nadareski
26d19aab37 Fix very strange formatting 2024-10-31 20:38:15 -04:00
Matt Nadareski
08564ed607 Remove end-of-program pauses 2024-10-31 20:36:40 -04:00
Matt Nadareski
0f6378cd2c Update packages 2024-10-31 16:05:11 -04:00
TheRogueArchivist
34a78fc4b9 Minor SafeCast additions (#333)
Adds a text check for SafeCast, along with adding a new confirmed version. Also add notes for a few known programs that used SafeCast, a few TODOs, and a semi-related note about stxt sections.
2024-10-30 07:28:21 -04:00
Matt Nadareski
c9ee45c1d2 Count not Count() 2024-10-27 20:24:24 -04:00
HeroponRikiBestest
13f5b4f79b Improve Copy-X Light detection with additional folder check. (#332)
* Improve Copy-X Light detection with additional folder check.

* Add requested changes to additional copy-X light folder check.

* Cleaned up changes.

* One final comment cleanup.
2024-10-27 20:20:19 -04:00
HeroponRikiBestest
e5d0c5bdc4 Replace tivola with copy-x. (#331) 2024-10-27 00:19:41 -04:00
Matt Nadareski
6220382531 Clarify switch expression use 2024-10-27 00:12:21 -04:00
Matt Nadareski
165896e335 Add note about first-person comments 2024-10-27 00:04:11 -04:00
Matt Nadareski
284d0ea108 Clear out old info from the coding guide 2024-10-27 00:01:22 -04:00
Matt Nadareski
b04feab5da Minor cleanup 2024-10-26 23:54:54 -04:00
HeroponRikiBestest
4e0442d526 Add preliminary copy-X protection checking (#328)
* Add preliminary copy-X protection checking

* Fixed formatting.

* Removed some unecessary lines of code.

* Added debatably sufficient documentation.

* Fixed formatting, hopefully

* Finalize formatting and PR.

* Fleshes out checks after more samples. Fixes some but not all of the change requests.

* Fix ordering.

* Fixes pex check, fixes redump id formatting.

* Added copy-X info to readme.

* Revert "Added copy-X info to readme."

This reverts commit 77349aa8de.

* Add copy-X info to readme, for real this time.

* Replaced some code in byte check with BoS helper function.

* Remove first person.

* Source is no longer just trust me (to some degree)

* Fix typo

* WIP figuring out enumerable (fails to build)

* WIP 2 figuring out getfirstmatch (compiles, but breaks detection)

* Pass 1 of suggested changes.

* Removed debug match.

* Pass 2 of suggested changes.

* Added line.

* Added line for real.

* Added todo

* Improved comments.

* Finished todo.

* Redid change.

* Fixes more comments.

* double double and make it trouble
2024-10-26 23:53:17 -04:00
TheRogueArchivist
d8aa4d230d Fix WTM false positive (#327)
"imp.dat" isn't exactly a very distinctive file name.
2024-10-26 20:31:25 -04:00
TheRogueArchivist
07a7fd05d2 Add new SafeCast version (#329) 2024-10-26 20:30:07 -04:00
Matt Nadareski
671e1ee2b6 Update Matching to 1.3.3 2024-10-26 19:46:34 -04:00
Matt Nadareski
d627e8a4c9 Be consistent with naming 2024-10-25 12:01:08 -04:00
Matt Nadareski
6ee90b28cd Be consistent with naming 2024-10-25 11:57:51 -04:00
Matt Nadareski
8dc2b019b6 Update packages 2024-10-24 17:32:26 -04:00
TheRogueArchivist
f151563e28 Move Armadillo to Protection and add notes (#326)
Armadillo has packer and protection features, meaning it should be move to be a protection. Also add additional notes, including about an alternate later name, "SoftwarePassport".
2024-10-23 00:38:53 -04:00
Matt Nadareski
edbbbb011d Renmae MediaMax CD-3 to be more accurate 2024-10-21 21:59:15 -04:00
TheRogueArchivist
e3fd44134b Add initial .NET Reactor support (#325)
* Add initial .NET Reactor support

It's minimal, but is much better than nothing. A few notes on how it can be realistically improved have been added as well.

* Fix missing using

* 7-zip SFX is extractable now
2024-10-04 23:56:52 -04:00
Matt Nadareski
71fb7318e3 Better handling of Windows libraries 2024-10-03 14:57:14 -04:00
Matt Nadareski
aba4395139 Enable Windows libraries on .NET Framework 4.0 2024-10-03 14:46:35 -04:00
Matt Nadareski
1fd69f101f Remove last two this qualifiers 2024-10-03 13:02:23 -04:00
Matt Nadareski
aa4c72fb90 Old .NET really doesn't like readonly 2024-10-03 12:55:38 -04:00
Matt Nadareski
150b9a0d67 Remove more this qualifiers 2024-10-03 12:53:43 -04:00
Matt Nadareski
b08921a94a Use readonly instead of private set 2024-10-03 12:52:27 -04:00
Matt Nadareski
3406f3c4b3 Remove this qualifiers 2024-10-03 12:51:49 -04:00
Matt Nadareski
ffca156209 Remove init variants :( 2024-10-03 12:51:30 -04:00
Matt Nadareski
b842599006 Update packages 2024-10-03 12:01:08 -04:00
TheRogueArchivist
86b639b04f Add Kalypso Launcher support (#324)
* Add Kalypso Launcher support

* Small changes to Kalypso Launcher

* More minor Kalypso Launcher changes
2024-10-03 10:42:39 -04:00
Matt Nadareski
570602aac6 Remove unused package 2024-10-01 10:45:12 -04:00
Matt Nadareski
4989956a91 Bump version 2024-09-28 13:13:06 -04:00
Matt Nadareski
14849f45da Remove redundant reports in Macrovision code 2024-09-27 13:24:19 -04:00
TheRogueArchivist
28ebc14fe1 Fix various archive formats not extracting folders (#323)
Fixes folder extraction for 7z, RAR, and WinRAR SFX. Applied same fix to tar, but more is needed for it to work properly.
2024-09-26 01:15:38 -04:00
TheRogueArchivist
54cb996fce [WIP] Add 7-Zip SFX extraction (#321)
* Add 7-Zip SFX extraction

Newest SharpCompress added support for extracting 7-Zip SFX files, so we can add support for them here too.

* Clean up 7z SFX extraction method

* Remove unneeded import

* Use file instead of stream for 7z SFX

* Update 7z SFX to be more consistent with other packers
2024-09-26 00:30:25 -04:00
Matt Nadareski
8df58fa4d4 This doesn't inherit from anything 2024-09-25 11:25:52 -04:00
TheRogueArchivist
422add9827 Update SharpCompress to 0.38.0 (#320) 2024-09-25 11:01:16 -04:00
TheRogueArchivist
59435903eb Small update to nProtect comments (#319)
Add new confirmed game to use GameGuard, and start a known version list.
2024-09-12 02:33:17 -04:00
TheRogueArchivist
95ee417e00 Small update to SafeWrap comments (#318)
* Small update to SafeWrap comments

* Further additions to SafeWrap comments
2024-09-05 01:22:11 -04:00
Matt Nadareski
df913372bf Add more SecuROM PA checks (fixes #313) 2024-08-08 08:55:46 -04:00
TheRogueArchivist
2f1c76b7f9 Add EA Anti Cheat detection (#314)
* Add EA Anti Cheat detection

* Make a check more exact
2024-08-02 12:34:43 -04:00
Matt Nadareski
18e57c8182 Fix minor formatting issue 2024-08-02 12:23:05 -04:00
TheRogueArchivist
b4e2117c4b Confirm one SafeCast version (#309) 2024-08-02 00:07:12 -04:00
Matt Nadareski
1bb5ff9e18 Fix README a bit 2024-07-20 21:54:55 -04:00
TheRogueArchivist
a46cae469d Fix scans that use directory name in Windows (#312)
Removes ``.Replace("\\", "/")``, as it was messing with folder paths on Windows.
2024-07-13 01:29:45 -04:00
TheRogueArchivist
b564ff214d Add initial Channelware detection (#311) 2024-07-12 12:35:26 -04:00
TheRogueArchivist
0744a10de0 Improve phenoProtect detection (#307) 2024-07-04 22:16:11 -04:00
HeroponRikiBestest
343ca9497e Fix #.##.xx version number writing second x digit to first digit (#310) 2024-07-04 22:13:49 -04:00
Matt Nadareski
861958527d Fix under-matched runtimes 2024-06-26 12:44:32 -04:00
Matt Nadareski
a6b9dca291 Only copy DLLs for win-x86 2024-06-26 11:53:10 -04:00
Matt Nadareski
18c05cb49d Update workflow runtimes 2024-06-26 11:34:31 -04:00
Matt Nadareski
ed3e58af6c Update publishing to cooler version 2024-06-26 11:32:20 -04:00
Matt Nadareski
e3eed76826 Make debug table reading safer, kinda 2024-06-20 11:26:20 -04:00
Matt Nadareski
7eb86b223f Fix build script 2024-06-17 16:16:11 -04:00
Matt Nadareski
a4ee4529ca Bump version 2024-06-17 16:15:04 -04:00
Matt Nadareski
abc68d8503 Update Serialization to 1.6.7 2024-06-13 11:20:33 -04:00
TheRogueArchivist
aaff4bad1b Add new Alpha-ROM checks (#306) 2024-06-07 13:11:24 -04:00
TheRogueArchivist
d5c81857c3 Update Roxxe detections (#305) 2024-06-05 09:37:37 -04:00
TheRogueArchivist
c2594cdd2d Add checks for Macrovision SecDrv Update Installer (#304) 2024-06-02 19:43:15 -04:00
Matt Nadareski
2412042cef Update Serialization to 1.6.6 2024-06-02 19:42:49 -04:00
Matt Nadareski
1f5c1a8100 Bump version 2024-05-18 22:12:35 -04:00
Matt Nadareski
78cc67f30e Update UnshieldSharp 2024-05-18 22:05:32 -04:00
Matt Nadareski
5b78ba5621 Bump version 2024-05-15 20:30:43 -04:00
Matt Nadareski
c4734cfc3d Update packages 2024-05-15 15:16:41 -04:00
Matt Nadareski
dd45384226 Add secondary check for WinZipSFX NE 2024-05-15 15:15:09 -04:00
Matt Nadareski
3e75d9fa3b Add safety around executable wrapper creation 2024-05-15 13:09:40 -04:00
Matt Nadareski
aa690ab602 Update packages 2024-05-15 12:24:40 -04:00
Matt Nadareski
7432100139 Bump version 2024-05-07 08:57:17 -04:00
Matt Nadareski
29fabb44eb Update IO and Serialization 2024-05-07 05:31:42 -04:00
Matt Nadareski
ad776d4189 Add explicit compatibility notes section 2024-05-06 22:40:39 -04:00
Matt Nadareski
4cf12c76a8 Update IO and Serialization 2024-05-06 22:30:58 -04:00
Matt Nadareski
39185f5ddd Remove now-irrelevant note 2024-05-06 21:59:37 -04:00
Matt Nadareski
03477327c4 Clearer in another place 2024-05-06 21:59:10 -04:00
Matt Nadareski
29fa0d1ac7 Clarify support 2024-05-06 21:54:45 -04:00
Matt Nadareski
7eca23a7f3 Bump version 2024-04-28 19:51:22 -04:00
Matt Nadareski
f0c90bb332 Update packages for critical issues 2024-04-28 19:50:53 -04:00
Matt Nadareski
0af67e5802 Fix build 2024-04-26 22:13:27 -04:00
Matt Nadareski
6ab9f730f9 Bump version 2024-04-26 22:10:27 -04:00
Matt Nadareski
258238bcc0 Update packages 2024-04-26 22:09:05 -04:00
Matt Nadareski
3936a15ef7 Bump version 2024-04-24 17:08:16 -04:00
Matt Nadareski
f6dbb349c4 Update packages 2024-04-24 17:06:51 -04:00
Matt Nadareski
3c69e02cfc Update SabreTools.Serialization 2024-04-24 16:29:58 -04:00
Matt Nadareski
531e634e62 Version-gate a using statement 2024-04-24 14:43:28 -04:00
Matt Nadareski
f9c0c42b26 One Nuget packing error 2024-04-24 12:13:56 -04:00
Matt Nadareski
83aebbbfbd Maybe the last one? 2024-04-24 12:11:05 -04:00
Matt Nadareski
3847e5e9dc Even more warnings 2024-04-24 11:55:27 -04:00
Matt Nadareski
a72bb7e332 Yet more, plus an XML comment 2024-04-24 11:45:20 -04:00
Matt Nadareski
839791f467 Add a couple more for external 2024-04-24 11:43:09 -04:00
Matt Nadareski
469356e8c1 Suppress some "necessary" warnings 2024-04-24 11:35:09 -04:00
Matt Nadareski
66e8eb985c Bump version 2024-04-24 11:23:33 -04:00
Matt Nadareski
90223e6c94 Handle some warnings and messages 2024-04-24 11:16:03 -04:00
Matt Nadareski
2f2cf76d7b Update SabreTools.Printing 2024-04-24 11:15:51 -04:00
Matt Nadareski
558fee2200 Clean up using statements 2024-04-24 11:03:09 -04:00
Matt Nadareski
a82abc05ec Update packages 2024-04-24 11:01:10 -04:00
Matt Nadareski
74df37597a Slight cleanup to Scanner 2024-04-22 11:34:04 -04:00
Matt Nadareski
1581023c01 Update WiseUnpacker 2024-04-18 13:04:49 -04:00
Matt Nadareski
c0d1260656 Update UnshieldSharp 2024-04-18 12:58:32 -04:00
Matt Nadareski
969d103c2c Update packages 2024-04-18 12:48:44 -04:00
TheRogueArchivist
e5e3f3e3ef Add check for StarForce driver removal tool (#301) 2024-04-17 19:30:57 -04:00
Matt Nadareski
c1ee399262 Usings cleanup 2024-04-17 13:46:38 -04:00
Matt Nadareski
74ee9932a7 Update WrapperFactory a bit 2024-04-17 13:44:33 -04:00
Matt Nadareski
e70f8d7220 Reduce unncessary printing code 2024-04-17 13:41:00 -04:00
Matt Nadareski
ceba351372 Update packages 2024-04-17 13:38:14 -04:00
Matt Nadareski
ad4082c531 Forgot the name for playlist 2024-04-17 12:16:57 -04:00
Matt Nadareski
115ea02822 Update libraries 2024-04-17 12:12:01 -04:00
TheRogueArchivist
f876a4e4a6 Add RealArcade detection (#300) 2024-04-16 19:30:48 -04:00
TheRogueArchivist
be114f60d3 Fix WinZip SFX folders not being scanned (#299)
* Fix WinZip SFX folders not being scanned

Use PKZIP extraction to fix WinZip SFX extraction not extracting folders.

* Remove unneeded null check

* Add checks for incomplete zip entries
2024-04-15 00:18:00 -04:00
Matt Nadareski
b2594f8148 Update WiseUnpacker 2024-04-11 12:33:00 -04:00
TheRogueArchivist
f58ada3dde Fix Steam overmatch (#298) 2024-04-11 12:23:46 -04:00
TheRogueArchivist
bc4f07970d Minor Rainbow Sentinel improvements (#295) 2024-04-07 19:15:30 -04:00
Matt Nadareski
25d6822283 Bump version 2024-04-05 15:42:43 -04:00
Silent
3b22262c21 Update SecuROM v7 detection to correctly handle a partly stripped header (#297) 2024-04-04 15:00:09 -04:00
Matt Nadareski
314fc1e3fc Update SabreTools.Printing 2024-04-04 13:48:00 -04:00
Matt Nadareski
5742749dec Update packages 2024-04-04 12:12:52 -04:00
Silent
c55fffeb7b Fix a crash when a sharing violation occurs during --info (#296)
Prints an exception the same way GetInternalProtections
does.
2024-04-03 12:52:12 -07:00
TheRogueArchivist
e469dc38bf Fix Roxxe false positive (#294) 2024-04-02 21:57:23 -07:00
Matt Nadareski
553703c30e Bump version 2024-04-02 17:03:49 -04:00
Matt Nadareski
3fd093f9b4 Update packages 2024-04-02 16:37:02 -04:00
TheRogueArchivist
4946d4e7ff Add Roxxe detection (#293)
* Add Roxxe detection

* Fix Roxxe PR review comments
2024-04-01 09:14:13 -07:00
Matt Nadareski
491fc0f71c Bump version 2024-03-27 12:01:40 -04:00
Matt Nadareski
fe6627f1ba Update to WiseUnpacker 1.3.1 2024-03-25 22:43:34 -04:00
Matt Nadareski
edffa3c7cc Default to using net8.0 target for launch 2024-03-25 22:32:29 -04:00
Matt Nadareski
a66d62bfbc Remove version gate from UnshieldSharp in Test 2024-03-25 21:56:08 -04:00
Matt Nadareski
9321b8f221 Update to UnshieldSharp 1.7.3 2024-03-25 21:53:33 -04:00
Matt Nadareski
cd0863ac56 Ensure zlib inflateEnd is called 2024-03-25 21:34:38 -04:00
Matt Nadareski
24a73e8bfd Update README 2024-03-25 20:08:51 -04:00
Matt Nadareski
46eaa7db1e Fix errant formatting issues 2024-03-25 19:58:37 -04:00
TheRogueArchivist
0eab7fd555 Significantly update Rainbow Sentinel detections and notes (#290) 2024-03-25 16:57:29 -07:00
Matt Nadareski
dba476d8bb Create new extractable interfaces for each executable type 2024-03-25 19:55:16 -04:00
Matt Nadareski
b10b4d6658 Seek to beginning for Embedded Executable 2024-03-25 17:14:10 -04:00
Matt Nadareski
2959fdbe9a Fix zlib with init 2024-03-25 17:10:24 -04:00
Matt Nadareski
9c0d100c2a Set zlib totals (nw) 2024-03-25 17:06:17 -04:00
Matt Nadareski
03ca0faf2e Start fixing zlib implementation 2024-03-25 16:58:11 -04:00
Matt Nadareski
cbaf004e25 Seek to beginning of stream for CExe 2024-03-25 16:37:53 -04:00
Matt Nadareski
bbe4fb610c Correct assumption about directory separators 2024-03-25 16:16:55 -04:00
Matt Nadareski
650115f722 Replace SharpZipLib with ST.Compression 2024-03-25 15:00:42 -04:00
Matt Nadareski
1afcbe3182 Update packages 2024-03-25 14:41:20 -04:00
TheRogueArchivist
8aa90dbc49 Add FlexLM detection (#289) 2024-03-24 19:08:09 -07:00
Matt Nadareski
0781524669 Bump version 2024-03-16 11:16:00 -04:00
Matt Nadareski
3b3cb7a862 Case-insensitive hash comparisons 2024-03-15 21:22:48 -04:00
Matt Nadareski
810d20d95c Bump version 2024-03-14 13:20:30 -04:00
Matt Nadareski
de578511bf Fix type retrieval for all build types 2024-03-13 23:26:16 -04:00
Matt Nadareski
f1ec025950 Fix nulability warning 2024-03-12 16:54:49 -04:00
Matt Nadareski
0c58ecc548 Update packages 2024-03-12 16:53:12 -04:00
Matt Nadareski
d2a73a153b Unroll Linq statements to fix exceptions (fixes #287) 2024-03-10 22:27:18 -04:00
TheRogueArchivist
eae2e3366b Remove DBB Skeleton (#286)
DBB is now documented in DRML.
2024-03-06 08:15:06 -08:00
Matt Nadareski
afb04c99c0 Update packages 2024-03-06 11:08:22 -05:00
Matt Nadareski
1d3bd2f8b1 Use SabreTools.Hashing 2024-03-04 21:27:36 -05:00
TheRogueArchivist
3f52c24713 Move CopyKiller comments to DRML (#285) 2024-02-28 07:36:23 -08:00
Matt Nadareski
ae1417a343 Remove unnecessary commit setting 2024-02-27 17:17:04 -05:00
Matt Nadareski
871a3e6366 Add PR check workflow 2024-02-27 11:21:01 -05:00
Matt Nadareski
3457b807cb Remove GHA on pull request builds 2024-02-27 11:17:41 -05:00
Matt Nadareski
027f295d21 Remove unnecessary newline 2024-02-26 12:46:26 -05:00
Matt Nadareski
63e6d1e285 Add badges to README 2024-02-26 12:43:49 -05:00
Matt Nadareski
2193095f70 Change nupkg location 2024-02-26 12:42:55 -05:00
Matt Nadareski
074694298f Typo typo 2024-02-26 12:37:43 -05:00
Matt Nadareski
ce4d32b053 Forgot to add recursive here 2024-02-26 12:37:11 -05:00
Matt Nadareski
a25af3940c Add recursive checkout 2024-02-26 12:36:47 -05:00
Matt Nadareski
9d1a2db45a Migrate to GitHub Actions 2024-02-26 12:29:12 -05:00
Matt Nadareski
5cdf269a3e Bump version 2024-02-26 12:14:30 -05:00
TheRogueArchivist
b9d90ec35d Remove GetVersionFromSHA1Hash from SafeDisc (#284)
* Remove GetVersionFromSHA1Hash from SafeDisc.
* Minor SafeDisc comment cleanup.
2024-02-23 10:58:58 -08:00
Matt Nadareski
5fc1d3254d Remove outdated comments in build scripts 2024-02-21 19:24:33 -05:00
Matt Nadareski
d61bae8e61 Don't use the auto git hash 2024-02-21 00:04:16 -05:00
Matt Nadareski
f8f53869ae Fix build scripts, again 2024-02-20 23:22:10 -05:00
Matt Nadareski
f5146a6e35 osx-arm64 is such a pain 2024-02-20 22:48:12 -05:00
Matt Nadareski
faf96b9375 Wrong array 2024-02-20 22:10:51 -05:00
Matt Nadareski
2228e344f6 Or, not And 2024-02-20 21:53:52 -05:00
Matt Nadareski
9955bdcab1 Not all DLLs, oops 2024-02-20 21:47:59 -05:00
Matt Nadareski
4586d49a3f Use DLL filtering in publish scripts 2024-02-20 21:45:18 -05:00
Matt Nadareski
1f4e24452a Add non-DLL lists, not hooked up 2024-02-20 21:33:14 -05:00
Matt Nadareski
090bac4d59 Remove unbuildable runtime 2024-02-20 21:12:21 -05:00
Matt Nadareski
59bedf5fce Fix DLL bundling 2024-02-20 21:07:29 -05:00
Matt Nadareski
1bbc541957 Limit packing to just BOS library 2024-02-20 21:04:39 -05:00
Matt Nadareski
1bb0107ceb Remove net6.0 from AppVeyor, add win-x86 2024-02-20 21:03:28 -05:00
Matt Nadareski
10dad356cd Expand default and extended publish targets 2024-02-20 20:59:28 -05:00
Matt Nadareski
22b6971e51 Tabs lose this battle 2024-02-20 20:54:28 -05:00
Matt Nadareski
3203b56ef6 Update publish scripts 2024-02-20 20:51:59 -05:00
Matt Nadareski
d6db84152f Limit to MS-CAB to x86 until IntPtr issue resolved 2024-02-20 20:14:38 -05:00
Matt Nadareski
b7afad5a4a Enable MS-CAB extraction on at least x86 2024-02-20 19:59:43 -05:00
Matt Nadareski
9d6c53f631 Update build after submodule update 2024-02-20 18:45:37 -05:00
Matt Nadareski
aa7b02dfc3 Add libmspack4n and LessIO as submodlues 2024-02-20 18:44:51 -05:00
TheRogueArchivist
379ffaf61a Add more empty file checks for SafeDisc (#283) 2024-02-20 06:47:20 -08:00
TheRogueArchivist
1bdfccddbc Fix Hexalock false positive (#281) 2024-02-08 10:09:11 -08:00
Matt Nadareski
c83cdd590c Update libraries 2024-02-06 10:48:59 -05:00
Matt Nadareski
f4770374a7 Update copyright date 2024-02-06 10:44:36 -05:00
TheRogueArchivist
72880e93bc Add new Denuvo Anti-Cheat detections (#279) 2024-02-01 20:27:49 -08:00
TheRogueArchivist
6c9cd72948 Add CD-X notes (#278)
* Add CD-X notes

* Add additional note
2024-01-26 06:40:09 -08:00
TheRogueArchivist
2e71ef4635 Update CopyKiller detection and notes (WIP) (#277)
* Update CopyKiller detection and notes

* Cleanup Copykiller
2024-01-25 21:19:16 -08:00
TheRogueArchivist
04cd1098ea Improve CrypKey detection (#275)
* Improve CrypKey detection

* Add CrypKey file detections.
* Add new CrypKey executable detections.

* Fix CrypKey version parsing

* Address PR reviews

* Check for both "code" and "CODE" sections
2023-12-28 20:35:57 -08:00
TheRogueArchivist
e76ce64568 Update known versions for the first SafeDisc splash-screen (#274) 2023-12-25 17:31:09 -08:00
Matt Nadareski
8fe84abef3 Use more lenient file reading 2023-12-13 15:52:03 -05:00
TheRogueArchivist
1b1fa53547 Add small note about ProtectDISC using CSS (#272) 2023-12-01 21:28:21 -08:00
TheRogueArchivist
5019407f35 Add additional SafeDisc for Mac detections and notes (#271)
* Add additional SafeDisc for Mac detections and notes

* Slightly update notes

* Minor additions

* Update earliest known SafeDisc splash-screen version
2023-12-01 17:42:03 -08:00
Matt Nadareski
83ba19eccb Fix ancient .NET dictionary extensions 2023-11-29 13:13:27 -05:00
Matt Nadareski
936bf38521 Slight cleanup 2023-11-25 22:25:44 -05:00
TheRogueArchivist
f54b0d2bbb Add SafeDisc Splash-Screen detection and notes (#269)
* Add initial SafeDisc splash-screen scanning and notes

So far only SafeDisc 1 has been added.

* Further update SafeDisc splash screen notes

This gets part of the way through SafeDisc 2 at least

* Update SafeDisc splash-screen notes and detection up through SafeDisc 2

* Update splash-screen notes through SafeDisc 3

* Starting adding SafeDisc 4 splash-screen notes

* Finish adding SafeDisc 4 splash-screen support

* Update SafeDisc splash-screen notes

* oops

* oops again
2023-11-25 19:21:59 -08:00
363 changed files with 12629 additions and 13032 deletions

40
.github/workflows/build_and_test.yml vendored Normal file
View File

@@ -0,0 +1,40 @@
name: Build and Test
on:
push:
branches: [ "master" ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: |
6.0.x
8.0.x
9.0.x
- name: Run tests
run: dotnet test
- name: Run publish script
run: ./publish-nix.sh -d
- name: Upload to rolling
uses: ncipollo/release-action@v1.14.0
with:
allowUpdates: True
artifacts: "*.nupkg,*.snupkg,*.zip"
body: 'Last built commit: ${{ github.sha }}'
name: 'Rolling Release'
prerelease: True
replacesArtifacts: True
tag: "rolling"
updateOnlyUnreleased: True

23
.github/workflows/check_pr.yml vendored Normal file
View File

@@ -0,0 +1,23 @@
name: Build PR
on: [pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: |
6.0.x
8.0.x
9.0.x
- name: Build
run: dotnet build
- name: Run tests
run: dotnet test

3
.gitmodules vendored
View File

@@ -1,3 +0,0 @@
[submodule "BinaryObjectScanner/_EXTERNAL/stormlibsharp"]
path = BinaryObjectScanner/_EXTERNAL/stormlibsharp
url = https://github.com/robpaveza/stormlibsharp.git

9
.vscode/launch.json vendored
View File

@@ -5,17 +5,18 @@
"version": "0.2.0",
"configurations": [
{
"name": ".NET Core Launch (Test)",
"name": ".NET Core Launch (ProtectionScan)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
// If you have changed target frameworks, make sure to update the program path.
"program": "${workspaceFolder}/Test/bin/Debug/net6.0/Test.dll",
"program": "${workspaceFolder}/ProtectionScan/bin/Debug/net9.0/ProtectionScan.dll",
"args": [],
"cwd": "${workspaceFolder}/Test",
"cwd": "${workspaceFolder}/ProtectionScan",
// For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console
"console": "internalConsole",
"stopAtEntry": false
"stopAtEntry": false,
"justMyCode": false,
},
{
"name": ".NET Core Attach",

View File

@@ -1,3 +0,0 @@
{
"dotnet.defaultSolution": "BinaryObjectScanner.sln"
}

View File

@@ -0,0 +1,28 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
<IsPackable>false</IsPackable>
<LangVersion>latest</LangVersion>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\BinaryObjectScanner\BinaryObjectScanner.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="coverlet.collector" Version="6.0.4">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
<PackageReference Include="SabreTools.Serialization" Version="2.0.0" />
<PackageReference Include="xunit" Version="2.9.3" />
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.4">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,45 @@
using System.Collections.Generic;
using BinaryObjectScanner.Data;
using Xunit;
namespace BinaryObjectScanner.Test.Data
{
public class ProtectionDictionaryTests
{
#region ProcessProtectionString
[Fact]
public void ProcessProtectionString_Null_Empty()
{
string? protection = null;
List<string> actual = ProtectionDictionary.ProcessProtectionString(protection);
Assert.Empty(actual);
}
[Fact]
public void ProcessProtectionString_Empty_Empty()
{
string? protection = string.Empty;
List<string> actual = ProtectionDictionary.ProcessProtectionString(protection);
Assert.Empty(actual);
}
[Fact]
public void ProcessProtectionString_NoIndicator_Single()
{
string? protection = "item1";
List<string> actual = ProtectionDictionary.ProcessProtectionString(protection);
Assert.Single(actual);
}
[Fact]
public void ProcessProtectionString_Indicator_Multiple()
{
string? protection = "item1;item2";
List<string> actual = ProtectionDictionary.ProcessProtectionString(protection);
Assert.Equal(2, actual.Count);
}
#endregion
}
}

View File

@@ -0,0 +1,50 @@
using BinaryObjectScanner.Data;
using Xunit;
namespace BinaryObjectScanner.Test.Data
{
public class StaticChecksTests
{
[Fact]
public void ContentCheckClasses_Populated()
{
var actual = StaticChecks.ContentCheckClasses;
Assert.Equal(6, actual.Length);
}
[Fact]
public void LinearExecutableCheckClasses_Empty()
{
var actual = StaticChecks.LinearExecutableCheckClasses;
Assert.Empty(actual); // No implementations exist yet
}
[Fact]
public void MSDOSExecutableCheckClasses_Empty()
{
var actual = StaticChecks.MSDOSExecutableCheckClasses;
Assert.Empty(actual); // No implementations exist yet
}
[Fact]
public void NewExecutableCheckClasses_Populated()
{
var actual = StaticChecks.NewExecutableCheckClasses;
Assert.Equal(7, actual.Length);
}
[Fact]
public void PathCheckClasses_Populated()
{
var actual = StaticChecks.PathCheckClasses;
Assert.Equal(68, actual.Length);
}
[Fact]
public void PortableExecutableCheckClasses_Populated()
{
var actual = StaticChecks.PortableExecutableCheckClasses;
Assert.Equal(105, actual.Length);
}
}
}

View File

@@ -0,0 +1,35 @@
using Xunit;
namespace BinaryObjectScanner.Test
{
public class ExtensionsTests
{
#region FileSize
[Fact]
public void FileSize_Null_Invalid()
{
string? filename = null;
long actual = filename.FileSize();
Assert.Equal(-1, actual);
}
[Fact]
public void FileSize_Empty_Invalid()
{
string? filename = string.Empty;
long actual = filename.FileSize();
Assert.Equal(-1, actual);
}
[Fact]
public void FileSize_Invalid_Invalid()
{
string? filename = "INVALID";
long actual = filename.FileSize();
Assert.Equal(-1, actual);
}
#endregion
}
}

View File

@@ -0,0 +1,34 @@
using System.IO;
using BinaryObjectScanner.FileType;
using Xunit;
namespace BinaryObjectScanner.Test.FileType
{
public class AACSMediaKeyBlockTests
{
private static readonly SabreTools.Serialization.Wrappers.AACSMediaKeyBlock wrapper
= new(new SabreTools.Data.Models.AACS.MediaKeyBlock(), new MemoryStream(new byte[1024]));
[Fact]
public void DetectFile_EmptyString_Null()
{
string file = string.Empty;
var detectable = new AACSMediaKeyBlock(wrapper);
string? actual = detectable.Detect(file, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void DetectStream_EmptyStream_DefaultValue()
{
Stream? stream = new MemoryStream();
string file = string.Empty;
var detectable = new AACSMediaKeyBlock(wrapper);
string? actual = detectable.Detect(stream, file, includeDebug: false);
Assert.Equal("AACS (Unknown Version)", actual);
}
}
}

View File

@@ -0,0 +1,34 @@
using System.IO;
using BinaryObjectScanner.FileType;
using Xunit;
namespace BinaryObjectScanner.Test.FileType
{
public class BDPlusSVMTests
{
private static readonly SabreTools.Serialization.Wrappers.BDPlusSVM wrapper
= new(new SabreTools.Data.Models.BDPlus.SVM(), new MemoryStream(new byte[1024]));
[Fact]
public void DetectFile_EmptyString_Null()
{
string file = string.Empty;
var detectable = new BDPlusSVM(wrapper);
string? actual = detectable.Detect(file, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void DetectStream_EmptyStream_DefaultValue()
{
Stream? stream = new MemoryStream();
string file = string.Empty;
var detectable = new BDPlusSVM(wrapper);
string? actual = detectable.Detect(stream, file, includeDebug: false);
Assert.Equal("BD+ 0000-00-00", actual);
}
}
}

View File

@@ -0,0 +1,34 @@
using System.IO;
using BinaryObjectScanner.FileType;
using Xunit;
namespace BinaryObjectScanner.Test.FileType
{
public class LDSCRYPTTests
{
private static readonly SabreTools.Serialization.Wrappers.LDSCRYPT wrapper
= new(new SabreTools.Data.Models.LDSCRYPT.EncryptedFile(), new MemoryStream(new byte[1024]));
[Fact]
public void DetectFile_EmptyString_Null()
{
string file = string.Empty;
var detectable = new LDSCRYPT(wrapper);
string? actual = detectable.Detect(file, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void DetectStream_EmptyStream_Null()
{
Stream? stream = new MemoryStream();
string file = string.Empty;
var detectable = new LDSCRYPT(wrapper);
string? actual = detectable.Detect(stream, file, includeDebug: false);
Assert.Equal("LDSCRYPT", actual);
}
}
}

View File

@@ -0,0 +1,34 @@
using System.IO;
using BinaryObjectScanner.FileType;
using Xunit;
namespace BinaryObjectScanner.Test.FileType
{
public class LinearExecutableTests
{
private static readonly SabreTools.Serialization.Wrappers.LinearExecutable wrapper
= new(new SabreTools.Data.Models.LinearExecutable.Executable(), new MemoryStream(new byte[1024]));
[Fact]
public void DetectFile_EmptyString_Null()
{
string file = string.Empty;
var detectable = new LinearExecutable(wrapper);
string? actual = detectable.Detect(file, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void DetectStream_EmptyStream_Empty()
{
Stream? stream = new MemoryStream();
string file = string.Empty;
var detectable = new LinearExecutable(wrapper);
string? actual = detectable.Detect(stream, file, includeDebug: false);
Assert.NotNull(actual);
Assert.Empty(actual);
}
}
}

View File

@@ -0,0 +1,34 @@
using System.IO;
using BinaryObjectScanner.FileType;
using Xunit;
namespace BinaryObjectScanner.Test.FileType
{
public class MSDOSTests
{
private static readonly SabreTools.Serialization.Wrappers.MSDOS wrapper
= new(new SabreTools.Data.Models.MSDOS.Executable(), new MemoryStream(new byte[1024]));
[Fact]
public void DetectFile_EmptyString_Null()
{
string file = string.Empty;
var detectable = new MSDOS(wrapper);
string? actual = detectable.Detect(file, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void DetectStream_EmptyStream_Empty()
{
Stream? stream = new MemoryStream();
string file = string.Empty;
var detectable = new MSDOS(wrapper);
string? actual = detectable.Detect(stream, file, includeDebug: false);
Assert.NotNull(actual);
Assert.Empty(actual);
}
}
}

View File

@@ -0,0 +1,34 @@
using System.IO;
using BinaryObjectScanner.FileType;
using Xunit;
namespace BinaryObjectScanner.Test.FileType
{
public class NewExecutableTests
{
private static readonly SabreTools.Serialization.Wrappers.NewExecutable wrapper
= new(new SabreTools.Data.Models.NewExecutable.Executable(), new MemoryStream(new byte[1024]));
[Fact]
public void DetectFile_EmptyString_Null()
{
string file = string.Empty;
var detectable = new NewExecutable(wrapper);
string? actual = detectable.Detect(file, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void DetectStream_EmptyStream_Empty()
{
Stream? stream = new MemoryStream();
string file = string.Empty;
var detectable = new NewExecutable(wrapper);
string? actual = detectable.Detect(stream, file, includeDebug: false);
Assert.NotNull(actual);
Assert.Empty(actual);
}
}
}

View File

@@ -0,0 +1,34 @@
using System.IO;
using BinaryObjectScanner.FileType;
using Xunit;
namespace BinaryObjectScanner.Test.FileType
{
public class PLJTests
{
private static readonly SabreTools.Serialization.Wrappers.PlayJAudioFile wrapper
= new(new SabreTools.Data.Models.PlayJ.AudioFile(), new MemoryStream(new byte[1024]));
[Fact]
public void DetectFile_EmptyString_Null()
{
string file = string.Empty;
var detectable = new PLJ(wrapper);
string? actual = detectable.Detect(file, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void DetectStream_EmptyStream_DefaultValue()
{
Stream? stream = new MemoryStream();
string file = string.Empty;
var detectable = new PLJ(wrapper);
string? actual = detectable.Detect(stream, file, includeDebug: false);
Assert.Equal("PlayJ Audio File", actual);
}
}
}

View File

@@ -0,0 +1,34 @@
using System.IO;
using BinaryObjectScanner.FileType;
using Xunit;
namespace BinaryObjectScanner.Test.FileType
{
public class PortableExecutableTests
{
private static readonly SabreTools.Serialization.Wrappers.PortableExecutable wrapper
= new(new SabreTools.Data.Models.PortableExecutable.Executable(), new MemoryStream(new byte[1024]));
[Fact]
public void DetectFile_EmptyString_Null()
{
string file = string.Empty;
var detectable = new PortableExecutable(wrapper);
string? actual = detectable.Detect(file, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void DetectStream_EmptyStream_Empty()
{
Stream? stream = new MemoryStream();
string file = string.Empty;
var detectable = new PortableExecutable(wrapper);
string? actual = detectable.Detect(stream, file, includeDebug: false);
Assert.NotNull(actual);
Assert.Empty(actual);
}
}
}

View File

@@ -0,0 +1,34 @@
using System.IO;
using BinaryObjectScanner.FileType;
using Xunit;
namespace BinaryObjectScanner.Test.FileType
{
public class RealArcadeInstallerTests
{
private static readonly SabreTools.Serialization.Wrappers.RealArcadeInstaller wrapper
= new(new SabreTools.Data.Models.RealArcade.RgsFile(), new MemoryStream(new byte[1024]));
[Fact]
public void DetectFile_EmptyString_Null()
{
string file = string.Empty;
var detectable = new RealArcadeInstaller(wrapper);
string? actual = detectable.Detect(file, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void DetectStream_EmptyStream_Null()
{
Stream? stream = new MemoryStream();
string file = string.Empty;
var detectable = new RealArcadeInstaller(wrapper);
string? actual = detectable.Detect(stream, file, includeDebug: false);
Assert.Equal("RealArcade Installer", actual);
}
}
}

View File

@@ -0,0 +1,34 @@
using System.IO;
using BinaryObjectScanner.FileType;
using Xunit;
namespace BinaryObjectScanner.Test.FileType
{
public class RealArcadeMezzanineTests
{
private static readonly SabreTools.Serialization.Wrappers.RealArcadeMezzanine wrapper
= new(new SabreTools.Data.Models.RealArcade.Mezzanine(), new MemoryStream(new byte[1024]));
[Fact]
public void DetectFile_EmptyString_Null()
{
string file = string.Empty;
var detectable = new RealArcadeMezzanine(wrapper);
string? actual = detectable.Detect(file, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void DetectStream_EmptyStream_Null()
{
Stream? stream = new MemoryStream();
string file = string.Empty;
var detectable = new RealArcadeMezzanine(wrapper);
string? actual = detectable.Detect(stream, file, includeDebug: false);
Assert.Equal("RealArcade Mezzanine", actual);
}
}
}

View File

@@ -0,0 +1,33 @@
using System.IO;
using BinaryObjectScanner.FileType;
using Xunit;
namespace BinaryObjectScanner.Test.FileType
{
public class SFFSTests
{
private static readonly SabreTools.Serialization.Wrappers.SFFS wrapper
= new(new SabreTools.Data.Models.StarForce.FileSystem(), new MemoryStream(new byte[1024]));
[Fact]
public void DetectFile_EmptyString_Null()
{
string file = string.Empty;
var detectable = new SFFS(wrapper);
string? actual = detectable.Detect(file, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void DetectStream_EmptyStream_Null()
{
Stream? stream = new MemoryStream();
string file = string.Empty;
var detectable = new SFFS(wrapper);
string? actual = detectable.Detect(stream, file, includeDebug: false);
Assert.Equal("StarForce Filesystem Container", actual);
}
}
}

View File

@@ -0,0 +1,31 @@
using System.IO;
using BinaryObjectScanner.FileType;
using Xunit;
namespace BinaryObjectScanner.Test.FileType
{
public class TextfileTests
{
[Fact]
public void DetectFile_EmptyString_Null()
{
string file = string.Empty;
var detectable = new Textfile();
string? actual = detectable.Detect(file, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void DetectStream_EmptyStream_Null()
{
Stream? stream = new MemoryStream();
string file = string.Empty;
var detectable = new Textfile();
string? actual = detectable.Detect(stream, file, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.GameEngine;
using Xunit;
namespace BinaryObjectScanner.Test.GameEngine
{
public class RenderWareTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new RenderWare();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Packer;
using Xunit;
namespace BinaryObjectScanner.Test.Packer
{
public class ASPackTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new ASPack();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Packer;
using Xunit;
namespace BinaryObjectScanner.Test.Packer
{
public class AdvancedInstallerTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new AdvancedInstaller();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Packer;
using Xunit;
namespace BinaryObjectScanner.Test.Packer
{
public class AutoPlayMediaStudioTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new AutoPlayMediaStudio();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Packer;
using Xunit;
namespace BinaryObjectScanner.Test.Packer
{
public class CExeTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new CExe();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Packer;
using Xunit;
namespace BinaryObjectScanner.Test.Packer
{
public class CrunchTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new Crunch();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Packer;
using Xunit;
namespace BinaryObjectScanner.Test.Packer
{
public class DotFuscatorTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new DotFuscator();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Packer;
using Xunit;
namespace BinaryObjectScanner.Test.Packer
{
public class DotNetReactorTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new DotNetReactor();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,33 @@
using System.IO;
using BinaryObjectScanner.Packer;
using Xunit;
namespace BinaryObjectScanner.Test.Packer
{
public class EXEStealthTests
{
[Fact]
public void CheckContentsTest()
{
string file = "filename";
byte[] fileContent = [0x01, 0x02, 0x03, 0x04];
var checker = new EXEStealth();
string? actual = checker.CheckContents(file, fileContent, includeDebug: true);
Assert.Null(actual);
}
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new EXEStealth();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Packer;
using Xunit;
namespace BinaryObjectScanner.Test.Packer
{
public class EmbeddedFileTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new EmbeddedFile();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Packer;
using Xunit;
namespace BinaryObjectScanner.Test.Packer
{
public class GenteeInstallerTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new GenteeInstaller();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Packer;
using Xunit;
namespace BinaryObjectScanner.Test.Packer
{
public class HyperTechCrackProofTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new HyperTechCrackProof();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,35 @@
using System.IO;
using BinaryObjectScanner.Packer;
using Xunit;
namespace BinaryObjectScanner.Test.Packer
{
public class InnoSetupTests
{
[Fact]
public void CheckNewExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.NewExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.NewExecutable exe = new(model, source);
var checker = new InnoSetup();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new InnoSetup();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Packer;
using Xunit;
namespace BinaryObjectScanner.Test.Packer
{
public class InstallAnywhereTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new InstallAnywhere();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Packer;
using Xunit;
namespace BinaryObjectScanner.Test.Packer
{
public class InstallerVISETests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new InstallerVISE();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Packer;
using Xunit;
namespace BinaryObjectScanner.Test.Packer
{
public class IntelInstallationFrameworkTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new IntelInstallationFramework();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Packer;
using Xunit;
namespace BinaryObjectScanner.Test.Packer
{
public class MicrosoftCABSFXTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new MicrosoftCABSFX();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Packer;
using Xunit;
namespace BinaryObjectScanner.Test.Packer
{
public class NSISTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new NSIS();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Packer;
using Xunit;
namespace BinaryObjectScanner.Test.Packer
{
public class NeoLiteTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new NeoLite();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Packer;
using Xunit;
namespace BinaryObjectScanner.Test.Packer
{
public class PECompactTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new PECompact();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Packer;
using Xunit;
namespace BinaryObjectScanner.Test.Packer
{
public class PetiteTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new PEtite();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Packer;
using Xunit;
namespace BinaryObjectScanner.Test.Packer
{
public class SetupFactoryTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new SetupFactory();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Packer;
using Xunit;
namespace BinaryObjectScanner.Test.Packer
{
public class SevenZipSFXTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new SevenZipSFX();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Packer;
using Xunit;
namespace BinaryObjectScanner.Test.Packer
{
public class ShrinkerTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new Shrinker();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Packer;
using Xunit;
namespace BinaryObjectScanner.Test.Packer
{
public class UPXTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new UPX();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Packer;
using Xunit;
namespace BinaryObjectScanner.Test.Packer
{
public class WinRARSFXTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new WinRARSFX();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,35 @@
using System.IO;
using BinaryObjectScanner.Packer;
using Xunit;
namespace BinaryObjectScanner.Test.Packer
{
public class WinZipSFXTests
{
[Fact]
public void CheckNewExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.NewExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.NewExecutable exe = new(model, source);
var checker = new WinZipSFX();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new WinZipSFX();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,35 @@
using System.IO;
using BinaryObjectScanner.Packer;
using Xunit;
namespace BinaryObjectScanner.Test.Packer
{
public class WiseInstallerTests
{
[Fact]
public void CheckNewExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.NewExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.NewExecutable exe = new(model, source);
var checker = new WiseInstaller();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new WiseInstaller();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,33 @@
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class ActiveMARKTests
{
[Fact]
public void CheckContentsTest()
{
string file = "filename";
byte[] fileContent = [0x01, 0x02, 0x03, 0x04];
var checker = new ActiveMARK();
string? actual = checker.CheckContents(file, fileContent, includeDebug: true);
Assert.Null(actual);
}
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new ActiveMARK();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,44 @@
using System.Collections.Generic;
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class AegiSoftTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new AegiSoft();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new AegiSoft();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new AegiSoft();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,30 @@
using System.Collections.Generic;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class AlphaDVDTests
{
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new AlphaDVD();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new AlphaDVD();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class AlphaROMTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new AlphaROM();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class ArmadilloTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new Armadillo();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,30 @@
using System.Collections.Generic;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class BitpoolTests
{
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new Bitpool();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new Bitpool();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,44 @@
using System.Collections.Generic;
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class ByteShieldTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new ByteShield();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new ByteShield();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new ByteShield();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class CDCheckTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new CDCheck();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,57 @@
using System.Collections.Generic;
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class CDDVDCopsTests
{
[Fact]
public void CheckNewExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.NewExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.NewExecutable exe = new(model, source);
var checker = new CDDVDCops();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new CDDVDCops();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new CDDVDCops();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new CDDVDCops();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,44 @@
using System.Collections.Generic;
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class CDGuardTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new CDGuard();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new CDGuard();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new CDGuard();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class CDKeyTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new CDKey();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,44 @@
using System.Collections.Generic;
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class CDLockTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new CDLock();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new CDLock();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new CDLock();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,30 @@
using System.Collections.Generic;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class CDProtectorTests
{
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new CDProtector();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new CDProtector();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class CDSHiELDSETests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new CDSHiELDSE();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,30 @@
using System.Collections.Generic;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class CDXTests
{
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new CDX();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new CDX();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,19 @@
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class CactusDataShieldTests
{
[Fact]
public void CheckContentsTest()
{
string file = "filename";
byte[] fileContent = [0x01, 0x02, 0x03, 0x04];
var checker = new CactusDataShield();
string? actual = checker.CheckContents(file, fileContent, includeDebug: true);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,44 @@
using System.Collections.Generic;
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class CenegaProtectDVDTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new CenegaProtectDVD();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new CenegaProtectDVD();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new CenegaProtectDVD();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,44 @@
using System.Collections.Generic;
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class ChannelwareTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new Channelware();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new Channelware();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new Channelware();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,44 @@
using System.Collections.Generic;
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class ChosenBytesCodeLockTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new ChosenBytesCodeLock();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new ChosenBytesCodeLock();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new ChosenBytesCodeLock();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,44 @@
using System.Collections.Generic;
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class CopyKillerTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new CopyKiller();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new CopyKiller();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new CopyKiller();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class CopyLokTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new CopyLok();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,44 @@
using System.Collections.Generic;
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class CopyXTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new CopyX();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new CopyX();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new CopyX();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,44 @@
using System.Collections.Generic;
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class CrypKeyTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new CrypKey();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new CrypKey();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new CrypKey();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class CuckoTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new Cucko();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,30 @@
using System.Collections.Generic;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class DVDCryptTests
{
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new DVDCrypt();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new DVDCrypt();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,30 @@
using System.Collections.Generic;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class DVDMoviePROTECTTests
{
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new DVDMoviePROTECT();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new DVDMoviePROTECT();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,44 @@
using System.Collections.Generic;
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class DenuvoTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new Denuvo();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new Denuvo();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new Denuvo();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,44 @@
using System.Collections.Generic;
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class DigiGuardTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new DigiGuard();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new DigiGuard();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new DigiGuard();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,30 @@
using System.Collections.Generic;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class DinamicMultimediaTests
{
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new DinamicMultimedia();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new DinamicMultimedia();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,44 @@
using System.Collections.Generic;
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class DiscGuardTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new DiscGuard();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new DiscGuard();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new DiscGuard();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,44 @@
using System.Collections.Generic;
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class EAAntiCheatTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new EAAntiCheat();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new EAAntiCheat();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new EAAntiCheat();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,44 @@
using System.Collections.Generic;
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class EasyAntiCheatTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new EasyAntiCheat();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new EasyAntiCheat();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new EasyAntiCheat();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class ElectronicArtsTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new ElectronicArts();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,44 @@
using System.Collections.Generic;
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class Engine32Tests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new Engine32();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new Engine32();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new Engine32();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,30 @@
using System.Collections.Generic;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class FreelockTests
{
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new Freelock();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new Freelock();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,44 @@
using System.Collections.Generic;
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class GFWLTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new GFWL();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new GFWL();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new GFWL();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,44 @@
using System.Collections.Generic;
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class GefestTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new Gefest();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new Gefest();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new Gefest();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,44 @@
using System.Collections.Generic;
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class HexalockAutoLockTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new HexalockAutoLock();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new HexalockAutoLock();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new HexalockAutoLock();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,44 @@
using System.Collections.Generic;
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class ImpulseReactorTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new ImpulseReactor();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new ImpulseReactor();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new ImpulseReactor();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,30 @@
using System.Collections.Generic;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class IndyVCDTests
{
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new IndyVCD();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new IndyVCD();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class InteniumTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new Intenium();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class InterLokTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new InterLok();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class JoWoodTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new JoWood();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,44 @@
using System.Collections.Generic;
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class KalypsoLauncherTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new KalypsoLauncher();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new KalypsoLauncher();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new KalypsoLauncher();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,19 @@
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class KeyLockTests
{
[Fact]
public void CheckContentsTest()
{
string file = "filename";
byte[] fileContent = [0x01, 0x02, 0x03, 0x04];
var checker = new KeyLock();
string? actual = checker.CheckContents(file, fileContent, includeDebug: true);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,44 @@
using System.Collections.Generic;
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class LabelGateTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new LabelGate();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new LabelGate();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new LabelGate();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,44 @@
using System.Collections.Generic;
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class LaserLokTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new LaserLok();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new LaserLok();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new LaserLok();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,22 @@
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class MGIRegistrationTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new MGIRegistration();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,57 @@
using System.Collections.Generic;
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class MacrovisionTests
{
[Fact]
public void CheckNewExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.NewExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.NewExecutable exe = new(model, source);
var checker = new Macrovision();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new Macrovision();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new Macrovision();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new Macrovision();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,44 @@
using System.Collections.Generic;
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class MediaCloQTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new MediaCloQ();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new MediaCloQ();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new MediaCloQ();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,44 @@
using System.Collections.Generic;
using System.IO;
using BinaryObjectScanner.Protection;
using Xunit;
namespace BinaryObjectScanner.Test.Protection
{
public class MediaMaxTests
{
[Fact]
public void CheckPortableExecutableTest()
{
string file = "filename";
SabreTools.Data.Models.PortableExecutable.Executable model = new();
Stream source = new MemoryStream(new byte[1024]);
SabreTools.Serialization.Wrappers.PortableExecutable exe = new(model, source);
var checker = new MediaMax();
string? actual = checker.CheckExecutable(file, exe, includeDebug: false);
Assert.Null(actual);
}
[Fact]
public void CheckDirectoryPathTest()
{
string path = "path";
List<string> files = [];
var checker = new MediaMax();
List<string> actual = checker.CheckDirectoryPath(path, files);
Assert.Empty(actual);
}
[Fact]
public void CheckFilePathTest()
{
string path = "path";
var checker = new MediaMax();
string? actual = checker.CheckFilePath(path);
Assert.Null(actual);
}
}
}

Some files were not shown because too many files have changed in this diff Show More