From 132d7c6e5832e91e96fbb094c921d457e2ab04b8 Mon Sep 17 00:00:00 2001 From: Manabu Niseki Date: Tue, 3 Mar 2020 08:23:24 +0900 Subject: [PATCH] feat: add Intezer lookup Implement #386 --- src/lib/searcher/index.ts | 1 + src/lib/searcher/intezer.ts | 17 +++++++++++++++++ src/lib/searcher/searchers.ts | 2 ++ test/searcher/intezer.spec.ts | 21 +++++++++++++++++++++ 4 files changed, 41 insertions(+) create mode 100644 src/lib/searcher/intezer.ts create mode 100644 test/searcher/intezer.spec.ts diff --git a/src/lib/searcher/index.ts b/src/lib/searcher/index.ts index fe921ada..0d3cdad6 100644 --- a/src/lib/searcher/index.ts +++ b/src/lib/searcher/index.ts @@ -27,6 +27,7 @@ export { HurricaneElectric } from "./hurricaneelectric"; export { HybridAnalysis } from "./hybridanalysis"; export { InQuest } from "./inquest"; export { IntelligenceX } from "./intelligencex"; +export { Intezer } from "./intezer"; export { IPinfo } from "./ipinfo"; export { IPIP } from "./ipip"; export { JoeSandbox } from "./joesandbox"; diff --git a/src/lib/searcher/intezer.ts b/src/lib/searcher/intezer.ts new file mode 100644 index 00000000..3d0f96b6 --- /dev/null +++ b/src/lib/searcher/intezer.ts @@ -0,0 +1,17 @@ +import { buildURL } from "../url_builder"; +import { Searcher, SearchableType } from "../types"; + +export class Intezer implements Searcher { + public baseURL: string; + public name: string; + public supportedTypes: SearchableType[] = ["hash"]; + + public constructor() { + this.baseURL = "https://analyze.intezer.com"; + this.name = "Intezer"; + } + + public searchByHash(query: string): string { + return buildURL(this.baseURL, `/#/files/${query}`); + } +} diff --git a/src/lib/searcher/searchers.ts b/src/lib/searcher/searchers.ts index fca1b49c..c9eca5d4 100644 --- a/src/lib/searcher/searchers.ts +++ b/src/lib/searcher/searchers.ts @@ -28,6 +28,7 @@ import { HybridAnalysis, InQuest, IntelligenceX, + Intezer, IPinfo, IPIP, JoeSandbox, @@ -99,6 +100,7 @@ export const Searchers: Searcher[] = [ new HybridAnalysis(), new InQuest(), new IntelligenceX(), + new Intezer(), new IPinfo(), new IPIP(), new JoeSandbox(), diff --git a/test/searcher/intezer.spec.ts b/test/searcher/intezer.spec.ts new file mode 100644 index 00000000..ba5e04a9 --- /dev/null +++ b/test/searcher/intezer.spec.ts @@ -0,0 +1,21 @@ +import { expect } from "chai"; +import "mocha"; +import { Intezer } from "../../src/lib/searcher"; + +describe("Intezer", function() { + const subject = new Intezer(); + + it("should support Hash type IOC", function() { + expect(subject.supportedTypes).to.deep.equal(["hash"]); + }); + + describe("#searchByHash", function() { + it("should return URL", function() { + const hash = + "794374d3e3bd6f2bb232f61d2922d9dae3f78f864a2941f3b76157f82a3e6017"; + expect(subject.searchByHash(hash)).to.equal( + "https://analyze.intezer.com/#/files/794374d3e3bd6f2bb232f61d2922d9dae3f78f864a2941f3b76157f82a3e6017" + ); + }); + }); +});