PDA

Просмотр полной версии : [Помогите!] FindPattern c#


Stereo[TIP]
16.08.2012, 18:01
Привет Всем
я хотел бы узнать как пользоваться паттерном на шарпе
на 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)

{

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");

Stereo[TIP]
16.08.2012, 19:52
крайслер, прости, я слепой /problem

Добавлено через 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)

{

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;

}

}

}

Stereo[TIP]
17.08.2012, 12:58
крайслер, толи я опять ослеп то ли нету там вывода адреса..