99int 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