Skip to content

Commit 0fc38b6

Browse files
committed
[FEATURE] If old loader selected, use old redir
1 parent 77eff1c commit 0fc38b6

2 files changed

Lines changed: 16 additions & 13 deletions

File tree

pe2shc/CMakeLists.txt

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ project ( pe2shc )
44

55
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT")
66

7-
option(OLD_STUB "Build with the old stub" OFF)
7+
option(OLD_LOADER "Build with the old loader stub" OFF)
88

99
# include libpeconv headers:
1010
include_directories ( ${PECONV_DIR}/include )
@@ -18,14 +18,15 @@ set (hdrs
1818
resource.h
1919
)
2020

21-
if( OLD_STUB)
22-
set (rsrc
23-
resource1.rc
24-
)
21+
if( OLD_LOADER )
22+
set (rsrc
23+
resource1.rc
24+
)
25+
add_definitions(-DOLD_LOADER)
2526
else()
26-
set (rsrc
27-
resource2.rc
28-
)
27+
set (rsrc
28+
resource2.rc
29+
)
2930
endif()
3031

3132
add_executable ( ${PROJECT_NAME} ${hdrs} ${srcs} ${rsrc} main.cpp )

pe2shc/main.cpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
bool overwrite_hdr(BYTE *my_exe, size_t exe_size, DWORD raw, bool is64b)
1010
{
11-
size_t value_pos = 8;
11+
const size_t value_pos = 8;
1212
size_t redir_size = 0;
1313
BYTE* redir_code = nullptr;
1414

@@ -36,14 +36,16 @@ bool overwrite_hdr(BYTE *my_exe, size_t exe_size, DWORD raw, bool is64b)
3636
"\xFF\xD3" // call ebx
3737
"\xc3"; // ret
3838

39+
redir_code = redir_code32;
40+
redir_size = sizeof(redir_code32);
41+
42+
#ifndef OLD_LOADER
3943
if (is64b) {
4044
redir_code = redir_code64;
4145
redir_size = sizeof(redir_code64);
4246
}
43-
else {
44-
redir_code = redir_code32;
45-
redir_size = sizeof(redir_code32);
46-
}
47+
#endif
48+
4749
if (!redir_code) return false;
4850

4951
size_t offset = redir_size - value_pos;

0 commit comments

Comments
 (0)