Find a list of files worth hashing

Based on https://github.com/captn3m0/electron-fingerprints/#which-files-are-present
This commit is contained in:
Nemo 2021-07-16 19:45:02 +05:30
parent 4bcbdb52ca
commit 949d12789c
2 changed files with 230 additions and 1 deletions

View File

@ -47,4 +47,25 @@ module.exports = {
})
.map((e) => e.file);
},
// Return a list of files that might be worth fingerprinting
fingerprintable: function(entries) {
return entries.filter((e) =>{
if (isDirectory(e.attributes)) {
return false;
}
let ext = path.extname(e.file);
if (['.h', '.dll', '.bin', '.asar', '.dylib', '.so', '.exe'].indexOf(ext) !== -1) {
return true
}
let b = path.basename(e.file);
if (['electron framework', 'squirrel', 'electron', 'electron helper', 'chrome_100_percent', 'chrome_200_percent'].indexOf(b)!== -1) {
return true;
}
return false;
})
.map((e)=>e.file)
}
};

View File

@ -1,7 +1,7 @@
const test = require("kuta").test;
const finder = require("../finder");
const assert = require("assert");
const _ = require('./utils')
const _ = require("./utils");
test("it should find the electron.asar file", () => {
assert.deepEqual(
@ -42,3 +42,211 @@ test("it should find the version file", () => {
finder.version(_.getEntries("Arizona-v1.0.0-beta-Windows.zip"))
);
});
test("it should find fingerprinteable files", () => {
assert.deepEqual(
[
"Arizona v.1.0.0/Arizona.exe",
"Arizona v.1.0.0/d3dcompiler_47.dll",
"Arizona v.1.0.0/ffmpeg.dll",
"Arizona v.1.0.0/libEGL.dll",
"Arizona v.1.0.0/libGLESv2.dll",
"Arizona v.1.0.0/resources/app/node_modules/.bin/electron",
"Arizona v.1.0.0/resources/app/node_modules/electron/dist/d3dcompiler_47.dll",
"Arizona v.1.0.0/resources/app/node_modules/electron/dist/electron.exe",
"Arizona v.1.0.0/resources/app/node_modules/electron/dist/ffmpeg.dll",
"Arizona v.1.0.0/resources/app/node_modules/electron/dist/libEGL.dll",
"Arizona v.1.0.0/resources/app/node_modules/electron/dist/libGLESv2.dll",
"Arizona v.1.0.0/resources/app/node_modules/electron/dist/resources/default_app.asar",
"Arizona v.1.0.0/resources/app/node_modules/electron/dist/snapshot_blob.bin",
"Arizona v.1.0.0/resources/app/node_modules/electron/dist/swiftshader/libEGL.dll",
"Arizona v.1.0.0/resources/app/node_modules/electron/dist/swiftshader/libGLESv2.dll",
"Arizona v.1.0.0/resources/app/node_modules/electron/dist/v8_context_snapshot.bin",
"Arizona v.1.0.0/resources/app/node_modules/electron/dist/vk_swiftshader.dll",
"Arizona v.1.0.0/resources/app/node_modules/electron/dist/vulkan-1.dll",
"Arizona v.1.0.0/resources/app/node_modules/rcedit/bin/rcedit.exe",
"Arizona v.1.0.0/resources/app/node_modules/rcedit/bin/rcedit-x64.exe",
"Arizona v.1.0.0/resources/default_app.asar",
"Arizona v.1.0.0/snapshot_blob.bin",
"Arizona v.1.0.0/swiftshader/libEGL.dll",
"Arizona v.1.0.0/swiftshader/libGLESv2.dll",
"Arizona v.1.0.0/v8_context_snapshot.bin",
"Arizona v.1.0.0/vk_swiftshader.dll",
"Arizona v.1.0.0/vulkan-1.dll",
],
finder.fingerprintable(_.getEntries("Arizona-v1.0.0-beta-Windows.zip"))
);
assert.deepEqual(
[
"Lax-win32-x64/v8_context_snapshot.bin",
"Lax-win32-x64/d3dcompiler_47.dll",
"Lax-win32-x64/vk_swiftshader.dll",
"Lax-win32-x64/ffmpeg.dll",
"Lax-win32-x64/Lax.exe",
"Lax-win32-x64/snapshot_blob.bin",
"Lax-win32-x64/libEGL.dll",
"Lax-win32-x64/libGLESv2.dll",
"Lax-win32-x64/swiftshader/libEGL.dll",
"Lax-win32-x64/swiftshader/libGLESv2.dll",
],
finder.fingerprintable(_.getEntries("Lax-win32-x64.zip"))
);
assert.deepEqual(
[
"resources/app.asar",
"swiftshader/libvk_swiftshader.so",
"libGLESv2.so",
"swiftshader/libGLESv2.so",
"libffmpeg.so",
"v8_context_snapshot.bin",
"snapshot_blob.bin",
"swiftshader/libEGL.so",
"libEGL.so",
"natives_blob.bin",
],
finder.fingerprintable(_.getEntries("Rambox-0.7.7-linux-x64.zip"))
);
assert.deepEqual(
[
"chronobreak-linux-x64/libEGL.so",
"chronobreak-linux-x64/libffmpeg.so",
"chronobreak-linux-x64/libGLESv2.so",
"chronobreak-linux-x64/libvk_swiftshader.so",
"chronobreak-linux-x64/libvulkan.so",
"chronobreak-linux-x64/resources/app.asar",
"chronobreak-linux-x64/snapshot_blob.bin",
"chronobreak-linux-x64/swiftshader/libEGL.so",
"chronobreak-linux-x64/swiftshader/libGLESv2.so",
"chronobreak-linux-x64/v8_context_snapshot.bin",
],
finder.fingerprintable(_.getEntries("chronobreak-linux-x64.zip"))
);
assert.deepEqual(
[
"Hyper.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib",
"Hyper.app/Contents/Resources/app.asar",
"Hyper.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libffmpeg.dylib",
"Hyper.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/v8_context_snapshot.bin",
"Hyper.app/Contents/Resources/electron.asar",
"Hyper.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/natives_blob.bin",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACSignal+Operations.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/metamacros.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACStream.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACSignal.h",
"Hyper.app/Contents/Frameworks/Mantle.framework/Versions/A/Headers/MTLManagedObjectAdapter.h",
"Hyper.app/Contents/Frameworks/Squirrel.framework/Versions/A/Headers/SQRLUpdater.h",
"Hyper.app/Contents/Frameworks/Mantle.framework/Versions/A/Headers/MTLJSONAdapter.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACScheduler.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACSequence.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACTuple.h",
"Hyper.app/Contents/Frameworks/Mantle.framework/Versions/A/Headers/MTLModel.h",
"Hyper.app/Contents/Frameworks/Mantle.framework/Versions/A/Headers/MTLModel+NSCoding.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACCommand.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSObject+RACPropertySubscribing.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACKVOChannel.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/EXTScope.h",
"Hyper.app/Contents/Frameworks/Mantle.framework/Versions/A/Headers/NSValueTransformer+MTLPredefinedTransformerAdditions.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/ReactiveCocoa.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSObject+RACSelectorSignal.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACBacktrace.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACChannel.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSObject+RACLifting.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/EXTKeyPathCoding.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACSubscriptingAssignmentTrampoline.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACMulticastConnection.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSObject+RACAppKitBindings.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACCompoundDisposable.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACSubscriber.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACSerialDisposable.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACEvent.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACTestScheduler.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACQueueScheduler+Subclass.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSDictionary+RACSequenceAdditions.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSObject+RACDeallocating.h",
"Hyper.app/Contents/Frameworks/Mantle.framework/Versions/A/Headers/MTLValueTransformer.h",
"Hyper.app/Contents/Frameworks/Squirrel.framework/Versions/A/Headers/SQRLUpdate.h",
"Hyper.app/Contents/Frameworks/Squirrel.framework/Versions/A/Headers/SQRLDownloadedUpdate.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACDisposable.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACScheduler+Subclass.h",
"Hyper.app/Contents/Frameworks/Mantle.framework/Versions/A/Headers/NSArray+MTLManipulationAdditions.h",
"Hyper.app/Contents/Frameworks/Mantle.framework/Versions/A/Headers/Mantle.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSUserDefaults+RACSupport.h",
"Hyper.app/Contents/Frameworks/Mantle.framework/Versions/A/Headers/NSDictionary+MTLManipulationAdditions.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSURLConnection+RACSupport.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACTargetQueueScheduler.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACReplaySubject.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSString+RACSupport.h",
"Hyper.app/Contents/Frameworks/Squirrel.framework/Versions/A/Headers/Squirrel.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSControl+RACTextSignalSupport.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSControl+RACCommandSupport.h",
"Hyper.app/Contents/Frameworks/Squirrel.framework/Versions/A/Headers/NSBundle+SQRLVersionExtensions.h",
"Hyper.app/Contents/Frameworks/Mantle.framework/Versions/A/Headers/NSValueTransformer+MTLInversionAdditions.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACSubject.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSString+RACSequenceAdditions.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSData+RACSupport.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSIndexSet+RACSequenceAdditions.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACQueueScheduler.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACBehaviorSubject.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSOrderedSet+RACSequenceAdditions.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSArray+RACSequenceAdditions.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACScopedDisposable.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSSet+RACSequenceAdditions.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSEnumerator+RACSequenceAdditions.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACGroupedSignal.h",
"Hyper.app/Contents/Frameworks/Squirrel.framework/Versions/A/Headers/NSProcessInfo+SQRLVersionExtensions.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSNotificationCenter+RACSupport.h",
"Hyper.app/Contents/Frameworks/Mantle.framework/Versions/A/Headers/NSObject+MTLComparisonAdditions.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSText+RACSignalSupport.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACUnit.h",
"Hyper.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSFileHandle+RACSupport.h",
],
finder.fingerprintable(_.getEntries("Hyper-3.0.2-mac.zip"))
);
assert.deepEqual(
[
"Notable.exe",
"libGLESv2.dll",
"resources/app.asar",
"d3dcompiler_47.dll",
"swiftshader/libGLESv2.dll",
"ffmpeg.dll",
"v8_context_snapshot.bin",
"swiftshader/libEGL.dll",
"snapshot_blob.bin",
"libEGL.dll",
"natives_blob.bin",
],
finder.fingerprintable(_.getEntries("Notable-1.8.4-win.zip"))
);
assert.deepEqual(
[
"release-builds/encrypt0r-darwin-x64/encrypt0r.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libGLESv2.dylib",
"release-builds/encrypt0r-darwin-x64/encrypt0r.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libswiftshader_libGLESv2.dylib",
"release-builds/encrypt0r-darwin-x64/encrypt0r.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libffmpeg.dylib",
"release-builds/encrypt0r-darwin-x64/encrypt0r.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libEGL.dylib",
"release-builds/encrypt0r-darwin-x64/encrypt0r.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libvk_swiftshader.dylib",
"release-builds/encrypt0r-darwin-x64/encrypt0r.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libswiftshader_libEGL.dylib",
"release-builds/encrypt0r-darwin-x64/encrypt0r.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/v8_context_snapshot.x86_64.bin",
"release-builds/encrypt0r-darwin-x64/encrypt0r.app/Contents/Frameworks/Electron Framework.framework/Versions/Current/Libraries/libGLESv2.dylib",
"release-builds/encrypt0r-darwin-x64/encrypt0r.app/Contents/Frameworks/Electron Framework.framework/Versions/Current/Libraries/libswiftshader_libGLESv2.dylib",
"release-builds/encrypt0r-darwin-x64/encrypt0r.app/Contents/Frameworks/Electron Framework.framework/Versions/Current/Libraries/libffmpeg.dylib",
"release-builds/encrypt0r-darwin-x64/encrypt0r.app/Contents/Frameworks/Electron Framework.framework/Versions/Current/Libraries/libEGL.dylib",
"release-builds/encrypt0r-darwin-x64/encrypt0r.app/Contents/Frameworks/Electron Framework.framework/Versions/Current/Libraries/libvk_swiftshader.dylib",
"release-builds/encrypt0r-darwin-x64/encrypt0r.app/Contents/Frameworks/Electron Framework.framework/Versions/Current/Libraries/libswiftshader_libEGL.dylib",
"release-builds/encrypt0r-darwin-x64/encrypt0r.app/Contents/Frameworks/Electron Framework.framework/Versions/Current/Resources/v8_context_snapshot.x86_64.bin",
"release-builds/encrypt0r-darwin-x64/encrypt0r.app/Contents/Frameworks/Electron Framework.framework/Libraries/libGLESv2.dylib",
"release-builds/encrypt0r-darwin-x64/encrypt0r.app/Contents/Frameworks/Electron Framework.framework/Libraries/libswiftshader_libGLESv2.dylib",
"release-builds/encrypt0r-darwin-x64/encrypt0r.app/Contents/Frameworks/Electron Framework.framework/Libraries/libffmpeg.dylib",
"release-builds/encrypt0r-darwin-x64/encrypt0r.app/Contents/Frameworks/Electron Framework.framework/Libraries/libEGL.dylib",
"release-builds/encrypt0r-darwin-x64/encrypt0r.app/Contents/Frameworks/Electron Framework.framework/Libraries/libvk_swiftshader.dylib",
"release-builds/encrypt0r-darwin-x64/encrypt0r.app/Contents/Frameworks/Electron Framework.framework/Libraries/libswiftshader_libEGL.dylib",
"release-builds/encrypt0r-darwin-x64/encrypt0r.app/Contents/Frameworks/Electron Framework.framework/Resources/v8_context_snapshot.x86_64.bin",
],
finder.fingerprintable(_.getEntries("encrypt0r-mac.zip"))
);
});