Skip to content

Commit d136001

Browse files
committed
change winloader xxx_yyy start from yyy to xxx
1 parent a001121 commit d136001

1 file changed

Lines changed: 9 additions & 8 deletions

File tree

project/winexe_winloader/src/winloader.c

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@
99
int main(int argc, char *argv[])
1010
{
1111
char exepath[MAX_PATH] = {0};
12-
char *cmdstr = NULL;
1312
char dllpath[MAX_PATH] = {0};
13+
char* cmdstr = NULL;
1414

15-
printf("winloader v0.1, developed by devseed\n"
15+
printf("winloader v0.1.1, developed by devseed\n"
1616
"usage:\n"
17-
"winloader // if the name is xxx_yyy.exe, start yyy.exe\n"
17+
"winloader // if the name is xxx_yyy.exe, start xxx.exe\n"
1818
"winloader exepath, cmdstr // will be null, dll has the same name as exe\n"
1919
"winloader exepath dllpath\n"
2020
"winloader exepath dllpath cmdstr\n\n"
@@ -24,11 +24,12 @@ int main(int argc, char *argv[])
2424
{
2525
case 1:
2626
{
27-
int start = (int)strlen(argv[0]);
28-
while (start > 0 && argv[0][start] != '\\') start--;
29-
while (argv[0][start] != '\0' && argv[0][start] != '_') start++;
30-
start++;
31-
strcpy(exepath, argv[0] + start);
27+
int end = (int)(strstr(argv[0], ".exe") - argv[0]);
28+
while (end > 0 && argv[0][end] != '_') end--;
29+
printf("%d\n", end);
30+
strncpy(exepath, argv[0], end);
31+
exepath[end] = '\0';
32+
strcat(exepath, ".exe");
3233
strcpy(dllpath, exepath);
3334
strcpy(dllpath + strlen(dllpath) - 4, ".dll");
3435
break;

0 commit comments

Comments
 (0)