Привет Всем
я хотел бы узнать как пользоваться паттерном на шарпе
на c++ функция выглядит так:
DWORD Function = FindPattern ((DWORD)i3exec, 0x2A715B2, (PBYTE)"\x55\x8B\xEC\x81\xEC\x9C\x01\x00\x00\x56\x89\x8D\x 88\xFE\xFF\xFF", "x?xxxxx??xxxxxxxxx");
вот нашел статью ([Ссылки могут видеть только зарегистрированные и активированные пользователи])
но не могу понять что к чему, обьясните пожалуйста /nyan
крайслер
16.08.2012, 18:05
lgdfwifDB8olgdfwifDB8o
.
Stereo[TIP]
16.08.2012, 18:59
крайслер, там есть только как найти сам паттерн а класа с паттерном нету :sad:
крайслер
16.08.2012, 19:04
;3367581"]крайслер, там есть только как найти сам паттерн а класа с паттерном нету
О как.. все 25 минут обьясняют как нажать две кнопки? Возможно мы о разных видео-уроках говорим...
Stereo[TIP]
16.08.2012, 19:09
он минут 5 ищет через СЕ и олю паттерн после этого еще 15 все это в исход пишет и проверяет и еще 5 подводит итог, вот скажи мне где на видео видно клас паттерна, там только часть кода..
крайслер
16.08.2012, 19:47
private static byte[] _file;
private static int FindPattern(byte[] btPattern, string strMask)
Добавлено через 44 минуты
крайслер, а например как можно адрес вывести в текст бокс?
int Find = FindPattern(new byte[] { 0x55, 0x8B, 0xEC, 0x81, 0xEC, 0x9C, 0x01, 0x00, 0x00, 0x56, 0x89, 0x8D, 0x88, 0xFE, 0xFF, 0xFF }, "x?xxxxx??xxxxxxxxx");
label1.Text = Find.ToString();
не проконало, нужен модуль же..
крайслер
16.08.2012, 20:50
;3367841"]крайслер, а например как можно адрес вывести в текст бокс?
незнаю, так как не было необходимости использовать сигнатуры в шарпе...
Вот вроде консолька с выводом... разбирайся
using System;
using System.IO;
namespace Patch_libnp
{
internal class Program
{
private static byte[] _file;
private static void Main(string[] args)
{
if (!File.Exists("libnp.dll"))
{
Console.WriteLine("libnp.dll not found, exiting...");
}
else
{
Console.WriteLine("Loading libnp.dll....");
Program._file = File.ReadAllBytes("libnp.dll");
Console.WriteLine("Finding patch point...");
int num = Program.FindPattern(new byte[]
{
85,
139,
236,
131,
236,
0,
83,
86,
87,
139,
69,
0,
163,
0,
0,
0,
0,
106,
0,
255,
21,
0,
0,
0,
0,
131,
196,
0,
95,
94,
91,
139,
229
}, "xxxxx?xxxxx?x????x?xx????xx?xxxxx");
if (num == -1)
{
Console.WriteLine("Patch point not found! Exiting...");
}
else
{
Program._file[num] = 195;
Console.WriteLine("Backing up libnp.dll as libnp.dll.bak");
File.Move("libnp.dll", "libnp.dll.bak");
Console.WriteLine("Writing patches...");
File.WriteAllBytes("libnp.dll", Program._file);
Console.Read();
}
}
}
public static int FindPattern(byte[] btPattern, string strMask)