Сейчас на форуме: hgdagon, asfa, bartolomeo (+4 невидимых)

 eXeL@B —› Программирование —› Анализатор кода
Посл.ответ Сообщение

Ранг: 36.1 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 04 сентября 2006 04:00
· Личное сообщение · #1

Есть желание написать что-то типа анализатора кода. Какие-то результаты есть, теперь думаю в каком направлении продолжать работу и будет ли это вообще кому-то нужно. Пока пытаюсь разобрать выражения, получается что-то типа такого (компилятор - delphi):
Было:
a:=((was.al+10) shr 1)-was.al;
a:=(was.al-((50-was.al xor 10) shr 1)+was.al) xor $ff;
Z:=(a shr 1) and (a shl 1);
Стало:
A=((([456BD8h+1Ch]+Ah) shr 1h)-[456BD8h+1Ch])
A=((([456BD8h+1Ch]-(((32h-[456BD8h+1Ch]) xor Ah) shr 1h))+[456BD8h+1Ch]) xor FFFFFFFFh)
B=((A shr 1h) and (A+A))
Еще вопрос: если ли какие либо алгоритмы по определению параметров функций (через стек или регистры передаются, без типов на уровне byte/word/dword)? Мысли есть, но вдруг я зациклился и есть другие варианты..



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

Создано: 04 сентября 2006 04:31
· Личное сообщение · #2

Идея неплохая. Если выражения уже разбирать научился, то я думаю следует приступить к языковым конструкциям(циклы условия и прочее). И про отступы не забывай
Так же есть довольно приличная разработка на эту тему: www.backerstreet.com/rec/rec.htm
Наверняка есть и другие подобные, я не искал.



Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 04 сентября 2006 05:28
· Личное сообщение · #3

Malice
Слушай, а зачем тебе это?

-----
My love is very cool girl.




Ранг: 36.1 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 04 сентября 2006 05:40
· Личное сообщение · #4

BUGOR пишет:
Так же есть довольно приличная разработка

Rec видел, но он под определенный компилятор заточен, поэтому там так лихо switch-и и циклы находятся, да и регистры остаются. Хотелось бы универсальности..

theCollision пишет:
Слушай, а зачем тебе это?

Хз, интересно очень, подсел можно сказать




Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 04 сентября 2006 06:56
· Личное сообщение · #5

на васме, кто-то выкладывал(не пмоню уже кто) "разборщик" if, while, switch %)

-----
Тут не могла быть ваша реклама




Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 04 сентября 2006 07:41
· Личное сообщение · #6

Malice
А почему бы не напривить движение в более нужное русло?
К примеру поиск ситуаций могущих привести в исходном коде к ошибке переполнения буфера.

Нужная штука, как для тех кто хакает, так и для тех кто пишет ПО связанной с работой по локальной\глобальной сети!

-----
My love is very cool girl.




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

Создано: 04 сентября 2006 10:18
· Личное сообщение · #7

Malice
Идея неплохая. Былобы хороше разбор, распознования алгоритма шифрования. Былобы полезно для моментов когда статический ключ шифрования.



Ранг: 163.7 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 11 сентября 2006 18:24
· Личное сообщение · #8

Malice пишет:
если ли какие либо алгоритмы по определению параметров функций (через стек или регистры передаются, без типов на уровне byte/word/dword)?


Какой тут может быть алгоритм... Смотришь в функе, что есть чтение регистра без его предварительной модификации - значит в нём параметр передан извне. Так же и со стековыми параметрами - чтение через esp\ebp.



Ранг: 36.1 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 12 сентября 2006 03:09
· Личное сообщение · #9

S_T_A_S_ пишет:
Какой тут может быть алгоритм... Смотришь в функе, что есть чтение регистра без его предварительной модификации - значит в нём параметр передан извне. Так же и со стековыми параметрами - чтение через esp\ebp.

Так и есть, в принципе. Только это надо рекурсивно делать, т.к. переданный в регистре параметр может быть использован в качестве параметра для другой функции внутри данной ( т.е. обращение к регистру в самой функции может и не быть). С возвращаемыми параметрами еще хуже, т.к. функция может просто портить регистры. Да еще компиляторы могут разорвать процедуру, куском-то оно легче



Ранг: 163.7 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 14 сентября 2006 18:35 · Поправил: S_T_A_S_
· Личное сообщение · #10

Malice пишет:
переданный в регистре параметр может быть использован в качестве параметра для другой функции внутри данной ( т.е. обращение к регистру в самой функции может и не быть)


Ты такое хоть раз видел? Теоретически такая ситуация возможна, но на практике компиляторы так не сделают (из-за технических сложностей для оптимизатора).

Malice пишет:
С возвращаемыми параметрами еще хуже, т.к. функция может просто портить регистры


Если регистр используется без инициализации после вызова функции - возможно, в нём возвращено значение. Однако регистры ebx/edi/esi/ebp не модифицируются функциями скомпилированными MSVC, так что необходим анализ вызываемой функции. Проще всего тупо заложиться на calling convention - значения возвращаются в eax и (возможно) edx.

Malice пишет:
Да еще компиляторы могут разорвать процедуру, куском-то оно легче


Анализатор должен смотреть на поток команд, а не просто читать байты подряд Если кусок функции перемещен, то на него будет JMP\Jcc.



Ранг: 36.1 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 15 сентября 2006 03:00 · Поправил: Malice
· Личное сообщение · #11

S_T_A_S_ пишет:
Ты такое хоть раз видел? Теоретически такая ситуация возможна, но на практике компиляторы так не сделают (из-за технических сложностей для оптимизатора).

вот пример на Delphi7:
function x1(x:dword):dword;
begin x1:=x+1; end;
function x2(x:dword):dword;
begin x2:=x1(x); end;
...
i:=x2(1);

Вот что получилось:
0045F7A8: 40 inc eax //x1
0045F7A9: C3 ret
0045F7AC: E8F7FFFFFF call 0045F7A8h //х2
0045F7B1: C3 ret

т.е. для функции х2 как раз такая ситуация..



Ранг: 163.7 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 16 сентября 2006 17:20
· Личное сообщение · #12

Мда, про оптимизатор дельфи много чего слышал, но такого еще не видел 2ю функцию вообще компилировать не надо, еще на стадии анализа AST видно, что вместо неё следует вызывать 1ю.

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



Ранг: 191.8 (ветеран), 46thx
Активность: 0.170
Статус: Участник

Создано: 19 сентября 2006 04:51
· Личное сообщение · #13

Гляньте - мож в помощь, сам ещё не юзал, заглянул тут на сайт
а там прога лежит - даже не ожидал
www.microapl.co.uk/download/Relogix86UserManual.pdf
www.microapl.co.uk/download/RelogixWhitePaper.pdf
и rlx86v1.4.9 в архиве запароленном, но password находится быстро.
www.microapl.co.uk/download/ForDirk25Aug06.zip



Ранг: 36.1 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 19 сентября 2006 07:05
· Личное сообщение · #14

Ratinsh пишет:
Гляньте - мож в помощь, сам ещё не юзал, заглянул тут на сайт

Да, спасибо, вещь интересная. Только она исходники парсит, но userManual почитаю..



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

Создано: 19 сентября 2006 09:37
· Личное сообщение · #15

Да дейсвительно интересно надо посмотреть... а пароль и впрям быстро находиться =) 10 секунд и готово



Ранг: 191.8 (ветеран), 46thx
Активность: 0.170
Статус: Участник

Создано: 20 февраля 2007 01:09
· Личное сообщение · #16

кста появилась следующая
www.microapl.co.uk/download/ForDirk25Jan07.zip




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 20 февраля 2007 06:24
· Личное сообщение · #17

Ratinsh пишет:
кста появилась следующая
www.microapl.co.uk/download/ForDirk25Jan07.zip


пароль на архив?

-----
[nice coder and reverser]




Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 20 февраля 2007 06:47
· Личное сообщение · #18

Hellspawn
Dirk1
гавариле же что быстра падбираеццо

-----
SaNX




Ранг: 122.2 (ветеран)
Активность: 0.040
Статус: Участник

Создано: 20 февраля 2007 08:14
· Личное сообщение · #19

елки-палки, а чем вы за 10 секунд то находите? что за прога?



Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 20 февраля 2007 11:30
· Личное сообщение · #20

egorovshura
йа юзаю visual zip password recovery. Падабралось ни за 10 секунд канешна, но за пару минут падабралось точна

-----
SaNX





Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 20 февраля 2007 16:02
· Личное сообщение · #21

egorovshura пишет:
елки-палки, а чем вы за 10 секунд то находите?


В старых реализациях зипа пароль ищется очень быстро.
Как пример: ELCOMSOFT Advanced ZIP Password Recovery.



Ранг: 191.8 (ветеран), 46thx
Активность: 0.170
Статус: Участник

Создано: 05 марта 2007 08:56
· Личное сообщение · #22

http_//www.microapl.co.uk/download/ForDirk21Feb07.zip



Ранг: 191.8 (ветеран), 46thx
Активность: 0.170
Статус: Участник

Создано: 27 марта 2007 18:22
· Личное сообщение · #23

http_//www.microapl.co.uk/download/ForDirk15March07.zip




Ранг: 467.7 (мудрец), 5thx
Активность: 0.270
Статус: Участник
Иной :)

Создано: 28 марта 2007 10:16
· Личное сообщение · #24

Тогда уж проще так
хуттп://www.microapl.co.uk/download/


-----
Computer Security Laboratory




Ранг: 5.5 (гость)
Активность: 0=0
Статус: Участник

Создано: 10 апреля 2007 19:21
· Личное сообщение · #25

что-то ни одна ссылка не работает
в хуттп://www.microapl.co.uk/download/ тоже ничего похожего нет


очень хочется попробовать программу, может не трудно будет кто уже скачал ее куда-нибудь выложить?



Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 10 апреля 2007 20:11
· Личное сообщение · #26

driver73, не гони, все ссылки работают, не понятно как работает сама программа



Ранг: 5.5 (гость)
Активность: 0=0
Статус: Участник

Создано: 11 апреля 2007 08:31
· Личное сообщение · #27

Ну как же они работают, если ссылки
hxxp://www.microapl.co.uk/download/ForDirk25Jan07.zip
hxxp://www.microapl.co.uk/download/ForDirk21Feb07.zip
hxxp://www.microapl.co.uk/download/ForDirk15March07.zip
дают "Page not found"
а в хуттп://www.microapl.co.uk/download/ лежит только это:
Parent directory
Demo68.html 3 Oct 06 08:42 4.2Kb
Demo68Kto86.html 3 Oct 06 08:42 3.9Kb
Demo86.html 3 Oct 06 08:42 4.5Kb
MicroAPLmap.pdf 3 Oct 06 08:42 355.0Kb
Mimic68.pdf 3 Oct 06 08:42 115.5Kb
Mimic68mc.pdf 3 Oct 06 08:42 93.2Kb
Relogix68KUserManual.pdf 27 Nov 06 14:00 461.7Kb
Relogix86UserManual.pdf 27 Nov 06 14:01 405.1Kb
RelogixWhitePaper.pdf 3 Oct 06 08:43 253.8Kb
aplx_linux_pe_11.tgz 20 Feb 07 14:52 9.5Mb
aplx_mac_2_0_9_updater.hqx 1 Sep 04 11:12 1.4Mb
aplx_mac_3_1_1_updater.hqx 3 Oct 06 08:45 1.9Mb
aplx_mac_demo_30.hqx 3 Oct 06 08:48 12.1Mb
aplx_mac_demo_35.dmg 12 Mar 07 17:42 13.5Mb
aplx_support_20.zip 3 Oct 06 08:48 1.7Mb
aplx_support_30.zip 3 Oct 06 08:48 1.9Mb
aplx_update_2_0_9.exe 30 Jul 04 14:11 1.3Mb
aplx_update_3_2_1.exe 26 Feb 07 16:06 1.5Mb
aplxlinux.gz 3 Oct 06 08:51 1.7Mb
pa68kto86.pdf 3 Oct 06 08:51 319.8Kb
pa68ktoppc.pdf 3 Oct 06 08:51 282.1Kb
pa86demo_win.zip 3 Oct 06 08:51 1.3Mb
pa86toppc.pdf 3 Oct 06 08:51 229.8Kb
pademo68.zip 3 Oct 06 08:52 1.7Mb
pademo68kto86.zip 3 Oct 06 08:52 1.8Mb
setup_aplx_win_demo.exe 16 Feb 07 17:23 13.5Mb

или тут хитрость какая есть?




Ранг: 467.7 (мудрец), 5thx
Активность: 0.270
Статус: Участник
Иной :)

Создано: 11 апреля 2007 10:05
· Личное сообщение · #28

driver73
Ну значит еще не выложили или уже просекли и переложили в другу папку.

-----
Computer Security Laboratory




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

Создано: 11 апреля 2007 18:32 · Поправил: bash
· Личное сообщение · #29

_




Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 11 апреля 2007 18:56 · Поправил: mak
· Личное сообщение · #30

theCollision пишет:
Malice
А почему бы не напривить движение в более нужное русло?
К примеру поиск ситуаций могущих привести в исходном коде к ошибке переполнения буфера.

Нужная штука, как для тех кто хакает, так и для тех кто пишет ПО связанной с работой по локальной\глобальной сети!


Ну да было бы супер ...или хотябы поддержка плагинов ...а там уже может что и будет ......а ты вооюще видел такую прогу в своем роде ...или таких нет вообще ? я тоже думал написать ...но как то времени не было ...но вот его больше стало ..инфу нарыть о всех методах переполнения ..и в путь ...но пример был бы кстати

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube



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


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