Skip to content

Commit aef3cd1

Browse files
committed
Made changes
1 parent 41c6694 commit aef3cd1

File tree

4 files changed

+11
-14
lines changed

4 files changed

+11
-14
lines changed

ResourceHack/CreateType.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@ class OriginalHandle {
1515
}
1616
};
1717

18-
// mi2
19-
// TODO: メモリ上にファイルがないとdos_header->e_lfanewがないので改善の余地あり
2018
class IMAGE_PE_HEADER {
2119
PIMAGE_DOS_HEADER dos_header;
2220
PIMAGE_NT_HEADERS64 nt_headers;

ResourceHack/FileOperations.cpp

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#include "FileOperations.h"
22
#include "CreateType.h"
33

4-
DWORD FileRead(std::string& strFilePath, LPVOID& lpBuffer) {
4+
DWORD DiskToMemory(std::string& strFilePath, LPVOID& lpBuffer) {
55
DWORD ret{ 0 };
66

77
do {
@@ -18,8 +18,7 @@ DWORD FileRead(std::string& strFilePath, LPVOID& lpBuffer) {
1818
break;
1919
}
2020

21-
//lpBuffer = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, lpFileSize->QuadPart);
22-
lpBuffer = VirtualAlloc(nullptr, lpFileSize->QuadPart, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
21+
lpBuffer = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, lpFileSize->QuadPart);
2322
if (lpBuffer == NULL) {
2423
break;
2524
}
@@ -37,7 +36,7 @@ DWORD FileRead(std::string& strFilePath, LPVOID& lpBuffer) {
3736

3837

3938
template<class T>
40-
bool FileWrite(const char* strFilePath, T lpBuffer, DWORD& dwFileSize) {
39+
bool MemoryToDisk(const char* strFilePath, T lpBuffer, DWORD& dwFileSize) {
4140
bool ret{ false };
4241

4342
do {
@@ -57,5 +56,5 @@ bool FileWrite(const char* strFilePath, T lpBuffer, DWORD& dwFileSize) {
5756
return false;
5857
}
5958

60-
template bool FileWrite<char*>(const char* strFilePath, char* lpBuffer, DWORD& dwFileSize);
61-
template bool FileWrite<LPVOID>(const char* strFilePath, LPVOID lpBuffer, DWORD& dwFileSize);
59+
template bool MemoryToDisk<char*>(const char* strFilePath, char* lpBuffer, DWORD& dwFileSize);
60+
template bool MemoryToDisk<LPVOID>(const char* strFilePath, LPVOID lpBuffer, DWORD& dwFileSize);

ResourceHack/FileOperations.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
#include <string>
55

6-
DWORD FileRead(std::string& strFilePath, LPVOID& lpBuffer);
6+
DWORD DiskToMemory(std::string& strFilePath, LPVOID& lpBuffer);
77

88
template<class T>
9-
bool FileWrite(const char* strFilePath, T lpBuffer, DWORD& dwFileSize);
9+
bool MemoryToDisk(const char* strFilePath, T lpBuffer, DWORD& dwFileSize);

ResourceHack/ResourceHack.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ LPVOID ResourceHack(LPVOID& buffer, DWORD& size, string& after_path, string& bef
6666
}
6767
write_size += (resource_size / 0x10 + 2) * 0x10;
6868

69-
after_size = FileRead(after_path, after_buffer);
69+
after_size = DiskToMemory(after_path, after_buffer);
7070
write_size += after_size;
7171
write_size = (write_size / pe_header->get_nt()->OptionalHeader.FileAlignment + 1) * pe_header->get_nt()->OptionalHeader.FileAlignment;
7272

@@ -85,7 +85,7 @@ LPVOID ResourceHack(LPVOID& buffer, DWORD& size, string& after_path, string& bef
8585
PIMAGE_RESOURCE_DIRECTORY hacked_dir{ (PIMAGE_RESOURCE_DIRECTORY)((ULONGLONG)write_buffer + size) };
8686
LPVOID before_buffer{ nullptr };
8787
DWORD before_size{ 0 };
88-
before_size = FileRead(before_path, before_buffer);
88+
before_size = DiskToMemory(before_path, before_buffer);
8989
after_buffer = (LPVOID)((ULONGLONG)write_buffer + size + (resource_size / 0x10 + 2) * 0x10);
9090
ResourceResetting(hacked_dir, resource_section->VirtualAddress, hacked_section->VirtualAddress, hacked_dir, after_buffer, after_size, before_buffer, before_size);
9191
}
@@ -106,11 +106,11 @@ int main() {
106106
DWORD size{ 0 };
107107
LPVOID write_buffer{ nullptr };
108108

109-
size = FileRead(path, read_buffer);
109+
size = DiskToMemory(path, read_buffer);
110110

111111
path += ".exe";
112112

113113
write_buffer = ResourceHack(read_buffer, size, after_path, before_path);
114114

115-
FileWrite(path.c_str(), write_buffer, size);
115+
MemoryToDisk(path.c_str(), write_buffer, size);
116116
}

0 commit comments

Comments
 (0)