FindPattern c# - Вопросы и ответы, обсуждения - Ваши вопросы по C# только в данном разделе
16.08.2012, 18:01
#1
Разведчик
Регистрация: 11.08.2012
Сообщений: 3
Популярность: 16
Сказал(а) спасибо: 4
Поблагодарили 3 раз(а) в 3 сообщениях
FindPattern c#
Привет Всем
я хотел бы узнать как пользоваться паттерном на шарпе
на c++ функция выглядит так:
Код:
DWORD Function = FindPattern ((DWORD)i3exec, 0x2A715B2, (PBYTE)"\x55\x8B\xEC\x81\xEC\x9C\x01\x00\x00\x56\x89\x8D\x88\xFE\xFF\xFF", "x?xxxxx??xxxxxxxxx");
вот нашел [
Ссылки могут видеть только зарегистрированные пользователи. ]
но не могу понять что к чему, обьясните пожалуйста
16.08.2012, 18:05
#2
Старший сержант
Регистрация: 04.02.2011
Сообщений: 198
Популярность: 12244
Сказал(а) спасибо: 453
Поблагодарили 435 раз(а) в 242 сообщениях
Re: FindPattern c#
Изучай
VIDEO lgdfwifDB8o
.
________________
-Отложи на послезавтра то что можешь сделать сегодня, и тогда у тебя появятся два свободных дня!
Пользователь сказал cпасибо:
16.08.2012, 18:59
#3
Разведчик
Регистрация: 11.08.2012
Сообщений: 3
Популярность: 16
Сказал(а) спасибо: 4
Поблагодарили 3 раз(а) в 3 сообщениях
Re: FindPattern c#
крайслер , там есть только как найти сам паттерн а класа с паттерном нету
16.08.2012, 19:04
#4
Старший сержант
Регистрация: 04.02.2011
Сообщений: 198
Популярность: 12244
Сказал(а) спасибо: 453
Поблагодарили 435 раз(а) в 242 сообщениях
Re: FindPattern c#
________________
-Отложи на послезавтра то что можешь сделать сегодня, и тогда у тебя появятся два свободных дня!
16.08.2012, 19:09
#5
Разведчик
Регистрация: 11.08.2012
Сообщений: 3
Популярность: 16
Сказал(а) спасибо: 4
Поблагодарили 3 раз(а) в 3 сообщениях
Re: FindPattern c#
он минут 5 ищет через СЕ и олю паттерн после этого еще 15 все это в исход пишет и проверяет и еще 5 подводит итог, вот скажи мне где на видео видно клас паттерна, там только часть кода..
16.08.2012, 19:47
#6
Старший сержант
Регистрация: 04.02.2011
Сообщений: 198
Популярность: 12244
Сказал(а) спасибо: 453
Поблагодарили 435 раз(а) в 242 сообщениях
Re: FindPattern c#
Код:
private static byte[] _file;
private static int FindPattern(byte[] btPattern, string strMask)
{
try
{
if (strMask.Length != btPattern.Length)
return -1;
for (int x = 0; x < _file.Length; x++)
{
if (MaskCheck(x, btPattern, strMask))
{
return x;
}
}
return -1;
}
catch (Exception ex)
{
return -1;
}
}
private static bool MaskCheck(int nOffset, byte[] btPattern, string strMask)
{
return !btPattern.Where((t, x) => strMask[x] != '?' && ((strMask[x] == 'x') && (t != _file[nOffset + x]))).Any();
}
Код:
Бла-Бла = FindPattern(new byte[] {0x55, 0x8b, 0xec, 0x83, 0xec, 0x00, 0x53, },"xxxxx?x");
________________
-Отложи на послезавтра то что можешь сделать сегодня, и тогда у тебя появятся два свободных дня!
Последний раз редактировалось крайслер; 16.08.2012 в 20:27 .
Пользователь сказал cпасибо:
16.08.2012, 19:52
#7
Разведчик
Регистрация: 11.08.2012
Сообщений: 3
Популярность: 16
Сказал(а) спасибо: 4
Поблагодарили 3 раз(а) в 3 сообщениях
Re: FindPattern c#
крайслер , прости, я слепой
Добавлено через 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();
не проконало, нужен модуль же..
Последний раз редактировалось Stereo[TIP]; 16.08.2012 в 20:37 .
Причина: Добавлено сообщение
16.08.2012, 20:50
#8
Старший сержант
Регистрация: 04.02.2011
Сообщений: 198
Популярность: 12244
Сказал(а) спасибо: 453
Поблагодарили 435 раз(а) в 242 сообщениях
Re: FindPattern c#
Цитата:
крайслер, а например как можно адрес вывести в текст бокс?
незнаю, так как не было необходимости использовать сигнатуры в шарпе...
Вот вроде консолька с выводом... разбирайся
Код:
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)
{
int result;
try
{
if (strMask.Length != btPattern.Length)
{
result = -1;
}
else
{
for (int i = 0; i < Program._file.Length; i++)
{
if (Program.MaskCheck(i, btPattern, strMask))
{
result = i;
return result;
}
}
result = -1;
}
}
catch (Exception var_1_45)
{
result = -1;
}
return result;
}
private static bool MaskCheck(int nOffset, byte[] btPattern, string strMask)
{
bool result;
for (int i = 0; i < btPattern.Length; i++)
{
if (strMask[i] != '?')
{
if (strMask[i] == 'x' && btPattern[i] != Program._file[nOffset + i])
{
result = false;
return result;
}
}
}
result = true;
return result;
}
}
}
________________
-Отложи на послезавтра то что можешь сделать сегодня, и тогда у тебя появятся два свободных дня!
17.08.2012, 12:58
#9
Разведчик
Регистрация: 11.08.2012
Сообщений: 3
Популярность: 16
Сказал(а) спасибо: 4
Поблагодарили 3 раз(а) в 3 сообщениях
Re: FindPattern c#
крайслер , толи я опять ослеп то ли нету там вывода адреса..
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 18:22 .