С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
AvtoCrack
28 / 26 / 4
Регистрация: 16.11.2011
Сообщений: 147
1

Как вырезать из DLL кусок кода

01.09.2012, 22:13. Просмотров 1576. Ответов 5
Метки нет (Все метки)

DLL написана на Visual C++ | native C++.
Открыл dll рефлектором:


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
[return: MarshalAs(UnmanagedType.U1)]
internal static unsafe bool modopt(CallConvCdecl) VerifyMW2()
{
    string host = null;
    bool flag;
    Socket socket = null;
    byte[] buffer2 = null;
    FileStream inputStream = null;
    FileInfo info = null;
    byte[] buffer3 = null;
    SHA1Managed managed = null;
    FileInfo info2 = null;
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    try
    {
        int num2;
        CIniReader reader;
        if (IsDebuggerPresent() == 0)
        {
            HINSTANCE__* moduleHandleA = GetModuleHandleA(&?A0x34f70293.unnamed-global-175);
            if ((GetModuleHandleA(&?A0x34f70293.unnamed-global-176) == null) && (moduleHandleA == null))
            {
                return false;
            }
        }
        info2 = new FileInfo(@"main\iw_22.iwd");
        if ((info2.Length != 149435968L) || !connectedInterface)
        {
            ErrorWithWebLink("The main\\iw_22.iwd file is incorrect. You might have used the 'Update' package while having an old version.\nClick OK to be directed to the alterIWnet download page.", "http://alteriw.net/viewtopic.php?f=3&t=24");
            return false;
        }
        bool flag7 = Directory.Exists(@"zone\english");
        if (((!Directory.Exists(@"zone\german") && !Directory.Exists(@"zone\french")) && (!Directory.Exists(@"zone\russian") && !Directory.Exists(@"zone\japanese"))) && ((!Directory.Exists(@"zone\polish") && !Directory.Exists(@"zone\italian")) && !Directory.Exists(@"zone\spanish")))
        {
            num2 = 0;
        }
        else
        {
            num2 = 1;
        }
        if (num2 != 0)
        {
            WarnOut("Non-English MW2 language files have been detected. This may cause problems with connecting to servers. Only English game versions are officially supported by alterIWnet.");
        }
        managed = new SHA1Managed();
        inputStream = File.OpenRead("iw4mp.dat");
        buffer3 = managed.ComputeHash(inputStream);
        inputStream.Close();
        buffer2 = new byte[] { 
            58, 62, 107, 237, 70, 114, 108, 145, 134, 245, 21, 101, 172, 29, 232, 1, 
            96, 15, 197, 148
         };
        bool flag3 = true;
        int index = 0;
        goto Label_01CB;
    Label_01C7:
        index++;
    Label_01CB:
        if (index < buffer2.Length)
        {
            if (buffer3[index] == (buffer2[index] ^ 93))
            {
                goto Label_01C7;
            }
            flag3 = false;
        }
        if (!flag3)
        {
        }
        if (flag7)
        {
            info = new FileInfo(@"zone\english\patch_mp.ff");
            long length = info.Length;
        }
        CIniReader.{ctor}(&reader, &?A0x34f70293.unnamed-global-177);
        host = new string(CIniReader.ReadString(&reader, &?A0x34f70293.unnamed-global-180, &?A0x34f70293.unnamed-global-179, &?A0x34f70293.unnamed-global-178));
        socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) {
            Blocking = false
        };
        bool flag2 = true;
        try
        {
            socket.Connect(host, 13000);
        }
        catch (SocketException exception2)
        {
            if (exception2.NativeErrorCode != 10035)
            {
                flag2 = false;
            }
            else if (!socket.Poll(3000000, SelectMode.SelectWrite))
            {
                flag2 = false;
            }
        }
        finally
        {
            socket.Close();
        }
        if (!flag2 || (host.Contains("7") && host.EndsWith("t")))
        {
            WarnOut("Could not connect to the configured server (" + host + "). Possibly you've misconfigured alterIWnet.ini, or this server is actually down.");
        }
        bool flag8 = CIniReader.ReadBoolean(&reader, &?A0x34f70293.unnamed-global-182, &?A0x34f70293.unnamed-global-181, false);
        if (!host.Contains("alteriw.net"))
        {
            WarnOut("The alterIWnet server you are connecting to (" + host + ") is not officially supported by the alterIWnet project. For any help with server-related issues, use the support of whoever provided this server.");
            CIniReader.WriteBoolean(&reader, &?A0x34f70293.unnamed-global-184, &?A0x34f70293.unnamed-global-183, true);
        }
        if (!CIniReader.ReadBoolean(&reader, &?A0x34f70293.unnamed-global-186, &?A0x34f70293.unnamed-global-185, false))
        {
            Application.Run(new HackDisclaimer());
            if (!HackDisclaimer.accepted)
            {
                return false;
            }
            CIniReader.WriteBoolean(&reader, &?A0x34f70293.unnamed-global-188, &?A0x34f70293.unnamed-global-187, true);
        }
        RSAProc_Initialize(host);
        flag = true;
    }
    catch (Exception exception)
    {
        WarnOut(exception.ToString());
        return false;
    }
    return flag;
}
из этой функции мне надо выгрызть вот этот кусочек:

C#
1
2
3
4
5
if (!host.Contains("alteriw.net"))
        {
            WarnOut("The alterIWnet server you are connecting to (" + host + ") is not officially supported by the alterIWnet project. For any help with server-related issues, use the support of whoever provided this server.");
            CIniReader.WriteBoolean(&reader, &?A0x34f70293.unnamed-global-184, &?A0x34f70293.unnamed-global-183, true);
        }
кто-нибудь поможет? =) дело в том что я еще не вылупленный чайник в асме и тому подобных "низких" языках, и как всё это делается я не знаю.

Добавлено через 2 минуты
или же хотя бы изменить
C#
1
if (!host.Contains("alteriw.net"))
на
C#
1
if (!host.Contains("127"))) //в общем мне надо что бы игра проверяла сервер на соответствие не с alteriw.net а с 127.0.0.1 (локальный айпи)
Добавлено через 1 минуту
P.S.Открывал эту DLL-ку в UltraEdit'е, но нужной строки он не нашел, alteriw.net встречается, но в других местах. их изменение мною ни к чему не привело, к сожалению =(

Добавлено через 17 минут
P.P.S.Если что, функция WarnOut это простой MessageBox с иконкой восклицательного знака.


C#
1
2
3
4
internal static void WarnOut(string message)
{
    MessageBox.Show(message, "alterIWnet", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.09.2012, 22:13
Ответы с готовыми решениями:

Вырезать кусок картинки и сохранить как файл
Есть изображение в JPG-файле, допустим, 1000x1000, надо получить только...

Как вставить кусок кода в MSIL?
Вообщем дело такое: Есть MSIL код(рабочий, компилируется), мне нужно вставить...

Библиотека itextsharp: вырезать определенный кусок текста из PDF и поместить на форму
Использую данную библиотеку для работы с PDF файлами! Создавать файлы и...

Перевести кусок кода из С++.NET
ref struct Procedure { int type; array&lt;object^&gt;^ parameters; int target;...

Реально ли вывести в консоль определенный кусок кода?
Добрый день! Нужно вывести в консоль некоторый кусок исходного кода из...

5
Charles Kludge
Клюг
7645 / 3160 / 382
Регистрация: 03.05.2011
Сообщений: 8,382
01.09.2012, 23:15 2
Возьмите hiew32 на wasm.ru. Дока русская, разберётесь.
0
AvtoCrack
28 / 26 / 4
Регистрация: 16.11.2011
Сообщений: 147
01.09.2012, 23:30  [ТС] 3
Цитата Сообщение от Charles Kludge Посмотреть сообщение
Возьмите hiew32 на wasm.ru. Дока русская, разберётесь.
http://wasm.ru/search/search.php?query=hiew32&stpos=0&stype=OR это что-ли?
0
NickoTin
Почетный модератор
Эксперт .NET
8451 / 3573 / 402
Регистрация: 14.06.2010
Сообщений: 4,512
Записей в блоге: 9
02.09.2012, 11:11 4
AvtoCrack, dll выложите.
1
AvtoCrack
28 / 26 / 4
Регистрация: 16.11.2011
Сообщений: 147
02.09.2012, 13:30  [ТС] 5
SSTREGG, выложил. Умеет ли Рефлектор менять код налету
0
sau
1996 / 1613 / 265
Регистрация: 22.07.2011
Сообщений: 6,091
Завершенные тесты: 1
02.09.2012, 15:02 6
насчет reflexil-а ты ошибаешся , когда выбираешь функцию в дереве , можно посмотреть ее IL код через reflexil , и соответственно поправить.
0
02.09.2012, 15:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.09.2012, 15:02

Массив потоков threads (распараллелить кусок кода из алгоритма Дейкстры)
Пытался распараллелить кусок кода из алгоритма Дейкстры,но почему то ни один...

Дизассемблирование DLL, правка кода и компиляция его в DLL
ни разу не писал на c#, не пользовался monodeveloperом. сделано следующее:...

Peverify.dll, как запустить проверку на корректность IL - кода
Через cmd разработчика можно набрать команду peverify {путь к сборке} и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru