YAPA: UFile hides a Chrome Search Hijacker

UFile | Search Hijacker — Technical Analysis
Malware research / technical case study

UFile: Signed PDF Utility Delivering an In-Memory Chrome Search Hijacker

A .NET installer distributed through an advertising redirect downloads a functional PDF utility, retrieves an encrypted .NET stage, and modifies Chrome search-provider configuration to use an operator-supplied search destination.

Search hijacking reproduced
Analysis: October 30, 2026Platform: Windows / Google ChromeEvidence: PE, Authenticode, dnSpy exports, Fiddler SAZ, Frida, controlled rerun

Executive summary

Classification: Browser/search hijacker delivered through a signed PDF utility installation chain. The original executable is signed by FAIRLIE LIMITED. Its first-stage installer obtains an application ZIP from alyclick.com; the installed application requests an encrypted second-stage payload from api.catchasail.com, decrypts it with date-derived AES-CBC material, and executes the recovered .NET assembly in memory.

The recovered assembly, AutomationPref, requests a search-provider URL from catchasail.com/u_partner_cfg, kills Chrome, rewrites Preferences / Secure Preferences and preference-integrity metadata, then relaunches Chrome. In a controlled reinstallation after the browser redirect had been cleared, the investigator observed a renewed quickbrowse.co → Yahoo search redirection.

Family attribution: No demonstrated code-family or operator linkage to CookUp. The same advertisement-origin site and similar affected-host circumstances support possible distribution-channel overlap only. This report treats UFile as a distinct case.

Initial installer
Signed .NET
FAIRLIE LIMITED / GlobalSign EV
Second stage
3.32 MB
Recovered x64 .NET assembly
Observed impact
Chrome search
Unwanted search redirection

1 · Discovery and distribution

An investigated host had browsed homemade-gifts-made-easy.com and encountered advertising redirects associated with PDF/document software, including GooPDF and UFile. An observed UFile landing-page host was goyoufile.com. The UFile landing page displayed a preselected consent option concerning browser-performance setting optimization. The association is a delivery observation, not evidence that GooPDF and UFile share a malware family.

Original UFile advertisement landing page captured during investigation, showing goyoufile.com, the PDF utility download prompt, and preselected browser optimization consent
Figure 1 — Original UFile advertisement landing page. Investigator-provided screenshot showing the goyoufile.com URL, the “Open The Downloaded File” prompt, and the prechecked browser-settings consent. This documents the observed distribution experience, not a proven affiliation with other software promoted on the same source website.

Original signed installer

Product / filenameUFile / UFileSetup.exe (analyzed locally as ufile.exe)
SHA-2566bb5a82d9acd6d846d5ebd928ec8eec8c0ac67cf7a76d3c6b0e225169fd382e3
File version19.0.7.8; resource CompanyName empty; product UFile; copyright © 2024
Signer subjectCN=FAIRLIE LIMITED, O=FAIRLIE LIMITED; E=myro@fairlie.xyz; 31 Oikonomou Konstantinou, Strovolos, Nicosia, Cyprus; registered organization serial HE424676
IssuerGlobalSign GCC R45 EV CodeSigning CA 2020 (GlobalSign nv-sa, BE)
Certificate thumbprintB486151303A89351C7AD52775C7A6D2B2E505E41
Certificate validityJune 8, 2026 – June 9, 2027 (displayed in analyst's local time)
Timestamp signerDigiCert SHA256 RSA4096 Timestamp Responder 2025
Authenticode statusValid — “Signature verified.” Does not establish benign behavior.
FormatManaged .NET executable; imports mscoree.dll!_CorExeMain; observed 12,144-byte certificate table exactly accounts for reported PE overlay

2 · Staged installation and execution

Ad click → UFile setup
Initial signed .NET WPF installer
↓
POST alyclick.com/get_u
Machine fingerprint / OS build; HTTP 200, 4,315,072-byte ZIP
↓
%LOCALAPPDATA%\Programs\UFile\UFile.exe
Installed PDF utility with QPDF tools; installation callback to /u_flow_done
↓
api.catchasail.com/u_session_grant → /u_bundle_acquire
Token-based stage retrieval; large Base64-encoded encrypted response
↓
AES-CBC decrypt → extract PE → Assembly.Load()
Run in-memory AutomationPref .NET assembly
↓
catchasail.com/u_partner_cfg → Chrome modification
Operator-supplied search provider; Chrome restart and result reporting

The bootstrapper derives a stable you_id fingerprint using a SHA-256 hash of the C: volume serial number concatenated with the Windows directory creation timestamp. The first-stage payload is an application ZIP, not the encrypted stage.

The installed UFile.exe is also managed .NET (CLR directory RVA 0x2000, size 72). Its DeployService.PerformDeployAsync() obtains a session token, retrieves encoded/encrypted content, decrypts it, reconstructs assembly bytes, and invokes an entry point through Assembly.Load().

Key = SHA256(UTF8(installDate))
IV  = MD5(UTF8(currentTime))
Cipher = AES-CBC / PKCS7
Date strings use "yyyyMMddss" (seconds but no hours/minutes)

Assembly assembly = Assembly.Load(assemblyBytes);
assembly.EntryPoint.Invoke(null, arguments);

Recovered stage: AutomationPref, 3,320,832 bytes, x64 managed .NET. Its SHA-256 is afcc8b57df4cdc503646fc59368be57e180961592381f9248f8d2d77183a42bc. The earlier observed bundle_digest matched the recovered stage's MD5 3290292ab1a2f512a1938fdfbb710720.

No separate dropped copy of the recovered assembly was found in the specific AppData/Temp creation-time search; this negative result is consistent with in-memory execution but does not prove that no other file writes occurred.

3 · Chrome search-hijacking mechanism

The recovered second-stage decompiles as AutomationPref. Infrastructure.Handler.Start() explicitly sequences the modification:

SendFtoLog();
setOSOU(suid);                   // fetch /u_partner_cfg
KillChrome();
swapPref();                    // modify Chrome profile data
RestartChromeProcess(profile);
VerifyFileContainsMarker(...);
SendLog();                     // /u_close_ping2

Search provider sourced from infrastructure

setOSOU() sends a request to https://catchasail.com/u_partner_cfg and builds a provider using the returned URL. In the original Fiddler session, the returned destination was trai.eepsearch.com. The resulting Chrome search template appends &q={searchTerms}; the display name is New.

Profile modification: SecurePrefsSimulation assigns replacement default_search_provider_data.template_url_data and mirrored_template_url_data entries. MacValidator calculates replacement HMAC-SHA256 integrity data, and the code removes template_url_data_encrypted_hash. Helper.ReplaceFileSecurely() stages modified JSON and replaces Chrome preference files.

Chrome restart: the payload terminates Chrome processes and relaunches a Chrome executable with:

--profile-directory="Default"
--hide-crash-restore-bubble
--disable-features=EncryptedPrefHashing

This command line was independently observed through the Frida process-creation hook. The feature name suggests an attempt to influence preference-integrity enforcement, but exact effects depend on the Chrome build and were not separately tested.

Extension interference and telemetry

ExtensionChecker inspects installed extension manifests for chrome_settings_overrides, queries catchasail.com/u_ext, and conditionally changes an extension's disable_reasons when instructed. u_close_ping2 reports operation status and browser/search information. The payload includes Chrome Local State / DPAPI / AES-GCM-related code; the analysis did not establish credential theft or exfiltration of personal browser data.

Observed browser impact and attribution boundaries

EvidenceObservationInterpretation
Controlled baselineRemoval/recreation of existing Chrome preferences eliminated observed redirects; checked files contained none of the selected known stringsObserved Cleaned baseline for tested indicators
ReinfectionAfter UFile reinstallation, UFile opened Chrome and QuickBrowse redirection returnedObserved Strong installation-chain attribution
FridaLarge Chrome-related JSON writes with trai.eepsearch.com search templates; subsequent Chrome launch with feature switchObserved Supports direct preference rewrite
Chrome preferencestrai.eepsearch.com entry appeared in Preferences and Secure PreferencesObserved Consistent with /u_partner_cfg
QuickBrowse URLquickbrowse.co/search/?chnm3=w64cjbu7&q=... before YahooQualified Exact routing/relationship to EepSearch not yet reconstructed

4 · Indicators of compromise / investigation pivots

Network indicators below are recorded in defanged form for safe handling. Domains associated with advertising or search services may be shared infrastructure; do not assume every related visit is malicious. “Source” specifies the supporting evidence.

IndicatorType / roleEvidence
6bb5a82d9acd6d846d5ebd928ec8eec8c0ac67cf7a76d3c6b0e225169fd382e3SHA-256 · initial installerInvestigator-provided hash
6a915d4c09939d9c2e872e84a0ebeaf3fd753af5029e2474b28065f61b2c1aafSHA-256 · installed UFile.exeFirst-stage captured ZIP, recomputed
afcc8b57df4cdc503646fc59368be57e180961592381f9248f8d2d77183a42bcSHA-256 · recovered in-memory stageRecovered assembly, recomputed
3290292ab1a2f512a1938fdfbb710720MD5 · stage digestRecovery and earlier reported digest correlation
B486151303A89351C7AD52775C7A6D2B2E505E41Certificate thumbprint · FAIRLIE LIMITEDPowerShell Authenticode output
alyclick[.]com/get_uInitial ZIP acquisitionFiddler SAZ / dnSpy installer
alyclick[.]com/u_flow_doneInstaller completion callbackFiddler SAZ / dnSpy installer
api[.]catchasail[.]com/u_session_grantStage session/tokenFiddler SAZ / dnSpy application
api[.]catchasail[.]com/u_bundle_acquireEncrypted in-memory stage retrievalFiddler SAZ / dnSpy application
api[.]catchasail[.]com/u_status_digestDigest reporting; HTTP 404 observedFiddler SAZ
catchasail[.]com/u_install_startStage execution telemetryFiddler SAZ / AutomationPref code
catchasail[.]com/u_partner_cfgServer-controlled search configurationFiddler SAZ / AutomationPref code
catchasail[.]com/u_extExtension decision endpointAutomationPref code; not established in captured SAZ
catchasail[.]com/u_close_ping2Chrome modification telemetryFiddler SAZ / AutomationPref code
trai[.]eepsearch[.]comSearch provider delivered during original testFiddler / Chrome preferences / Frida
quickbrowse[.]co/search/Observed search intermediary before YahooInvestigator browser observation / controlled rerun
chnm3=w64cjbu7Observed QuickBrowse query parameterInvestigator browser URL
goyoufile[.]comUFile landing pageInvestigator ad-click observation
homemade-gifts-made-easy[.]comAdvertising origin context; not C2Investigator browser observation
%LOCALAPPDATA%\Programs\UFile\Installed application pathFilesystem / Frida
youfiles_id.txt, youfiles_backup, U_FileStage constants / pivots; creation not independently demonstratedAutomationPref decompiled code
1786867306138976Hardcoded AppIDAutomationPref decompiled code

5 · Assessment and limitations

Supported conclusions

  • High confidence: UFile's installation chain produces unauthorized Chrome search redirection in the tested environment; the effect was reproduced after a preferences reset.
  • Confirmed by static code and runtime: staged encrypted payload retrieval, in-memory .NET loading, server-controlled search configuration, Chrome process termination and restart, and preference-file manipulation.
  • Observed in code: conditional treatment of Chrome extensions and manipulation of preference-integrity metadata.
  • Not established: credential theft, data theft beyond observed telemetry, additional persistent services/tasks, exact QuickBrowse–EepSearch routing, or a shared malware family with CookUp/GooPDF.

Distribution vs. malware-family attribution

UFile and GooPDF were encountered following similar advertisement-driven activity on the investigated host. This is compatible with unrelated unwanted-software campaigns being distributed through a common advertising environment. No sufficient code, infrastructure ownership, certificate, or operational linkage was established to label UFile as CookUp or part of the same family. Similar date-derived AES-CBC construction seen in earlier investigations is a research lead, not attribution.

Evidence sources

SourceUse
Original UFileSetup dnSpy export (code(1).zip)First-stage installation, machine ID, alyclick endpoints
Installed UFile dnSpy export (code2.zip)Encrypted stage request and memory-loading routine
Recovered stage dnSpy export (code3.zip)AutomationPref handler, search replacement, integrity handling and extension checks
Fiddler capture (cap.saz)Recorded requests, responses, response codes and recovery
Frida runtime logsFile content writes and Chrome process-launch evidence
PowerShell / Chrome experimentsSigner certificate, PE metadata, profile findings and controlled reenactment

Prepared from investigator-provided artifacts and locally reviewed evidence. Hashes of the captured UFile.exe and recovered stage were recomputed from supplied bytes. Dates/times in network capture are UTC; VM PowerShell timestamps shown in previous analysis were local. Static paths/endpoints do not imply they were all reached during the captured run.

UFile technical case study · October 30, 2026 · Independent of CookUp family attribution

Comments

Popular posts from this blog

Beware of Fake 7zip Installer: upStage Proxy

Microsoft Store Apps May Deliver Go Backconnect Proxy Malware

New HydraSeven malware loader found in the wild