-
Автор темы
- #1
Пытался реализовать программу которая меняет определённые байты как хекс-редакторы.
Программа запускается и успешно изменяет байты - как я и планировал. Но после этой операции программа ломается и при попытке захода в exeшник выскакивает такое окно: Exception Precessing Message 0x0000005 - Unexpected parameters. Через обычный хекс-редактор такое не случается.
Буду рад помощи.
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.NetworkInformation;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace CoolBSAdBlocker
{
internal class Inject
{
static void Main(string[] args)
{
string filePath = @"D:\BlueStacks\Client\Bluestacks.exe";
string hexStringToReplace = "1B300A009A00000080000011140A282F00000A72D52E0070188D140000012516286502000AA225177254560170A2289300000A286602000A0B0728A40D00060B0728C00D00060B0728A50D00061416282001000A16171616722D080070284504000A0C726A56017007289500000A286300000A728A56017008289500000A286300000A0828EF02000A0ADE180D72B4560170096F2A00000A289500000A281501000ADE00062A000001100000000002007E80001817000001";
string hexStringReplacement = "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000";
ReplaceHexStringInFile(filePath, hexStringToReplace, hexStringReplacement);
}
static void ReplaceHexStringInFile(string filePath, string hexStringToReplace, string hexStringReplacement)
{
byte[] fileBytes = File.ReadAllBytes(filePath);
string fileHex = BitConverter.ToString(fileBytes).Replace("-", "");
int index = fileHex.IndexOf(hexStringToReplace);
if (index != -1)
{
string newFileHex = fileHex.Substring(0, index) + hexStringReplacement + fileHex.Substring(index + hexStringToReplace.Length);
byte[] newFileBytes = new byte[newFileHex.Length / 2];
for (int i = 0; i < newFileHex.Length; i += 2)
{
newFileBytes[i / 2] = Convert.ToByte(newFileHex.Substring(i, 2), 16);
}
File.WriteAllBytes(filePath, newFileBytes);
Console.WriteLine("Реклама успешно вырезана!.");
}
else
{
Console.WriteLine("Не найден файл - Bluestacks.exe");
}
Программа запускается и успешно изменяет байты - как я и планировал. Но после этой операции программа ломается и при попытке захода в exeшник выскакивает такое окно: Exception Precessing Message 0x0000005 - Unexpected parameters. Через обычный хекс-редактор такое не случается.
Буду рад помощи.
Последнее редактирование: