mirror of
https://github.com/ReaJason/MemShellParty.git
synced 2026-09-21 22:50:42 +08:00
feat: support staticInitialize
This commit is contained in:
Binary file not shown.
+13
-13
@@ -15,27 +15,27 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@biomejs/biome": "2.1.4",
|
||||
"@react-router/dev": "^7.9.5",
|
||||
"@types/node": "^24.10.0",
|
||||
"@types/react": "^19.2.2",
|
||||
"@react-router/dev": "^7.9.6",
|
||||
"@types/node": "^24.10.1",
|
||||
"@types/react": "^19.2.5",
|
||||
"@types/react-copy-to-clipboard": "^5.0.7",
|
||||
"@types/react-dom": "^19.2.2",
|
||||
"@types/react-dom": "^19.2.3",
|
||||
"@types/react-syntax-highlighter": "^15.5.13",
|
||||
"@vitejs/plugin-react": "^5.1.0",
|
||||
"@vitejs/plugin-react": "^5.1.1",
|
||||
"rimraf": "^6.1.0",
|
||||
"tailwindcss": "^4.1.16",
|
||||
"tailwindcss": "^4.1.17",
|
||||
"typescript": "^5.9.3",
|
||||
"vite": "^7.1.12",
|
||||
"vite": "^7.2.2",
|
||||
"vite-bundle-visualizer": "^1.2.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@hookform/resolvers": "^5.2.2",
|
||||
"@tailwindcss/vite": "^4.1.16",
|
||||
"@tanstack/react-query": "^5.90.6",
|
||||
"@tailwindcss/vite": "^4.1.17",
|
||||
"@tanstack/react-query": "^5.90.9",
|
||||
"class-variance-authority": "^0.7.1",
|
||||
"clsx": "^2.1.1",
|
||||
"framer-motion": "^12.23.24",
|
||||
"i18next": "^25.6.0",
|
||||
"i18next": "^25.6.2",
|
||||
"lucide-react": "^0.539.0",
|
||||
"motion": "^12.23.24",
|
||||
"radix-ui": "^1.4.3",
|
||||
@@ -44,11 +44,11 @@
|
||||
"react-dom": "^19.2.0",
|
||||
"react-hook-form": "^7.66.0",
|
||||
"react-i18next": "^15.7.4",
|
||||
"react-router": "^7.9.5",
|
||||
"react-router-dom": "^7.9.5",
|
||||
"react-router": "^7.9.6",
|
||||
"react-router-dom": "^7.9.6",
|
||||
"react-syntax-highlighter": "^15.6.6",
|
||||
"sonner": "^2.0.7",
|
||||
"tailwind-merge": "^3.3.1",
|
||||
"tailwind-merge": "^3.4.0",
|
||||
"tw-animate-css": "^1.4.0",
|
||||
"yup": "^1.7.1"
|
||||
},
|
||||
|
||||
@@ -383,6 +383,22 @@ export default function MainConfigCard({
|
||||
</FormItem>
|
||||
)}
|
||||
/>
|
||||
<FormField
|
||||
control={form.control}
|
||||
name="staticInitialize"
|
||||
render={({ field }) => (
|
||||
<FormItem className="flex items-center space-x-2 space-y-0">
|
||||
<FormControl>
|
||||
<Switch
|
||||
id="staticInitialize"
|
||||
checked={field.value}
|
||||
onCheckedChange={field.onChange}
|
||||
/>
|
||||
</FormControl>
|
||||
<Label htmlFor="staticInitialize">{t("common:staticInitialize")}</Label>
|
||||
</FormItem>
|
||||
)}
|
||||
/>
|
||||
</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
@@ -324,6 +324,24 @@ export default function MainConfigCard({ form, servers }: MainConfigCardProps) {
|
||||
</FormItem>
|
||||
)}
|
||||
/>
|
||||
<FormField
|
||||
control={form.control}
|
||||
name="staticInitialize"
|
||||
render={({ field }) => (
|
||||
<FormItem className="flex items-center space-x-2 space-y-0">
|
||||
<FormControl>
|
||||
<Switch
|
||||
id="staticInitialize"
|
||||
checked={field.value}
|
||||
onCheckedChange={field.onChange}
|
||||
/>
|
||||
</FormControl>
|
||||
<Label htmlFor="staticInitialize">
|
||||
{t("common:staticInitialize")}
|
||||
</Label>
|
||||
</FormItem>
|
||||
)}
|
||||
/>
|
||||
</div>
|
||||
),
|
||||
[form.control, t],
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
"server": "Server",
|
||||
"serverVersion": "Server Version",
|
||||
"shrink": "Shrink",
|
||||
"staticInitialize": "StaticInitialize",
|
||||
"toast.generateError": "Generation failed, {{error}}",
|
||||
"toast.generateSuccess": "Generation successful",
|
||||
"urlPattern": "URL Pattern",
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
"server": "服务类型",
|
||||
"serverVersion": "服务版本",
|
||||
"shrink": "缩小字节码",
|
||||
"staticInitialize": "静态初始化",
|
||||
"toast.generateError": "生成失败,{{error}}",
|
||||
"toast.generateSuccess": "生成成功",
|
||||
"urlPattern": "请求路径",
|
||||
|
||||
@@ -77,6 +77,7 @@ export default function MemShellPage() {
|
||||
injectorClassName: urlParams.injectorClassName ?? "",
|
||||
packingMethod: urlParams.packingMethod ?? "",
|
||||
shrink: urlParams.shrink ?? true,
|
||||
staticInitialize: true,
|
||||
shellClassBase64: urlParams.shellClassBase64 ?? "",
|
||||
},
|
||||
});
|
||||
|
||||
@@ -57,6 +57,7 @@ export default function ProbeShellGenerator() {
|
||||
seconds: 5,
|
||||
sleepServer: "Tomcat",
|
||||
shrink: true,
|
||||
staticInitialize: true
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
@@ -67,6 +67,7 @@ export interface InjectorConfig {
|
||||
injectorClassName?: string;
|
||||
classInheritance?: string;
|
||||
urlPattern?: string;
|
||||
staticInitialize?: boolean;
|
||||
}
|
||||
|
||||
export interface ConfigResponseType {
|
||||
|
||||
@@ -16,6 +16,7 @@ export interface ProbeConfig {
|
||||
debug?: boolean;
|
||||
byPassJavaModule?: boolean;
|
||||
shrink?: boolean;
|
||||
staticInitialize?: boolean;
|
||||
}
|
||||
|
||||
export interface ProbeContentConfig {
|
||||
|
||||
@@ -10,6 +10,7 @@ export const memShellFormSchema = yup.object({
|
||||
targetJdkVersion: yup.string().optional(),
|
||||
debug: yup.boolean().optional(),
|
||||
byPassJavaModule: yup.boolean().optional(),
|
||||
staticInitialize: yup.boolean().optional(),
|
||||
shellClassName: yup.string().optional(),
|
||||
shellTool: yup.string().required().min(1),
|
||||
shellType: yup.string().required().min(1),
|
||||
@@ -152,6 +153,7 @@ export const probeShellFormSchema = yup.object().shape({
|
||||
debug: yup.boolean().optional(),
|
||||
byPassJavaModule: yup.boolean().optional(),
|
||||
shrink: yup.boolean().optional(),
|
||||
staticInitialize: yup.boolean().optional()
|
||||
});
|
||||
|
||||
type ProbeValidationResult = ResolverResult<ProbeShellFormSchema>;
|
||||
|
||||
@@ -37,6 +37,7 @@ export function transformToPostData(formValue: MemShellFormSchema) {
|
||||
const injectorConfig: InjectorConfig = {
|
||||
urlPattern: formValue.urlPattern,
|
||||
injectorClassName: formValue.injectorClassName,
|
||||
staticInitialize: formValue.staticInitialize
|
||||
};
|
||||
return {
|
||||
shellConfig,
|
||||
@@ -54,6 +55,7 @@ export function transformToProbePostData(formValue: ProbeShellFormSchema) {
|
||||
shrink: formValue.shrink,
|
||||
debug: formValue.debug,
|
||||
byPassJavaModule: formValue.byPassJavaModule,
|
||||
staticInitialize: formValue.staticInitialize
|
||||
};
|
||||
const probeContentConfig: ProbeContentConfig = {
|
||||
host: formValue.host,
|
||||
|
||||
Reference in New Issue
Block a user