eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС
выпущен 4 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: rmn, Xlab0s (+4 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Основной форум —› Вроде .NET, а инструменты не берут...
. 1 . 2 . >>
Посл.ответ Сообщение


Ранг: 450.3 (мудрец)
Статус: Участник

Создано: 29 сентября 2007 22:25 New!
Цитата · Личное сообщение · #1

Помогите понять, что использовать для исследования данной программы.
Вроде .NET приложение, Ида не распознаёт, пробовал Spices, Decompiler.NET, .NET Reflector , .NET Resourcer – результат нулевой. Совсем не имею опыта работы с .NET, а тут ещё такое попалось…
Ссылка на инсталл: h..p://www.auto-broker.net/AutoBroker4Setup.exe (размер 4.2 Мб, требует .NET 2.0)


{ Атач доступен только для участников форума } - ab.rar


Ранг: 630.8 (!)
Статус: Участник
Автор VB Decompiler

Создано: 29 сентября 2007 23:00 New!
Цитата · Личное сообщение · #2

Ну так на нем Themida навешана - потому и не одна тулза не помогает.
Ты фемиду распакуй сначала


Ранг: 630.8 (!)
Статус: Участник
Автор VB Decompiler

Создано: 29 сентября 2007 23:02 New!
Цитата · Личное сообщение · #3

Да и вообще если в COM дескрипторе нули - сразу знай - тут обфускаторами не пахнет.

Ранг: 260.2 (наставник)
Статус: Участник

Создано: 29 сентября 2007 23:44 · Поправил: sniperZ New!
Цитата · Личное сообщение · #4

GPcH пишет:
если в COM дескрипторе нули

ога, это фемида такое делает...


Ранг: 450.3 (мудрец)
Статус: Участник

Создано: 30 сентября 2007 00:21 New!
Цитата · Личное сообщение · #5

UnThemida 1-3 не берёт... Руками не сниму... Похоже нужно забить ?


Ранг: 630.8 (!)
Статус: Участник
Автор VB Decompiler

Создано: 30 сентября 2007 00:27 New!
Цитата · Личное сообщение · #6

ToBad пишет:
UnThemida 1-3 не берёт


Просто есть Themida, а есть Themida + .NET модуль. Такой модуль врядли что либо кроме рук возьмет

Ранг: 260.2 (наставник)
Статус: Участник

Создано: 30 сентября 2007 00:37 New!
Цитата · Личное сообщение · #7

ToBad
попробуй запустить прогу и сдампить PETools'ом. потом открой в .NET Reflectorе. иногда помогает...


Ранг: 450.3 (мудрец)
Статус: Участник

Создано: 30 сентября 2007 10:17 New!
Цитата · Личное сообщение · #8

sniperZ пишет:
попробуй запустить прогу и сдампить PETools'ом. потом открой в .NET Reflectorе. иногда помогает


Сдампил. Размер не сильно поменялся, уже нашёл хювом нужное место для патча адреса сервера программы, где она проверяет лицензию. Лоадером патчить получается. Но инструменты по прежнему не берут ехе. Нужно ещё будет обойти ограничение на 3 поисковых запроса, а как получить хоть какой то осмысленный код - не знаю...
Прилагаю дамп, может кто нибудь посмотрит и посоветует как его изучать...


{ Атач доступен только для участников форума } - dump.rar


Ранг: 218.9 (наставник)
Статус: Участник
dotnet

Создано: 1 октября 2007 14:42 · Поправил: Nimnul New!
Цитата · Личное сообщение · #9

ToBad


IL_0000: calli 0xE08E2892 // ERROR: invalid token type
IL_0005: nop
IL_0006: stloc.0
IL_0007: stelem.ref
IL_0008: call [ERROR: INVALID TOKEN 0x0600B08B]
IL_000d: shl
IL_000e: ldfld [ERROR: INVALID TOKEN 0x040090B9]
IL_0013: bgt.un IL_80b893

IL_0018: ldarg.2
IL_0019: bgt.un IL_80b899

IL_001e: ldarg.2
IL_001f: conv.i2


Дамп прекрасно понимается инструментами. Все методы испорчены(пошифрованны\поксорены) фемида ставит хуки на события начала компиляции метода и конец компиляции. Таким образом код методов доступен только в момент компеляции, иначе jit компилер сильно ругался бы.


Ранг: 450.3 (мудрец)
Статус: Участник

Создано: 3 октября 2007 23:03 New!
Цитата · Личное сообщение · #10

Nimnul пишет:
Дамп прекрасно понимается инструментами.


А чем именно ты пользовался ?

Ранг: 193.7 (ветеран)
Статус: Участник

Создано: 3 октября 2007 23:39 New!
Цитата · Личное сообщение · #11

Заранее прошу прощения,что залез в чужую тему,но у меня помойму такая же ситуация.
Имеется прога.Называется DVD Cover Gold.
Ссылка на скачивание:--> Скачать <-- http://69.60.111.87/downloads/t/dvdcovergold3.0.1.zip
Размер: 2.44 МБ.
Последняя версия 3.0.1
Peid показывает:Microsoft Visual C# / Basic .NET
Запускаю под 2 сборками Олли:прога сразу запускается,при этом в отладчике вообще не видно кода.При запуске показывается окно регистрации и при нажатии F9 прога закрывается.Ест-но ни один хайдер для олли не помогает.
Пробовал различными дизасмами-ноль.Ни один не видит ресурсов(строк) вместо кода куча-мала.
Пытался также приатачиться к процессу в олли.Результат-ни один бряк не срабатывает и из библы кёрнел хрен вылезишь.По сути я даже кода программы так и не увидел.
По поводу паковки-сто процентов сказать не могу,но всё-таки мне кажется прога не запакована,так как все анализаторы молчат,да и энтропия в пейде и в die то же отдыхает.
Собственно вопрос-может подскажите что делать.Первый раз с такой хренью встречаюсь,а прог с этим штук 6.Хочется научиться как с этим бороться.
Заранее благодарен за ответы

Ранг: 284.8 (наставник)
Статус: Участник

Создано: 4 октября 2007 00:03 New!
Цитата · Личное сообщение · #12

Djeck
Оля не для отладки .NET программ, для них ИМХО лучше всего это:
1) Reflector - дизасм в нормальный сишный код ( почти всегда )
2) PE Browse - отладчик для .NET ( с олей не сравнить, но все таки ) - сайт - www.smidgeonsoft.com/
3) Хenocode - тож аналог рефлектора
4) IDA - ну тут не надо объяснять
5) ildasm - эт если оч уж хреново и надо патчить сборку.

Ранг: 193.7 (ветеран)
Статус: Участник

Создано: 4 октября 2007 03:03 New!
Цитата · Личное сообщение · #13

А ни кто не видел статью по взлому Microsoft Visual C# / Basic .NET.Если такая есть дайте покурить.А то ни хера не понимаю.

Ранг: 105.8 (ветеран)
Статус: Участник

Создано: 4 октября 2007 05:51 New!
Цитата · Личное сообщение · #14

Ранг: 193.7 (ветеран)
Статус: Участник

Создано: 4 октября 2007 06:36 New!
Цитата · Личное сообщение · #15

digger70,спасибо за наводку.
С теорией я разобрался,но конкретно хотелось бы прочитать про взлом какой-нибудь софтины.Просто у меня трудности с использованием инструментов.


Ранг: 500.6 (!)
Статус: Участник

Создано: 4 октября 2007 07:54 New!
Цитата · Личное сообщение · #16

Djeck

Ищи -->ЗДЕСЬ<-- http://arteam.accessroot.com/tutorials.html .

Ранг: 193.7 (ветеран)
Статус: Участник

Создано: 4 октября 2007 09:02 New!
Цитата · Личное сообщение · #17

NIKOLA,спасибо там не плохие статейки.
P.S. вот они бяку там ломают..брр

Ранг: 193.7 (ветеран)
Статус: Участник

Создано: 4 октября 2007 09:50 New!
Цитата · Личное сообщение · #18

Теперь такой тупой вопрос.
С помощью PE Browse нашёл все места где надо патчить.Но вот в чём вопрос-патчить то в нём можно,а вот сохранять как в олли например нельзя.С помощью Hex редактора ни как не могу найти эти адреса.Пробовал искать по байтам-тоже не нашёл.У кого есть опыт подскажите как пропатчить-то прогу.Может быть имеется возможность в PE Browse сохранять изменения?


Ранг: 500.6 (!)
Статус: Участник

Создано: 4 октября 2007 16:12 · Поправил: NIKOLA New!
Цитата · Личное сообщение · #19

Самый простой вариан, разобрать эксешник - убраать защиту и снова скомпилить.

Поищи у нас, в разделе "Статьи", статейки, там написано, чем разобрать и чем собрать.

Ранг: 105.8 (ветеран)
Статус: Участник

Создано: 4 октября 2007 18:53 New!
Цитата · Личное сообщение · #20

Djeck
Эээ... может как нибудь с патчем повременить, поскольку автор код генерации ключа честно приложил
class function modSerialKey.GenerateKey (strFormat : String; strIgnore : String, paramarray) : String;
.....

Ранг: 193.7 (ветеран)
Статус: Участник

Создано: 4 октября 2007 19:25 New!
Цитата · Личное сообщение · #21

digger70 пишет:
Эээ... может как нибудь с патчем повременить, поскольку автор код генерации ключа честно приложил
class function modSerialKey.GenerateKey (strFormat : String; strIgnore : String, paramarray) : String;

Да это я видел,читал давненько статью фаередара,он там взял и нагло спёр эту генерацию,а потом откомпилил в .Net.Но у меня компилятора нет.А на "глаз"разбираться мне тяжеловато.
P.s.Да и интересно насчёт патча.В этой проге автор "честный"попался,но я не думаю,что во всех так будет.ИМХО если уж начал разбираться,то надо заканчивать.

Ранг: 284.8 (наставник)
Статус: Участник

Создано: 4 октября 2007 22:15 New!
Цитата · Личное сообщение · #22

Djeck
А че там разбираться главно понять где патчить
Вот в твоей проге функа отвечающая за регистрацию:

