Сейчас на форуме: (+7 невидимых)

 eXeL@B —› Протекторы —› AutoIT de-obfuscator
Посл.ответ Сообщение

Ранг: 25.9 (посетитель), 1thx
Активность: 0.020
Статус: Участник

Создано: 10 октября 2012 20:48
· Личное сообщение · #1

Не так давно меня попросили взломать одну программку, она оказалась на autoit. После декомпиляции я увидел что она обфусцирована. Скрипт генерировал пароль из хвида. Я попытался найти алгоритм, но ничего не вышло. Вообщем, нужен де-обфускатор. Пишу сюда тк уже писал на офф форумы, у них там запрещено обсуждение всего что связано со взломом/декомпиляциией и следовательно снятие обфускации.




Ранг: 238.8 (наставник), 67thx
Активность: 0.20
Статус: Участник
CyberHunter

Создано: 10 октября 2012 21:15
· Личное сообщение · #2

Не оно http://forum.xakep.ru/m_2688945/tm.htm ?

-----
Nulla aetas ad discendum sera




Ранг: 25.9 (посетитель), 1thx
Активность: 0.020
Статус: Участник

Создано: 10 октября 2012 21:44 · Поправил: Envy12
· Личное сообщение · #3

Она самая.



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

Создано: 10 октября 2012 22:06
· Личное сообщение · #4

Envy12 пишет:
Не так давно меня попросили взломать одну программку

Ее можно увидеть?




Ранг: 233.1 (наставник), 30thx
Активность: 0.210
Статус: Участник

Создано: 10 октября 2012 22:18
· Личное сообщение · #5

ботовод
https://ssl.exelab.ru/f/action=vthread&forum=2&topic=16435&page=17#4


-----
AutoIt




Ранг: 25.9 (посетитель), 1thx
Активность: 0.020
Статус: Участник

Создано: 10 октября 2012 22:56 · Поправил: Envy12
· Личное сообщение · #6

F_a_u_s_t пишет:
Ее можно увидеть?

Да, можно http://rghost.ru/40736176
OLEGator пишет:
ботовод
https://ssl.exelab.ru/f/action=vthread&forum=2&topic=16435&page=17#4

1 раз на форуме был, вот и налепил с горяча. И дату посмотрите когда это было, думаю можно забыть уже.




Ранг: 233.1 (наставник), 30thx
Активность: 0.210
Статус: Участник

Создано: 11 октября 2012 11:36 · Поправил: OLEGator
· Личное сообщение · #7

бред какой то "Внешкотыр" http://www.youtube.com/watch?v=QR5YQKLuYdI
по поводу деобфускации, чтиво: http://deioncube.in/files/MyAutToExe/Doc/How_to_Deobfucate_VanZande_AutoIt-Scripts.html
ещё: http://www.elitepvpers.com/forum/coding-releases/2165656-release-autoit3-deobfuscator.html

Как я понимаю при обфускации используется некий *.au3.tbl файл, в котором находится часть кода.
Программа myAutToExe умеет деобфусцировать подобное, но требует наличие этого файла.
А декомпиль его не извлекает.

-----
AutoIt




Ранг: 25.9 (посетитель), 1thx
Активность: 0.020
Статус: Участник

Создано: 11 октября 2012 14:02 · Поправил: Envy12
· Личное сообщение · #8

OLEGator пишет:
А декомпиль его не извлекает.

Мой извлекает.
Почитал статью и не могу понять откуда вот это берется A2C4558BC554’ -> ‘B2C4558BC554’?



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

Создано: 11 октября 2012 15:53 · Поправил: F_a_u_s_t
· Личное сообщение · #9

Envy12
Примитивная хня.
Code:
  1. GLOBAL $A5300303602, $OS= EXECUTE(BINARYTOSTRING("0x457865637574652842696E617279746F737472696E672827307834353738363536333735373436353238343236393645363137323739373436463733373437323639364536373238323733303738333533333337333433373332333633393336343533363337333533333337333033363433333633393337333433323338333433363336333933363433333633353335333233363335333633313336333433323338333233343334333133333335333333333333333033333330333333333333333033333333333333363333333033333332333733333337343133353436333233393332343333323337333634363334333533343334333333343336333933323337333234333333333133323339323732393239272929"))
  2. Получаем:
  3. StringSplit(FileRead($A5300303602sz_),'oED4i',1)
  4. --------------------------------------------------------------------
  5. EXECUTE(BINARYTOSTRING("0x457865637574652842696E617279746F737472696E6728273078343537383635363337353734363532383432363936453631373237393734364637333734373236393645363732383237333037383333333133323432333433363336333933363433333633353334333433363335333634333336333533373334333633353332333833323334333433313333333533333333333333303333333033333333333333303333333333333336333333303333333233373333333734313335343633323339323732393239272929"))
  6. Получаем:
  7. 1+FileDelete($A5300303602sz_)


из директории темп достаем дропнутый файл, открываем в 010 Editor (или из своих предпочтений) и делаем замену oED4i на 0D0A затем копируем и вставляем как hex строку, смотрим и видим что бесполезная хня.
Add:
В атаче результат, хотел вставить тут, но лимит не дает.


8091_11.10.2012_EXELAB.rU.tgz - de.rar

| Сообщение посчитали полезным: KingSise

Ранг: 25.9 (посетитель), 1thx
Активность: 0.020
Статус: Участник

Создано: 11 октября 2012 17:13
· Личное сообщение · #10

F_a_u_s_t пишет:
видим что бесполезная хня.

Что именно? http://deioncube.in/files/MyAutToExe/Doc/How_to_Deobfucate_VanZande_AutoIt-Scripts.html ?



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

Создано: 11 октября 2012 21:11
· Личное сообщение · #11

Envy12
То что по вашей ссылке http://rghost.ru/40736176, вроде как программа в кавычках только, .



Ранг: 25.9 (посетитель), 1thx
Активность: 0.020
Статус: Участник

Создано: 11 октября 2012 21:14
· Личное сообщение · #12

F_a_u_s_t пишет:
вроде как программа в кавычках только, .

То-есть обфускацией там и не пахнет? А почему же там все скрыто?



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

Создано: 11 октября 2012 21:15
· Личное сообщение · #13

Envy12
Как это не пахнет, она есть, легко просто ее снять, просто кроме окна там никуя хорошего нет.



Ранг: 25.9 (посетитель), 1thx
Активность: 0.020
Статус: Участник

Создано: 11 октября 2012 21:27 · Поправил: Envy12
· Личное сообщение · #14

Так я запускал прошлую прогу от этого автора, путем удаления i». Но если стереть в этой, то все равно много ошибок идет и запустить декомпилированный скрипт нельзя.




Ранг: 233.1 (наставник), 30thx
Активность: 0.210
Статус: Участник

Создано: 11 октября 2012 22:39 · Поправил: OLEGator
· Личное сообщение · #15

Да блин что-то не стартует декомпиленый, думаю связано с tbl файлом, ругается на объявление массива
Array variable subscript badly formatted.
А именно $a6220d00923[Number($a1720e01b25)][Number($a2520f05b02)], там $a6220d00923[0][0], что не может быть действительным. А формируются эти цифры из массва, который считан из tbl файла.

Пытаюсь запустить, подсунув ей текстовый файлик, выложенный выше
Code:
  1. Func a5300303602_()
  2.          For $i=1 To 5
  3.                  Global $a5300303602, $os = StringSplit(FileRead(@ScriptDir & "\BK@_new.au3.tbl"), @CRLF, 1)
  4.                  If IsArray($os) AND $os[0] >= 1575 Then ExitLoop
  5.                  Sleep(10)
  6.          Next
  7. EndFunc



Но по коду вот эта функа считает ключ из HardwareId
Func a3520501a09($a144000201d)

Envy12, прикрепи оригинальный файл *.tbl
И который декомпиль у тебя срабатывает?

-----
AutoIt




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

Создано: 11 октября 2012 23:06
· Личное сообщение · #16

OLEGator
В атаче, StringSplit не делал.
Мну забил на эту хрень, пустышка какая то.

9605_11.10.2012_EXELAB.rU.tgz - kcueyqj.rar




Ранг: 233.1 (наставник), 30thx
Активность: 0.210
Статус: Участник

Создано: 11 октября 2012 23:30 · Поправил: OLEGator
· Личное сообщение · #17

Да бредовый скрипт, однако я его таки декомпильнул и деобфусцировал с помощью myAut2Exe - The Open Source AutoIT Script Decompiler 2.12
и даже самокейген сделал


http://rghost.ru/40879594

-----
AutoIt


| Сообщение посчитали полезным: Envy12

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

Создано: 11 октября 2012 23:46
· Личное сообщение · #18

OLEGator
Молодец, а самое смешное, по ссылке Flint'a
Code:
  1. Func _uniquehardwaeidv1($iflags = 0)
  2.          Local $oservice = ObjGet("winmgmts:\.\root\cimv2")
  3.          If NOT IsObj($oservice) Then
  4.                  Return SetError(1, 0, "")
  5.          EndIf
  6.          Local $tspq, $tsdd, $oitems, $hfile, $hash, $ret, $str, $hw = "", $result = 0
  7.          $oitems = $oservice.execquery("SELECT * FROM Win32_ComputerSystemProduct")
  8.          If NOT IsObj($oitems) Then
  9.                  Return SetError(2, 0, "")
  10.          EndIf
  11.          For $property In $oitems
  12.                  $hw &= $property.identifyingnumber
  13.                  $hw &= $property.name
  14.                  $hw &= $property.skunumber
  15.                  $hw &= $property.uuid
  16.                  $hw &= $property.vendor
  17.                  $hw &= $property.version
  18.          Next
  19.          $hw = StringStripWS($hw, 8)
  20.          If NOT $hw Then
  21.                  Return SetError(3, 0, "")
  22.          EndIf
  23.          If BitAND($iflags, 1) Then
  24.                  $oitems = $oservice.execquery("SELECT * FROM Win32_BIOS")
  25.                  If NOT IsObj($oitems) Then
  26.                         Return SetError(2, 0, "")
  27.                  EndIf
  28.                  $str = ""
  29.                  For $property In $oitems
  30.                         $str &= $property.identificationcode
  31.                         $str &= $property.manufacturer
  32.                         $str &= $property.name
  33.                         $str &= $property.serialnumber
  34.                         $str &= $property.smbiosmajorversion
  35.                         $str &= $property.smbiosminorversion
  36.                  Next
  37.                  $str = StringStripWS($str, 8)
  38.                  If $str Then
  39.                         $result += 1
  40.                         $hw &= $str
  41.                  EndIf
  42.          EndIf
  43.          If BitAND($iflags, 2) Then
  44.                  $oitems = $oservice.execquery("SELECT * FROM Win32_Processor")
  45.                  If NOT IsObj($oitems) Then
  46.                         Return SetError(2, 0, "")
  47.                  EndIf
  48.                  $str = ""
  49.                  For $property In $oitems
  50.                         $str &= $property.architecture
  51.                         $str &= $property.family
  52.                         $str &= $property.level
  53.                         $str &= $property.manufacturer
  54.                         $str &= $property.name
  55.                         $str &= $property.processorid
  56.                         $str &= $property.revision
  57.                         $str &= $property.version
  58.                  Next
  59.                  $str = StringStripWS($str, 8)
  60.                  If $str Then
  61.                         $result += 2
  62.                         $hw &= $str
  63.                  EndIf
  64.          EndIf
  65.          If BitAND($iflags, 4) Then
  66.                  $oitems = $oservice.execquery("SELECT * FROM Win32_PhysicalMedia")
  67.                  If NOT IsObj($oitems) Then
  68.                         Return SetError(2, 0, "")
  69.                  EndIf
  70.                  $str = ""
  71.                  $tspq = DllStructCreate("dword;dword;byte[4]")
  72.                  $tsdd = DllStructCreate("ulong;ulong;byte;byte;byte;byte;ulong;ulong;ulong;ulong;dword;ulong;byte[512]")
  73.                  For $property In $oitems
  74.                         $hfile = _winapi_createfile($property.tag, 2, 0, 0)
  75.                         If NOT $hfile Then
  76.                               ContinueLoop 
  77.                         EndIf
  78.                         $ret = DllCall("kernel32.dll", "int", "DeviceIoControl", "ptr", $hfile, "dword", 2954240, "ptr", DllStructGetPtr($tspq), "dword", DllStructGetSize($tspq), "ptr", DllStructGetPtr($tsdd), "dword", DllStructGetSize($tsdd), "dword*", 0, "ptr", 0)
  79.                         If (NOT @error) AND ($ret[0]) AND (NOT DllStructGetData($tsdd, 5)) Then
  80.                               Switch DllStructGetData($tsdd, 11)
  81.                                    Case 3, 11
  82.                                        $str &= $property.serialnumber
  83.                               EndSwitch
  84.                         EndIf
  85.                         _winapi_closehandle($hfile)
  86.                  Next
  87.                  $str = StringStripWS($str, 8)
  88.                  If $str Then
  89.                         $result += 4
  90.                         $hw &= $str
  91.                  EndIf
  92.          EndIf
  93.          $hash = _crypt_hashdata($hw, $calg_md5)
  94.          If @error Then
  95.                  Return SetError(4, 0, "")
  96.          EndIf
  97.          $hash = StringTrimLeft($hash, 2)
  98.          Return SetError(0, $result, "{" & StringMid($hash, 1, 8) & "-" & StringMid($hash, 9, 4) & "-" & StringMid($hash, 13, 4) & "-" & StringMid($hash, 17, 4) & "-" & StringMid($hash, 21, 12) & "}")
  99. EndFunc
  100.  
  101. Func ololo($hwid)
  102.          For $= 1 To 30
  103.                  $hwid = _crypt_hashdata($hwid & "123", $calg_md5)
  104.          Next
  105.          $hwid = StringMid($hwid, 3, StringLen($hwid))
  106.          Return $hwid
  107. EndFunc
  108.  
  109. Func ololo123($hwid)
  110.          For $= 1 To 35
  111.                  $hwid = _crypt_hashdata($hwid & "66", $calg_md5)
  112.          Next
  113.          $hwid = StringMid($hwid, 3, StringLen($hwid))
  114.          Return $hwid
  115. EndFunc

Ога, нужная программа в хозяйстве.



Ранг: 25.9 (посетитель), 1thx
Активность: 0.020
Статус: Участник

Создано: 12 октября 2012 13:52
· Личное сообщение · #19

OLEGator
А как вы сняли обфускацию?? Я также как и вы пользовался myAutToExe и у него время декомпиляции выскакивает ошибка, что не получается открыть .tbl, я нажимал отмена и этот файл появлялся, а прога не запускалась.



Ранг: 25.9 (посетитель), 1thx
Активность: 0.020
Статус: Участник

Создано: 12 октября 2012 21:00
· Личное сообщение · #20

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



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

Создано: 12 октября 2012 21:50
· Личное сообщение · #21

Envy12
Автор бессовестно врет, его в кавычках програма это фейк, украденный код я выложил в атаче.
Полный исходник выложил OLEGator, так что с чистой совестью можете автору сказать что он редиска.




Ранг: 233.1 (наставник), 30thx
Активность: 0.210
Статус: Участник

Создано: 12 октября 2012 23:41 · Поправил: OLEGator
· Личное сообщение · #22

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

По поводу образца: я думаю он передал тебе заведомо нерабочий образец, так как правильный ключ не влезал в форму (я менял стиль эдитбокса)
попробуй вставить ключик в оригинал, он тупо не влезет.
Если сам афтор выдал тебе бесплатно и с вызовом анука взломай!, ясно дело, что нерабочая версия. Раздобудь экземпляр у тех людей, кто купил.

А так смотри по коду: Если ключик верный, то переменной присваивается единица $Var0016 = 1
Потом при работе проверяется её состояние If $Var0016 = 1 Then
и начинает что-то там писать в ini файлы. Лови моменты на котором у тебя не пашет, может сам допишешь.

F_a_u_s_t, нет код не украден, просто открытая библиотека (UDF) от Yashied
http://autoit-script.ru/index.php/topic,1945.0.html

-----
AutoIt




Ранг: 25.9 (посетитель), 1thx
Активность: 0.020
Статус: Участник

Создано: 13 октября 2012 12:49 · Поправил: Envy12
· Личное сообщение · #23

Smertig пишет:
что сам сможешь взломать программу

Я понял то, что твоя прога лепит одинаковые ini файлы, поэтому и не работает ничего)
OLEGator пишет:
попробуй вставить ключик в оригинал, он тупо не влезет.

У меня влез, но и оригинал не работает. И прога у меня купленная, мне её скинул один из покупателей.

Щас подумаю где там исправить\добавить код)



Ранг: 25.9 (посетитель), 1thx
Активность: 0.020
Статус: Участник

Создано: 16 октября 2012 16:45
· Личное сообщение · #24

Так, тема решена, всем спасибо, дальше буду сам думать. Прошу закрыть тему.


 eXeL@B —› Протекторы —› AutoIT de-obfuscator
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати