ShareX is a free and open-source application that enables users to capture or record any area of their screen with a single keystroke. It also supports uploading images, text, and various file types to a wide range of destinations.
This report summarizes scanner evidence for ShareX/ShareX, a C# project with 40,538 GitHub stars. SynthScan examined 300,651 lines of code across 1361 source files, recording 262 pattern matches distributed across 6 syntactic categories. The legacy adjusted pattern signal is 1.4 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 249 finding(s).
Are imports declared and package/API names verified? 13 finding(s).
Are wrappers, guards, and repeated structures necessary? 0 finding(s).
Which changes need focused human review? 262 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 262 distinct pattern matches across 6 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ShareX.UploadersLib/FileUploaders/BackblazeB2.cs | 381 | /// <param name="destinationPath">The remote path to upload to.</param> | COMMENT |
| LOW | ShareX.UploadersLib/FileUploaders/SendSpace.cs | 241 | } | COMMENT |
| LOW | ShareX.UploadersLib/FileUploaders/SendSpace.cs | 461 | COMMENT | |
| LOW | ShareX.UploadersLib/Properties/Resources.Designer.cs | 1 | //------------------------------------------------------------------------------ | COMMENT |
| LOW | ShareX.UploadersLib/Properties/Resources.Designer.cs | 61 | } | COMMENT |
| LOW | ….ImageEditor/Core/ImageEffects/Helpers/ImageHelpers.cs | 221 | { | COMMENT |
| LOW | …eX.ImageEditor/Core/Annotations/Text/TextAnnotation.cs | 41 | /// <summary> | COMMENT |
| LOW | …ditor/Core/Annotations/Text/SpeechBalloonAnnotation.cs | 41 | /// <summary> | COMMENT |
| LOW | …ditor/Core/Annotations/Text/SpeechBalloonAnnotation.cs | 61 | public string Text { get; set; } = ""; | COMMENT |
| LOW | …ditor/Core/Annotations/Text/SpeechBalloonAnnotation.cs | 81 | public bool IsBold { get; set; } | COMMENT |
| LOW | ….ImageEditor/Core/Annotations/Text/NumberAnnotation.cs | 41 | /// Number to display (typically auto-incremented) | COMMENT |
| LOW | ShareX.ImageEditor/Core/Annotations/Base/Annotation.cs | 61 | /// Functional category of this annotation type (Shapes, Effects, or Text). | COMMENT |
| LOW | ShareX.ImageEditor/Core/Annotations/Base/Annotation.cs | 81 | /// Stroke width in pixels | COMMENT |
| LOW | ShareX.ImageEditor/Core/Annotations/Base/Annotation.cs | 101 | /// Shadow blur radius in pixels | COMMENT |
| LOW | ShareX.ImageEditor/Core/Annotations/Base/Annotation.cs | 121 | /// Starting point (top-left for rectangles, start for lines/arrows) | COMMENT |
| LOW | ShareX.ImageEditor/Core/Annotations/Base/Annotation.cs | 141 | /// Rotation angle in degrees (clockwise). Used for rotating annotations. | COMMENT |
| LOW | ShareX.ImageEditor/Core/Annotations/Base/Annotation.cs | 161 | Math.Max(StartPoint.X, EndPoint.X), | COMMENT |
| LOW | ShareX.ImageEditor/Core/History/EditorMemento.cs | 41 | COMMENT | |
| LOW | ShareX.ImageEditor/Core/Editor/EditorCore.cs | 41 | /// | COMMENT |
| LOW | ShareX.ImageEditor/Core/Editor/EditorCore.cs | 81 | /// Raised when undo/redo history state changes | COMMENT |
| LOW | ShareX.ImageEditor/Core/Editor/EditorCore.cs | 101 | /// </summary> | COMMENT |
| LOW | ShareX.ImageEditor/Integration/EditorServices.cs | 41 | /// Clipboard service for copy/paste operations. | COMMENT |
| LOW | …or/Presentation/ViewModels/MainViewModel.ImageState.cs | 81 | SkiaSharp.SKBitmap? coreSource = _editorCore?.SourceImage; | COMMENT |
| LOW | …r/Presentation/Rendering/AnnotationCoordinateHelper.cs | 21 | Optionally you can also view the license at <http://www.gnu.org/licenses/>. | COMMENT |
| LOW | …r/Presentation/Rendering/AnnotationCoordinateHelper.cs | 41 | /// </para> | COMMENT |
| LOW | …r/Presentation/Rendering/AnnotationCoordinateHelper.cs | 61 | { | COMMENT |
| LOW | ShareX/Properties/Resources.Designer.cs | 1 | //------------------------------------------------------------------------------ | COMMENT |
| LOW | ShareX/Localization/Strings.Designer.cs | 1 | //------------------------------------------------------------------------------ | COMMENT |
| LOW | ShareX.HelpersLib/Native/NativeStructs.cs | 321 | /// <summary> | COMMENT |
| LOW | ShareX.HelpersLib/Native/NativeStructs.cs | 381 | /// Four-character code indicating the stream type. | COMMENT |
| LOW | ShareX.HelpersLib/Native/NativeStructs.cs | 401 | /// <summary> | COMMENT |
| LOW | ShareX.HelpersLib/Native/NativeStructs.cs | 421 | COMMENT | |
| LOW | ShareX.HelpersLib/Native/NativeStructs.cs | 441 | /// | COMMENT |
| LOW | ShareX.HelpersLib/Native/NativeStructs.cs | 461 | /// <summary> | COMMENT |
| LOW | ShareX.HelpersLib/Native/NativeStructs.cs | 481 | [MarshalAs(UnmanagedType.I4)] | COMMENT |
| LOW | ShareX.HelpersLib/Native/NativeStructs.cs | 521 | /// </summary> | COMMENT |
| LOW | ShareX.HelpersLib/Native/NativeStructs.cs | 541 | /// Quality value passed to a video compressor. | COMMENT |
| LOW | ShareX.HelpersLib/Native/NativeStructs.cs | 561 | /// <summary> | COMMENT |
| LOW | ShareX.HelpersLib/Native/NativeConstants.cs | 81 | COMMENT | |
| LOW | ShareX.HelpersLib/Native/NativeMethods.cs | 541 | /// | COMMENT |
| LOW | ShareX.HelpersLib/Native/NativeMethods.cs | 561 | /// | COMMENT |
| LOW | ShareX.HelpersLib/Native/NativeMethods.cs | 581 | /// <summary> | COMMENT |
| LOW | ShareX.HelpersLib/Native/NativeMethods.cs | 601 | /// | COMMENT |
| LOW | ShareX.HelpersLib/Native/NativeMethods.cs | 621 | /// <param name="position">Position in the stream to receive the format.</param> | COMMENT |
| LOW | ShareX.HelpersLib/Native/NativeMethods.cs | 641 | /// </summary> | COMMENT |
| LOW | ShareX.HelpersLib/Native/NativeMethods.cs | 661 | /// <summary> | COMMENT |
| LOW | ShareX.HelpersLib/Native/NativeMethods.cs | 681 | public static extern IntPtr AVIStreamGetFrameOpen(IntPtr streamHandler, int wantedFormat); | COMMENT |
| LOW | ShareX.HelpersLib/Native/NativeMethods.cs | 701 | [DllImport("avifil32.dll")] | COMMENT |
| LOW | ShareX.HelpersLib/Native/NativeMethods.cs | 721 | COMMENT | |
| LOW | ShareX.HelpersLib/Native/NativeMethods.cs | 741 | /// <param name="streams">Count of the AVICOMPRESSOPTIONS structures referenced in <b>options</b>.</param> | COMMENT |
| LOW | ShareX.HelpersLib/Native/NativeEnums.cs | 201 | /// Height of the screen of the primary display monitor, in pixels. This is the same values obtained by calling | COMMENT |
| LOW | ShareX.HelpersLib/Native/NativeEnums.cs | 221 | /// Height of a window border, in pixels. This is equivalent to the SM_CYEDGE value for windows with the 3-D loo | COMMENT |
| LOW | ShareX.HelpersLib/Native/NativeEnums.cs | 241 | /// Default width of an icon, in pixels. The LoadIcon function can load only icons with the dimensions specified | COMMENT |
| LOW | ShareX.HelpersLib/Native/NativeEnums.cs | 261 | /// Width of the client area for a full-screen window on the primary display monitor, in pixels. To get the coor | COMMENT |
| LOW | ShareX.HelpersLib/Native/NativeEnums.cs | 281 | /// Width of the arrow bitmap on a horizontal scroll bar, in pixels. | COMMENT |
| LOW | ShareX.HelpersLib/Native/NativeEnums.cs | 301 | /// Reserved for future use | COMMENT |
| LOW | ShareX.HelpersLib/Native/NativeEnums.cs | 321 | /// Height of a button in a window's caption or title bar, in pixels. | COMMENT |
| LOW | ShareX.HelpersLib/Native/NativeEnums.cs | 341 | /// Width of the rectangle around the location of a first click in a double-click sequence, in pixels. The secon | COMMENT |
| LOW | ShareX.HelpersLib/Native/NativeEnums.cs | 361 | /// Nonzero if the Microsoft Windows for Pen computing extensions are installed; zero otherwise. | COMMENT |
| LOW | ShareX.HelpersLib/Native/NativeEnums.cs | 381 | /// Identical Values Changed After Windows NT 4.0 | COMMENT |
| 145 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | ShareX.PhotoEditor/UI/PhotoEditorWindow.cs | 109 | ShareX.PhotoEditor.UI.Theme.PhotoEditorTheme.Apply(this); | CODE |
| CRITICAL | ShareX.PhotoEditor/UI/Dialogs/DialogBuilder.cs | 51 | ShareX.PhotoEditor.UI.Theme.PhotoEditorTheme.Apply(window); | CODE |
| CRITICAL | …r/Presentation/ViewModels/MainViewModel.CanvasState.cs | 315 | CanvasShadow = new BoxShadows(ShareX.ImageEditor.Presentation.Helpers.ShadowEffectHelper.CreateCanvasSha | CODE |
| CRITICAL | …dering/AnnotationVisuals/RectangleAnnotation.Visual.cs | 61 | rect.Effect = ShareX.ImageEditor.Presentation.Helpers.ShadowEffectHelper.CreateDropShadow(this); | CODE |
| CRITICAL | …ng/AnnotationVisuals/SpeechBalloonAnnotation.Visual.cs | 53 | control.Effect = ShareX.ImageEditor.Presentation.Helpers.ShadowEffectHelper.CreateDropShadow(this); | CODE |
| CRITICAL | …/Rendering/AnnotationVisuals/ArrowAnnotation.Visual.cs | 55 | path.Effect = ShareX.ImageEditor.Presentation.Helpers.ShadowEffectHelper.CreateDropShadow(this); | CODE |
| CRITICAL | …dering/AnnotationVisuals/TextAnnotation.TextEditing.cs | 64 | textBox.Effect = ShareX.ImageEditor.Presentation.Helpers.ShadowEffectHelper.CreateDropShadow(this); | CODE |
| CRITICAL | …Rendering/AnnotationVisuals/NumberAnnotation.Visual.cs | 49 | control.Effect = ShareX.ImageEditor.Presentation.Helpers.ShadowEffectHelper.CreateDropShadow(this); | CODE |
| CRITICAL | …endering/AnnotationVisuals/EllipseAnnotation.Visual.cs | 59 | ellipse.Effect = ShareX.ImageEditor.Presentation.Helpers.ShadowEffectHelper.CreateDropShadow(this); | CODE |
| CRITICAL | …ndering/AnnotationVisuals/FreehandAnnotation.Visual.cs | 54 | path.Effect = ShareX.ImageEditor.Presentation.Helpers.ShadowEffectHelper.CreateDropShadow(this); | CODE |
| CRITICAL | …n/Rendering/AnnotationVisuals/TextAnnotation.Visual.cs | 51 | control.Effect = ShareX.ImageEditor.Presentation.Helpers.ShadowEffectHelper.CreateDropShadow(this); | CODE |
| CRITICAL | …n/Rendering/AnnotationVisuals/LineAnnotation.Visual.cs | 55 | path.Effect = ShareX.ImageEditor.Presentation.Helpers.ShadowEffectHelper.CreateDropShadow(this); | CODE |
| CRITICAL | …itor/Presentation/Controllers/EditorInputController.cs | 520 | path.Effect = ShareX.ImageEditor.Presentation.Helpers.ShadowEffectHelper.CreateDropShadow(freehand); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | ShareX.UploadersLib/Properties/Resources.Designer.cs | 3 | // This code was generated by a tool. | COMMENT |
| HIGH | ShareX.UploadersLib/Localization/Strings.Designer.cs | 3 | // This code was generated by a tool. | COMMENT |
| HIGH | ShareX.ImageEffectsLib/Localization/Strings.Designer.cs | 3 | // This code was generated from Localization/Strings.resx. | COMMENT |
| HIGH | ShareX.ImageEditor/Localization/Strings.Designer.cs | 3 | // This code was generated by a tool. | COMMENT |
| HIGH | ShareX/Properties/Resources.Designer.cs | 3 | // This code was generated by a tool. | COMMENT |
| HIGH | ShareX/Localization/Strings.Designer.cs | 3 | // This code was generated by a tool. | COMMENT |
| HIGH | ShareX.HelpersLib/Properties/Resources.Designer.cs | 3 | // This code was generated by a tool. | COMMENT |
| HIGH | ShareX.HelpersLib/Localization/Strings.Designer.cs | 3 | // This code was generated by a tool. | COMMENT |
| HIGH | ShareX.Tools/Localization/Strings.Designer.cs | 3 | // This code was generated by a tool. | COMMENT |
| HIGH | ShareX.HistoryLib/Localization/Strings.Designer.cs | 3 | // This code was generated by a tool. | COMMENT |
| HIGH | …areX.ScreenCaptureLib/Localization/Strings.Designer.cs | 3 | // This code was generated by a tool. | COMMENT |
| HIGH | ShareX.Avalonia/Localization/Strings.Designer.cs | 3 | // This code was generated by a tool. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …r/Core/ImageEffects/Filters/ChalkDrawingImageEffect.cs | 63 | // Step 1: Compute edge intensity using Sobel-like operator on luminance. | COMMENT |
| LOW | …r/Core/ImageEffects/Filters/ChalkDrawingImageEffect.cs | 105 | // Step 2: Generate chalk texture noise (deterministic). | COMMENT |
| LOW | …r/Core/ImageEffects/Filters/ChalkDrawingImageEffect.cs | 116 | // Step 3: Combine edges, luminance, and noise into chalk drawing. | COMMENT |
| LOW⚡ | …r/Core/ImageEffects/Filters/WoodcutPrintImageEffect.cs | 67 | // Step 1: Compute luminance. | COMMENT |
| LOW⚡ | …r/Core/ImageEffects/Filters/WoodcutPrintImageEffect.cs | 75 | // Step 2: Edge detection (Sobel magnitude). | COMMENT |
| LOW | …r/Core/ImageEffects/Filters/WoodcutPrintImageEffect.cs | 94 | // Step 3: Generate wood grain pattern (horizontal wave noise). | COMMENT |
| LOW | …r/Core/ImageEffects/Filters/WoodcutPrintImageEffect.cs | 123 | // Step 4: Compose. Dark areas become ink, light areas become paper. | COMMENT |
| LOW | …ditor/Core/ImageEffects/Adjustments/LomoImageEffect.cs | 53 | // Step 1: High contrast + warm color shift | COMMENT |
| LOW | …ditor/Core/ImageEffects/Adjustments/LomoImageEffect.cs | 76 | // Step 2: Vignette | COMMENT |
| LOW | …or/Core/ImageEffects/Adjustments/ClarityImageEffect.cs | 63 | // Step 1: Create a blurred (low-frequency) version of the image. | COMMENT |
| LOW | …or/Core/ImageEffects/Adjustments/ClarityImageEffect.cs | 79 | // Step 2: Compute high-pass detail = original - blurred, | COMMENT |
| LOW | …ImageEditor/Core/Annotations/Effects/BlurAnnotation.cs | 192 | // Step 1: Create extended surface with clamped edges | COMMENT |
| LOW | …ImageEditor/Core/Annotations/Effects/BlurAnnotation.cs | 208 | // Step 2: Apply blur to the extended surface | COMMENT |
| LOW | …ImageEditor/Core/Annotations/Effects/BlurAnnotation.cs | 220 | // Step 3: Extract the valid region from blurred result | COMMENT |
| LOW | …ImageEditor/Core/Annotations/Effects/BlurAnnotation.cs | 248 | // Step 4: Draw blurred region into result at correct offset | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …r/Core/ImageEffects/Filters/ChalkDrawingImageEffect.cs | 63 | // Step 1: Compute edge intensity using Sobel-like operator on luminance. | COMMENT |
| LOW | …r/Core/ImageEffects/Filters/ChalkDrawingImageEffect.cs | 105 | // Step 2: Generate chalk texture noise (deterministic). | COMMENT |
| LOW | …r/Core/ImageEffects/Filters/ChalkDrawingImageEffect.cs | 116 | // Step 3: Combine edges, luminance, and noise into chalk drawing. | COMMENT |
| LOW⚡ | …r/Core/ImageEffects/Filters/WoodcutPrintImageEffect.cs | 67 | // Step 1: Compute luminance. | COMMENT |
| LOW⚡ | …r/Core/ImageEffects/Filters/WoodcutPrintImageEffect.cs | 75 | // Step 2: Edge detection (Sobel magnitude). | COMMENT |
| LOW | …r/Core/ImageEffects/Filters/WoodcutPrintImageEffect.cs | 94 | // Step 3: Generate wood grain pattern (horizontal wave noise). | COMMENT |
| LOW | …r/Core/ImageEffects/Filters/WoodcutPrintImageEffect.cs | 123 | // Step 4: Compose. Dark areas become ink, light areas become paper. | COMMENT |
| LOW | …ditor/Core/ImageEffects/Adjustments/LomoImageEffect.cs | 53 | // Step 1: High contrast + warm color shift | COMMENT |
| LOW | …ditor/Core/ImageEffects/Adjustments/LomoImageEffect.cs | 76 | // Step 2: Vignette | COMMENT |
| LOW | …or/Core/ImageEffects/Adjustments/ClarityImageEffect.cs | 63 | // Step 1: Create a blurred (low-frequency) version of the image. | COMMENT |
| LOW | …or/Core/ImageEffects/Adjustments/ClarityImageEffect.cs | 79 | // Step 2: Compute high-pass detail = original - blurred, | COMMENT |
| LOW | …ImageEditor/Core/Annotations/Effects/BlurAnnotation.cs | 192 | // Step 1: Create extended surface with clamped edges | COMMENT |
| LOW | …ImageEditor/Core/Annotations/Effects/BlurAnnotation.cs | 208 | // Step 2: Apply blur to the extended surface | COMMENT |
| LOW | …ImageEditor/Core/Annotations/Effects/BlurAnnotation.cs | 220 | // Step 3: Extract the valid region from blurred result | COMMENT |
| LOW | …ImageEditor/Core/Annotations/Effects/BlurAnnotation.cs | 248 | // Step 4: Draw blurred region into result at correct offset | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | ShareX.HelpersLib/GIF/SkiaGrayscaleQuantizer.cs | 60 | // Pick the first one arbitrarily, for demonstration purposes. | COMMENT |
| MEDIUM | ShareX.HelpersLib/GIF/SkiaGrayscaleQuantizer.cs | 62 | // Create a gray scale for demonstration purposes. | COMMENT |