public enmRegistrationMode SerialKeyMode(object strSerialKey)
{
if (strSerialKey == null)
{
return enmRegistrationMode.RM_EVALUATION;
}
if (Operators.ConditionalCompareObjectEqual(strSerialKey, string.Empty, false))
{
return enmRegistrationMode.RM_EVALUATION;
}
try
{
StringReader reader = new StringReader(DCGOLD3.My.Resources.Resources.RegInfo);
string strA = modSerialKey.GenerateHash(Conversions.ToString(strSerialKey));
clsEncrypt encrypt = new clsEncrypt(this.strAlgorithm, this.strPassword);
for (string str = reader.ReadLine(); str != null; str = reader.ReadLine())
{
string strB = encrypt.DecryptData(str);
if (strB == null)
{
goto Label_0091;
}
if (string.CompareOrdinal(strA, strB) == 0)
{
reader.Close();
return enmRegistrationMode.RM_REGISTERED;
}
}
}

и т.д. выдрано из рефлектора, как мы видим что функция должна вернуть enmRegistrationMode.RM_REGISTERED. Теперь открываем ее в ildasm.exe

.method /*060000B0*/ public instance valuetype 'DCGOLD3.Registration'.'clsRegistration'/* 02000010 *//'enmRegistrationMode'/* 02000011 */
'SerialKeyMode'(object 'strSerialKey') cil managed
// SIG: 20 01 11 44 1C
{
// Method begins at RVA 0x137e40
// Code size 149 (0x95)
.maxstack 3
.locals /*1100006D*/ init (valuetype 'DCGOLD3.Registration'.'clsRegistration'/* 02000010 *//'enmRegistrationMode'/* 02000011 */ V_0,
class 'DCGOLD3'.'clsEncrypt'/* 0200000A */ V_1,
class ['mscorlib'/* 23000001 */]'System.IO'.'StringReader'/* 0100009A */ V_2,
string V_3,
string V_4,
string V_5,
class ['mscorlib'/* 23000001 */]'System'.'Exception'/* 01000072 */ V_6)
IL_0000: /* 03 | */ ldarg.1
IL_0001: /* 14 | */ ldnull
IL_0002: /* FE01 | */ ceq
IL_0004: /* 2C | 02 */ brfalse.s IL_0008
IL_0006: /* 16 | */ ldc.i4.0
IL_0007: /* 2A | */ ret
IL_0008: /* 03 | */ ldarg.1
IL_0009: /* 7E | (0A)00005A */ ldsfld string ['mscorlib'/* 23000001 */]'System'.'String'/* 0100006D */::'Empty' /* 0A00005A */
IL_000e: /* 16 | */ ldc.i4.0
IL_000f: /* 28 | (0A)0000A4 */ call bool ['Microsoft.VisualBasic'/* 23000002 */]'Microsoft.VisualBasic.CompilerServices'.'Operators'/* 0100009B */::'ConditionalCompareObjectEqual'(object,
object,
bool) /* 0A0000A4 */
IL_0014: /* 2C | 02 */ brfalse.s IL_0018
IL_0016: /* 16 | */ ldc.i4.0
IL_0017: /* 2A | */ ret
.try
{
IL_0018: /* 28 | (06)00054C */ call string 'DCGOLD3.My.Resources'.'Resources'/* 02000039 */::'get_RegInfo'() /* 0600054C */
IL_001d: /* 73 | (0A)0000A5 */ newobj instance void ['mscorlib'/* 23000001 */]'System.IO'.'StringReader'/* 0100009A */::.ctor(string) /* 0A0000A5 */
IL_0022: /* 0C | */ stloc.2
IL_0023: /* 03 | */ ldarg.1
IL_0024: /* 28 | (0A)0000A2 */ call string ['Microsoft.VisualBasic'/* 23000002 */]'Microsoft.VisualBasic.CompilerServices'.'Conversions'/* 01000099 */::'ToString'(object) /* 0A0000A2 */
IL_0029: /* 28 | (06)00051A */ call string 'DCGOLD3.SerialKey'.'modSerialKey'/* 02000038 */::'GenerateHash'(string) /* 0600051A */
IL_002e: /* 13 | 04 */ stloc.s V_4
IL_0030: /* 02 | */ ldarg.0
IL_0031: /* 7B | (04)000044 */ ldfld string 'DCGOLD3.Registration'.'clsRegistration'/* 02000010 */::'strAlgorithm' /* 04000044 */
IL_0036: /* 02 | */ ldarg.0
IL_0037: /* 7B | (04)000045 */ ldfld string 'DCGOLD3.Registration'.'clsRegistration'/* 02000010 */::'strPassword' /* 04000045 */
IL_003c: /* 73 | (06)000036 */ newobj instance void 'DCGOLD3'.'clsEncrypt'/* 0200000A */::.ctor(string,
string) /* 06000036 */
IL_0041: /* 0B | */ stloc.1
IL_0042: /* 08 | */ ldloc.2
IL_0043: /* 6F | (0A)0000A6 */ callvirt instance string ['mscorlib'/* 23000001 */]'System.IO'.'StringReader'/* 0100009A */::'ReadLine'() /* 0A0000A6 */
IL_0048: /* 0D | */ stloc.3
IL_0049: /* 2B | 2F */ br.s IL_007a
IL_004b: /* 07 | */ ldloc.1
IL_004c: /* 09 | */ ldloc.3
IL_004d: /* 6F | (06)00003B */ callvirt instance string 'DCGOLD3'.'clsEncrypt'/* 0200000A */::'DecryptData'(string) /* 0600003B */
IL_0052: /* 13 | 05 */ stloc.s V_5
IL_0054: /* 11 | 05 */ ldloc.s V_5
IL_0056: /* 14 | */ ldnull
IL_0057: /* FE01 | */ ceq
IL_0059: /* 2C | 02 */ brfalse.s IL_005d
IL_005b: /* DE | 34 */ leave.s IL_0091
IL_005d: /* 11 | 04 */ ldloc.s V_4
IL_005f: /* 11 | 05 */ ldloc.s V_5
IL_0061: /* 28 | (0A)0000A7 */ call int32 ['mscorlib'/* 23000001 */]'System'.'String'/* 0100006D */::'CompareOrdinal'(string,
string) /* 0A0000A7 */
IL_0066: /* 16 | */ ldc.i4.0
IL_0067: /* 33 | 0A */ bne.un.s IL_0073
IL_0069: /* 08 | */ ldloc.2
IL_006a: /* 6F | (0A)0000A8 */ callvirt instance void ['mscorlib'/* 23000001 */]'System.IO'.'StringReader'/* 0100009A */::'Close'() /* 0A0000A8 */
IL_006f: /* 17 | */ ldc.i4.1
IL_0070: /* 0A | */ stloc.0
IL_0071: /* DE | 20 */ leave.s IL_0093
IL_0073: /* 08 | */ ldloc.2
IL_0074: /* 6F | (0A)0000A6 */ callvirt instance string ['mscorlib'/* 23000001 */]'System.IO'.'StringReader'/* 0100009A */::'ReadLine'() /* 0A0000A6 */
IL_0079: /* 0D | */ stloc.3
IL_007a: /* 09 | */ ldloc.3
IL_007b: /* 14 | */ ldnull
IL_007c: /* FE01 | */ ceq
IL_007e: /* 2C | CB */ brfalse.s IL_004b
IL_0080: /* DE | 0F */ leave.s IL_0091

Вот этот же кусок, т.е. теперь что бы функция всегда вернула 1 = enmRegistrationMode.RM_REGISTERED

Надо перейти в файле по ссмещению RVA 0x137e40

найти байты:
03 14 FE 01 2C 02 16
и заменить на
00 00 00 00 00 00 17

тем самым получим вот такую функцию:

public enmRegistrationMode SerialKeyMode(object strSerialKey)
{
return enmRegistrationMode.RM_REGISTERED;
if (Operators.ConditionalCompareObjectEqual(strSerialKey, string.Empty, false))
{
return enmRegistrationMode.RM_EVALUATION;
}

и т.д.

Все! разбирайся

Ранг: 284.8 (наставник)
Статус: Участник

Создано: 5 октября 2007 10:08 New!
Цитата · Личное сообщение · #23

Djeck
Вот прикрепил ildasm.exe

P.S. Понимаю что тема ушла от первоначальной, но тем не менее что-то похожее осталось.


{ Атач доступен только для участников форума } - ildasm.rar


Ранг: 450.3 (мудрец)
Статус: Участник

Создано: 5 октября 2007 11:29 New!
Цитата · Личное сообщение · #24

RSI пишет:
Понимаю что тема ушла от первоначальной


Всё класс, очень полезная информация !
Поясни пожалуйста почему именно так:
найти байты:
03 14 FE 01 2C 02 16
и заменить на
00 00 00 00 00 00 17

Ранг: 56.4 (постоянный)
Статус: Участник

Создано: 5 октября 2007 15:28 New!
Цитата · Личное сообщение · #25

03 14 FE 01 2C 02 16
это собственно вот это:

IL_0000: /* 03 | */ ldarg.1
IL_0001: /* 14 | */ ldnull
IL_0002: /* FE01 | */ ceq
IL_0004: /* 2C | 02 */ brfalse.s IL_0008
IL_0006: /* 16 | */ ldc.i4.0
IL_0007: /* 2A | */ ret

а после патча получим:
IL_0000: nop
...
IL_0007: nop
IL_0006: /* 17 | */ ldc.i4.1
IL_0007: /* 2A | */ ret

А по теме шелов и хуков джитера для декрипта тела метода загляни вот сюда
_http://vxer.cn/blog/

Ранг: 284.8 (наставник)
Статус: Участник

Создано: 5 октября 2007 15:38 New!
Цитата · Личное сообщение · #26

jfx пишет:
А по теме шелов и хуков джитера для декрипта тела метода загляни вот сюда
_http://vxer.cn/blog/


Мля, если кто китайский знает - переведите мне, нифига не понял...

Ранг: 56.4 (постоянный)
Статус: Участник

Создано: 5 октября 2007 15:42 New!
Цитата · Личное сообщение · #27

Гы, это блог одно клевого китайчега, читать через BabelFish на av.com (simp. chinese -> eng).
У него там много по шелам есть и вообще по .NET.


Ранг: 218.9 (наставник)
Статус: Участник
dotnet

Создано: 7 октября 2007 15:27 New!
Цитата · Личное сообщение · #28

jfx

Ты сам побывал по методам собирать прогу?

Ранг: 193.7 (ветеран)
Статус: Участник

Создано: 7 октября 2007 16:50 · Поправил: Djeck New!
Цитата · Личное сообщение · #29

Nimnul,кстати если не чё не гоню,то помойму именно ты писал три части статей по исследованию .Net программ?Если да,то спасибо,статьи интересные,после их прочтения многое стало понятно.


Ранг: 218.9 (наставник)
Статус: Участник
dotnet

Создано: 8 октября 2007 09:28 New!
Цитата · Личное сообщение · #30

Скоро будет еще одна.
. 1 . 2 . >>
 eXeL@B —› Основной форум —› Вроде .NET, а инструменты не берут...

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS