import { DownloadIcon } from "lucide-react"; import { useTranslation } from "react-i18next"; import { toast } from "sonner"; import { QuickUsage } from "@/components/memshell/quick-usage"; import { Button } from "@/components/ui/button"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { downloadBytes } from "@/lib/utils"; import type { MemShellResult } from "@/types/memshell"; import CodeViewer from "../code-viewer"; import { BasicInfo } from "./results/basic-info"; import { ResultComponent } from "./results/result-component"; export default function ShellResult({ packResult, allPackResults, packMethod, generateResult, }: Readonly<{ packResult: string | undefined; allPackResults: Map | undefined; packMethod: string; generateResult?: MemShellResult; }>) { const { t } = useTranslation(["common", "memshell"]); if (!generateResult) { return ; } const height = 800; return ( {t("common:generateResult")} {t("memshell:shellClass")} {t("memshell:injectorClass")} {generateResult?.shellClassName} } button={ } wrapLongLines={true} height={height} code={generateResult?.shellBytesBase64Str ?? ""} language="text" /> {generateResult?.injectorClassName} } button={ } height={height} code={generateResult?.injectorBytesBase64Str ?? ""} language="text" /> ); }