Сейчас на форуме: _MBK_, Magister Yoda (+5 невидимых)

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


Ранг: 450.3 (мудрец), 13thx
Активность: 0.20
Статус: Участник

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

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


dac4_29.09.2007_CRACKLAB.rU.tgz - ab.rar




Ранг: 631.1 (!), 62thx
Активность: 0.370.01
Статус: Участник
Автор VB Decompiler

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

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

-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!





Ранг: 631.1 (!), 62thx
Активность: 0.370.01
Статус: Участник
Автор VB Decompiler

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

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

-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!




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

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

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

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




Ранг: 450.3 (мудрец), 13thx
Активность: 0.20
Статус: Участник

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

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




Ранг: 631.1 (!), 62thx
Активность: 0.370.01
Статус: Участник
Автор VB Decompiler

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

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


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

-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!




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

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

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




Ранг: 450.3 (мудрец), 13thx
Активность: 0.20
Статус: Участник

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

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


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


d81d_30.09.2007_CRACKLAB.rU.tgz - dump.rar




Ранг: 218.9 (наставник), 42thx
Активность: 0.160
Статус: Участник
dotnet

Создано: 01 октября 2007 14:42 · Поправил: Nimnul
· Личное сообщение · #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 компилер сильно ругался бы.

-----
have a nice day





Ранг: 450.3 (мудрец), 13thx
Активность: 0.20
Статус: Участник

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

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


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



Ранг: 196.0 (ветеран), 72thx
Активность: 0.140.02
Статус: Участник

Создано: 03 октября 2007 23:39
· Личное сообщение · #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 (наставник), 6thx
Активность: 0.150
Статус: Участник

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

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



Ранг: 196.0 (ветеран), 72thx
Активность: 0.140.02
Статус: Участник

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

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



Ранг: 106.6 (ветеран), 7thx
Активность: 0.040.02
Статус: Участник

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

Djeck
http://www.exelab.ru/art/?action=view&id=360



Ранг: 196.0 (ветеран), 72thx
Активность: 0.140.02
Статус: Участник

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

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




Ранг: 500.6 (!), 7thx
Активность: 0.260
Статус: Участник

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

Djeck

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



Ранг: 196.0 (ветеран), 72thx
Активность: 0.140.02
Статус: Участник

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

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



Ранг: 196.0 (ветеран), 72thx
Активность: 0.140.02
Статус: Участник

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

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




Ранг: 500.6 (!), 7thx
Активность: 0.260
Статус: Участник

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

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

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



Ранг: 106.6 (ветеран), 7thx
Активность: 0.040.02
Статус: Участник

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

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



Ранг: 196.0 (ветеран), 72thx
Активность: 0.140.02
Статус: Участник

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

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

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



Ранг: 284.8 (наставник), 6thx
Активность: 0.150
Статус: Участник

Создано: 04 октября 2007 22:15
· Личное сообщение · #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 (наставник), 6thx
Активность: 0.150
Статус: Участник

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

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

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


a894_05.10.2007_CRACKLAB.rU.tgz - ildasm.rar




Ранг: 450.3 (мудрец), 13thx
Активность: 0.20
Статус: Участник

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

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


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




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

Создано: 05 октября 2007 15:28
· Личное сообщение · #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 (наставник), 6thx
Активность: 0.150
Статус: Участник

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

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


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



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

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

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




Ранг: 218.9 (наставник), 42thx
Активность: 0.160
Статус: Участник
dotnet

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

jfx

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

-----
have a nice day




Ранг: 196.0 (ветеран), 72thx
Активность: 0.140.02
Статус: Участник

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

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




Ранг: 218.9 (наставник), 42thx
Активность: 0.160
Статус: Участник
dotnet

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

Скоро будет еще одна.

-----
have a nice day



. 1 . 2 . >>
 eXeL@B —› Основной форум —› Вроде .NET, а инструменты не берут...
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати