Пропатчим Асю на фичи и ненужные функции :) .часть1

На этот раз патчить будем руками. Точнее с помощью редактора, а не с помощью каких то там патчей, потому что мне надоело видеть кучи выложенных патчей и дллек, которые пропатчены на какую-то функцию, а чтобы поиметь другие функции нужно качать другую дллку или патч. Или выложенные длли пропатчены не так, как хотелось бы, а чтоб были пропатчены так как надо - вообще не найдёшь... Вобщем путаница на самом деле большая с этим всем обстоит. Или чтоб узнать, как какая-нибудь дллка была пропатчена, нужно всё равно её целиком скачивать, только для того, чтобы сравнить или посмотреть Readme файл, если таковой имелся в архиве вместе с длл. Сам я намучался в своё время с поиском и выкачкой из сети всех этих патчей и дллей. Я попытался собрать инфу в одно целое и теперь представляю вам уникальную возможность узнать что и где нужно изменить в длл чтобы она вела себя как нам надо с минимумом трафика и времени! Все данные представлены в шестнадцатеричном виде, поэтому редактор понадобится, который мог бы редактировать HEX-код (hexadecimal). Я выбрал для себя HEX WorkShop от BreakPoint SoftWare (http://www.bpsoft.com/). Прога 32-х битная, т.е. Виндовзная. У меня стоит версия 3.11. Качаем с сайта (примерно 3 мегабайта) и берём keygen с http://www.cracks.am/, так как она шароварная. Теперь прога зарегена. Перейдём к теме.

Так как сейчас многие используют ICQ 2000b Build 3281..3286, то патчились именно эти билды. Можете спокойно всё менять. Всё, что нам придётся менять, лежит в том же каталоге,что и ася, так что на время пропатчивания рекомендую вынести ярлык для папки с асей на рабочий стол для быстрого доступа к ней. Перед тем как патчить что либо, сделайте бэкап-копию файла. Правда можно и не производить backup, так как все файлы можно вытащить из асиного инсталлятора в любое время, так как он легко открывается в ВинРАР'е, но я делал для себя бэкап копии, для быстрого доступа к ним.

Здесь я буду приводить данные в таком виде, как их будет видно в нашем редакторе:
(везде адрес относится только к первому коду символа в строке) Для корректного отображения данных страницу нужно просматривать с однородным шрифтом типа "курьер". Убедитесь, что у вас есть шрифт Курьер и в программе просмотра поставлен МЕЛКИЙ размер шрифта, тогда эта статья будет отображаться правильно.

Адрес

данные, подлежащие изменению

примечания

0000A140 | 6F00 0000 4945 0000 4672 6F6D 2049 4351 0000 0000
-------------------------------||||-||||-||||-||||----------
0000A140 | 6F00 0000 4945 0000 4E55 4C00 0000 0000 0000 0000

-оригинал
-отличия
-изменённый код

Как изменять:
К примеру нужно найти строку: 
00015A68 | 538B 5D08 5657 85DB 7467 6A20 53FF 1554 053A 2359

Вызываем поиск с помощью кнопки Find (на рисунке слева):
 

Поисковый диалог выглядит так:



В строке поиска (Value) набираем
538B5D08565785DB74676A2053FF1554053A2359 или любую её часть, только имейте ввиду, что здесь все представлено кодами символов в виде 53 8B 5D 08 56 57 85 DB 74 67 6A 20 53 FF 15 54 05 3A 23 59 и если вы вздумаете поискать не 538B5D08 а 38B5D0 то ничего нужного не найдёте.

При этом надо понимать, что чем меньше символов выбрать для поиска, 
тем больше результатов может быть выведено на экран. Также адрес для символов не обязательно будет совпадать с приведённым тут. И ещё: не забывайте сохранять результаты :)


* * *
СОДЕРЖАНИЕ:

ICQCore.dll
1. Авторизация
2. Уведомление о добавлении
3. Лишние кнопки в главном окне программы
4. Visible/Invisible Листы
5. Статусы


ICQIfDg.dll
1. IP в деталях юзера
2. Любой E-Mail

ICQSearc.dll
1. Поиск уинов, начиная с номера 1

ICQTsLib.dll
1. "From ICQ" в Избранном

* * *

---------------=ICQCore.dll=---------------
Здесь приводятся данные о том, что и для чего патчить в сердце аськи.

------------------------------------------------------------------------
1. Авторизация


Хотелось ли вам когда-нибудь добавить к себе в контакт лист человека, у которого стоит авторизация, не спрашивая у него разрешения? Если да, то настало время пропатчить аську на эту фичу!



Патчится так:

OOOD70F0 | 0ABB C504 0400 E932 0100 0084 C075 248B 0668 500C
-------------------------------------------||---------------
OOOD70F0 | 0ABB C504 0400 E932 0100 0084 C0EB 248B 0668 500C

- оригинал
- отличия
- без спроса аддуем


Рисунок. Пример пропатчивания на авторизацию


------------------------------------------------------------------------
2. Уведомление о добавлении


А хотите, чтоб юзер даже и не узнал о том, что вы его добавили? Чтобы ему не приходили сообщения типа:


Если да, то слушайте сюда. Есть два способа: 1) Ищем человека по поиску но не добавляем, а уводим асю в оффлайн. Только после этого добавляем в контакт лист и коннектимся обратно в онлайн. Всё - человек у вас в контакте, но он об этом не знает! Если же вы всё время хотите так всех добавлять - чтобы никто не знал, то лучше пропатчить асю на это, а то можете промахнуться и добавить в контакт, находясь в онлайне - тогда он просечёт! Итак, второй способ: 2) Можно незаметно добавлять, не уходя в оффлайн. Патчим следующим образом:

00007864 | 9C21 8BC8 FF15 6CC4 9C21 83F8 0174 1F6A 0168 0C93
-------------------------------------------||---------------
00007864 | 9C21 8BC8 FF15 6CC4 9C21 83F8 01EB 1F6A 0168 0C93

- оригинал
- отличия
- без уведомления

Всё! Добавляйте кого угодно и никто не узнает! :) только имейте ввиду что лимит контакт листа на сервере, с которым он может оперировать - 600 человек.



------------------------------------------------------------------------
3. Лишние кнопки в главном окне программы


Наверняка вы уже устали наблюдать у себя перед глазами кучу ненужных кнопок и полей ввода в главном окне аськи, и вы думали, как бы их скрыть с глаз. Речь идёт вот об этих контролах:

<-- (Channels/ICQMail/Interests)
Эти кнопочки хотелось бы оставить...

И эти тоже хотелось бы оставить...

<-- miniwebsearch

"Да эти кнопки и уметь не надо убирать -  всё есть в меню!" скажут некоторые. Но если вашим способом попросить кнопки удалиться, то они повлекут за собой и нужные кнопки:

Сделаем так, чтобы убрать то, что нам не нужно и оставить то, что нужно:

а) Убираем Channels/ICQMail/Interests:

00062610 | 747E 8D4D D4E8 9E9E 0000 8B8B 6001 0000 8D45 D450 
-----------||-----------------------------------------------
00062610 | EB7E 8D4D D4E8 9E9E 0000 8B8B 6001 0000 8D45 D450 

- кнопки есть
- отличия
- кнопок нет!!!

б) Убираем нижний никому не нужный поиск (miniwebsearch):

00062818 | 008B 45D0 0145 E880 7DF7 000F 843B 0100 008D 4DD4 
--------------------------------------||-||||-||------------
00062818 | 008B 45D0 0145 E880 7DF7 00E9 3C01 0000 008D 4DD4

- поиск есть
- отличия
- поиска нет!!!

Всё! Разобрались! Получилось следующее:



------------------------------------------------------------------------
4. Visible/Invisible Листы


Общаясь в асе, вы наверняка уже нажили себе врагов по переписке :) Или же просто не хотите, чтобы кто-то наблюдал ваше присутствие в онлайне со своей аси, или со всех его асек, на которых он сидит, но чтобы сообщения от него к вам приходили. Или же наоборот у вас очень много друзей, которые вы хотите чтобы всегда знали, когда вы находитесь в онлайне или в инфизибле. Для этого существуют Visible (для того, чтобы избранные друзья видели, что вы на самом деле не в оффлайне, а в инвизибле) и Invisible (для того, чтобы для какого-то человека вы бы были как бы постоянно в оффлайне) листы.



Но есть одно небольшое ограничение на количество людей, которые могут находиться в этих листах со стороны аськи - количество людей не может превышать 40 человек ни в Visible ни в Invisible листе :( Это не проблема если у вас в каждом из них не более 40 человек. Но вот если нужно добавить туда большее количество людей, то вы уже стали задумываться над тем, кого бы выкинуть лишнего оттуда :) Постойте! Теперь эта проблема решена! Можно пропатчить аську на то, чтобы можно было кидать неограниченное количество людей в любой из этих листов! Патчим на это!:

Сразу для двух листов - наращивать не проверяя количество человек:

000D6894 | E9E9 0100 008B 4670 85C0 740E 3BD8 720A B8C3 0404
------------------------------------||----------------------
000D6894 | E9E9 0100 008B 4670 85C0 EB0E 3BD8 720A B8C3 0404

- не более 40
- отличия
-
бесконечные листы

Всё! Лимита нет! (Игнор лист не патчим, так как в нем итак нет лимита)



------------------------------------------------------------------------
5.
Статусы

Когда вы запускаете аську, вам наверняка не хотелось чтобы она сразу лезла в онлайн или инвизибл или Эвей или... "Блин так куда же она законнектится после старта???" - Задавали вы себе вопрос перед этим; и когда запускали её и она сразу же начинала коннектиться, вы судорожно пытались сразу же, пока она не успела законнектиться, либо запустить её в инвиз, либо в оффлайн, а затем уже выбирать любой режим. Это, согласитесь, действует на нервы не лучшим образом :) "А нельзя ли сделать так, чтобы она не коннектилась при старте?" - задавались вы вопросом. Но в настройках этого нет... Но ничто не устоит перед изменением кода! :) Есть выход - патчить! 

Итак, патчим на то, чтобы ася не коннектиласть после старта, или коннектилась, но в инвиз (выбираем кому что нужно - если у вас непатченая ася, значит ищем нижний вариант и меняем на любой из первых двух):

000046B4 | 00E8 8CFB FFFF EB0C 9090 9090 9090 9090 9090 9090
-----------------------------------------||||-||||-||-------
000046B4 | 00E8 8CFB FFFF EB0C 9090 9090 E879 3E00 0090 9090
-------------------------------||||-||||---||-||-----||-||||
000046B4 | 00E8 8CFB FFFF EB0C 5353 6A01 E8F8 3800 0083 C40C

- в оффе остаётся
- отличия
- в инвиз идёт
- отличия
-в онлайн -оригинал

Вот ещё одна фича, подлежащая немедленному пропатчиванию: иконка аськи в трее :)



При двойном щелчке на эту иконку, если ася в оффе, она начинает коннектиться. Можно отучить аську и от этого. Есть два варианта - пропатчить так, чтобы при двойном щелчке она коннектилась в инвизибл или оставалась в оффлайне, но при этом её фейс всплывал на рабочий стол. Ничего не остаётся как патчить! :)

Итак, приступим: Двойной щелчок по иконке заставляет асю:

000691CC | F9FF 85C0 750F 506A 016A 01E8 DDED F9FF 83C4 0CEB
--------------------------||||-||||-||---||||------||||-||--
000691CC | F9FF 85C0 750F 9090 9090 90E8 5EF3 F9FF 9090 90EB
--------------------------------------||-||||-||||----------
000691CC | F9FF 85C0 750F 9090 9090 9090 9090 9090 9090 90EB

- в онлайн идти
- отличия
- в инвиз
- отличия
- в оффе остаётся и всплывает на экран.

Так ей, это аське! Нечего пожизни в онлайн вылезать! :)))



---------------=ICQIfDg.dll=---------------

------------------------------------------------------------------------
1. IP в деталях юзера


В когда-нибудь хотели хакнуть собеседника, узнав его АйПи, и затем просканив все порты его компа? :) Или же вам хотелось просто узнать, через какого же прова он сидит, и при этом не запуская никаких внешних программ, а смотря просто в его детали? Такая возможность существовала в 99-й асе, но злобные админы убрали поле для ипов в 2000-й версии. Но мы вернём всё на свои места!

До того, как мы проделаем все необходимые действия, очевидно наше окно выглядит так:



После того, как мы пропатчим дллку, вид совсем изменится:



Итак, приступим к пытке длли:

Шаг1: Заставляем аську показать поле под IP:

00008E6C | 45EC E87F D800 0038 5DF3 9090 8B45 EC3B C390 908B
------------------------------------||||-------------||-||--
00008E6C | 45EC E87F D800 0038 5DF3 743C 8B45 EC3B C374 358B

- Изменяем на это
- отличия
- Оригинал

Шаг2: Заставляем аську игнорировать установку запрета показа IP в редактируемом поле:

00034DDC | 0000 0000 0000 0000 0508 8050 D000 0B00 3C00 0E00
--------------------------------------||--------------------
00034DDC | 0000 0000 0000 0000 0508 8040 D000 0B00 3C00 0E00

- Изменяем на это
- отличия
- Оригинал

Заставляем аську игнорировать установку запрета показа IP в статическом поле:

00034FE4 | 0000 0000 0000 0000 0000 0250 8800 0D00 4700 0800
--------------------------------------||--------------------

00034FE4 | 0000 0000 0000 0000 0000 0240 8800 0D00 4700 0800

- Изменяем на это
- отличия
- Оригинал

Всё! Ип видно - можно всех пугать! :) Также можно узнать и свой ИП - находясь в любом из режимов, будь то Away, N/A, Invisible, Online, и остальных, зайдите в свои детали и увидите там свой ИП :) Единственное "НО" в показе ипа - у некоторых людей можно увидеть в поле для ипа не его реальный ип, а ип прокси-сервера, через который он коннектится к серверу аси, или нулевой ип - 0.0.0.0 - это не его ип, естесственно, а это значит, что он поставил опцию "Разрешить директ коннекшн только с моего разрешения". На рисунке это показано:




------------------------------------------------------------------------
2. Любой E-Mail


Ещё одна прикольная штука - запись любого мыла. Наверняка вы видели у многих в поле для почты какую-нибудь бредятину вместо реального мыла. Увидев это, вам тоже наверняка хотелось ввести что-нибудь подобное, но аська начинала ругаться.

Вот например у Васи было замечено такое мыло:


 
Настал час отучить аську ругаться на мыло, которое мы введём!

Проделаем следующее:

00015A68 | 538B 5D08 5657 85DB 7467 6A20 53FF 1554 053A 2359 
------------------------------------||||--------------------
00015A68 | 538B 5D08 5657 85DB 7467 EB67 53FF 1554 053A 2359

- так ася ругается
- отличия
- а вот так нет!!!

Всё! Теперь мы можем ввести в поле для мыла любую билиберду! :)



---------------=ICQSearc.dll=---------------

------------------------------------------------------------------------
1. Поиск уинов, начиная с номера 1


Вы никогда не задумывались о том, что нумерация асек начинается с номера 1? Если да, то наверняка хотели посмотреть инфу, добавить к себе в контакт лист :) Но не тут-то было - при попытке найти UIN# 9 аська ругается, ссылаясь на то, что уин не может быть меньше 10000!


 

Но он же есть! Нехорошо, надо с этим разобраться! Ищем то что нужно в дллке и меняем! Так как длл ещё не патченая, ищем нижние варианты , заменяем на верхние:

000048D0 | 0050 E81E 2D01 0056 68FE FFFF 7F68 0100 0000 8D45 
----------------------------------------------||||----------
000048D0 | 0050 E81E 2D01 0056 68FE FFFF 7F68 1027 0000 8D45
- поиск с 1
- отличия
- поиск с 10000
00009EFC | FEFF FF7F 6801 0000 008D 45F4 68DC 6112 2350 E820
-----------------------||-||--------------------------------
00009EFC | FEFF FF7F 6810 2700 008D 45F4 68DC 6112 2350 E820
- поиск с 1
- отличия
- поиск с 10000
000226F0 | 2005 9319 0100 0000 0100 1223 0000 0000 0000 0000
-------------------------------||||-------------------------
000226F0 | 2005 9319 0100 0000 1027 1223 0000 0000 0000 0000
- поиск с 1
- отличия
- поиск с 10000

Вот и всё! Найдём теперь номер 9 к примеру. Может он есть а может уже анрегнут. А вообще принцип таков: HEX2710=>DEC10000; HEX0001=>DEC1. Ася разрешала искать тока с 10000 уина. Переводим 10000 в хекс, смотрим - получилось 2710. Значит ищем в дллке число 1027 и меняем на 0100 :)



---------------=ICQTsLib.dll=---------------

------------------------------------------------------------------------
1. "From ICQ" в Избранном


Здесь приводятся данные о том, как убить ненужное меню в избранном эксплорера From ICQ, которое как вы может быть уже заметили, появляется каждый раз после старта аськи, даже если его оттуда убить.

Речь идёт об этом меню:

<

Итак, чтобы ася не создавала его по-новой, нужно зацепить вот что:

0000A140 | 6F00 0000 4945 0000 4672 6F6D 2049 4351 0000 0000
-------------------------------||||-||||-||||-||||----------
0000A140 | 6F00 0000 4945 0000 4E55 4C00 0000 0000 0000 0000

-меню будет появляться
-отличия
-не будет появляться

Всё - меню убито! Те, кому оно надоедало, могут облегчённо вздохнуть :)

------------------------------------------------------------------------

На этом пока остановимся...


Некто Z (ICQ# 769862)

[an error occurred while processing this directive]