ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Задания/Квесты/CTF/Конкурсы (https://forum.antichat.xyz/forumdisplay.php?f=112)
-   -   CTF. Задачка для разминки мозгов (от 5h3ll) : решение (https://forum.antichat.xyz/showthread.php?t=1624199)

MLNK 25.07.2018 16:41

Привет!

Не приходилось до этого пользоватся disassemble и вот появился повод - тема от 5h3ll.
В процессе пришлось перечитать кучу форумов и разбора реальных примеров, но попробую изложить в кратце.
Значить так:
Фёрст - скачиваем скрипт и сразу пробуем Antichat, Antichat, Antichat, ybedoc, yBedoC, YbEDOc, Antichat.net, Antichatnet и так далее...
Ноу лак, ноу кукумбер.
Секонд - запускаем

Код:

strings Antichat-Simple-CTF
и смортим, нет ли чего интересного:

Код:


Код:

/lib64/ld-linux-x86-64.so.2
libc.so.6
puts
__stack_chk_fail
printf
strlen
__cxa_finalize
__libc_start_main
GLIBC_2.4
GLIBC_2.2.5
_ITM_deregisterTMCloneTable
__gmon_start__
_ITM_registerTMCloneTable
u/UH
=&
=b
Codef
[]A\A]A^A_
%s -
;*3$"
GCC: (GNU) 8.1.0
GCC: (GNU) 8.1.1 20180531
init.c
crtstuff.c
deregister_tm_clones
__do_global_dtors_aux
completed.7340
__do_global_dtors_aux_fini_array_entry
frame_dummy
__frame_dummy_init_array_entry
codebytestctf.c
__FRAME_END__
__init_array_end
_DYNAMIC
__init_array_start
__GNU_EH_FRAME_HDR
_GLOBAL_OFFSET_TABLE_
__libc_csu_fini
_ITM_deregisterTMCloneTable
puts@@GLIBC_2.2.5
_edata
strlen@@GLIBC_2.2.5
__stack_chk_fail@@GLIBC_2.4
printf@@GLIBC_2.2.5
__libc_start_main@@GLIBC_2.2.5
__data_start
__gmon_start__
__dso_handle
_IO_stdin_used
__libc_csu_init
check_pw
__bss_start
main
__TMC_END__
_ITM_registerTMCloneTable
__cxa_finalize@@GLIBC_2.2.5
.symtab
.strtab
.shstrtab
.interp
.note.ABI-tag
.note.gnu.build-id
.gnu.hash
.dynsym
.dynstr
.gnu.version
.gnu.version_r
.rela.dyn
.rela.plt
.init
.text
.fini
.rodata
.eh_frame_hdr
.eh_frame
.init_array
.fini_array
.dynamic
.got
.got.plt
.data
.bss
.comment

Некоторые из этих стрингов попробовал ввести.
Стил ноу цуцумбер.

Далее - командой

Код:

objdump -D ./CodeBy-Simple-CTF > out.asm
пишем дамп в файл out.asm.
Так как нам извесны некоторые из сообщений ("Попробуй еще раз", "Необходимо ввести ключ" и "Молодец..."), то можно ныйти то место, где они прописанны.
Чтоб найти букву П, открываем Convert hexadecimal to text - Converters и пишем П.
Получаем d0 9f.
Н > d0 9d, М > d0 9c.
Открываем out.asm и делаем поиск по этим значениям:

https://forum.antichat.xyz/attachmen...84dd778246.png

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

https://forum.antichat.xyz/attachmen...b9c532f77a.png

Но так как "CodeBy" во всех вариантах уже опробован, тут видится некая зеленая подстава.
Дальше под присвоением "CodeBy" видны 6 рядов где появляются значения 2,3,2,3,5,1.
После подсказки от5h3ll о том, что там есть сдвиг по алфавиту, я по таблице ASCII нашел соответствующие буквы.

https://forum.antichat.xyz/attachmen...5b57b5abe2.png


Код подошел, но я так и не смог увидеть, где именно происходит замена букв.
В блоке виден цикл и какие-то сравнения, не особо понятные.
После, когда5h3ll показал код программы, стало ясно, что в подается массив из этих 6 цифр (2,3,2,3,5,1), пароль введенный юзером и "CodeBy",
Там делается loop на 6 циклов, где каждая буква из "CodeBy" увеличивается на соответствующую величину из массива и сравнивается с буквой из введенного юзером пароля "ErfhGz".

Тоесть 6 проверок.

Если все проверки верны, то ОК.

В целом disassemble показался интересным, хотя понятно, что много не понятно.
Будем изучать.
На этом пока все.
Всем спасибо, все свободны ))

MLNK 25.07.2018 17:41

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

busuzima 20.03.2019 20:28

А вот тут мой мозг закипел и расплавился... Подскажите, с чего начать реверс, пожалуйста!

MLNK 22.03.2019 01:16

Цитата:


busuzima сказал(а):

А вот тут мой мозг закипел и расплавился... Подскажите, с чего начать реверс, пожалуйста!


вся статья это решение задачи

busuzima 22.03.2019 15:18

Цитата:


5h3ll сказал(а):

вся статья это решение задачи


Я имел в виду с чего начать изучение реверса, то бишь реверс-инжиниринга.

MLNK 23.03.2019 18:58

Цитата:


busuzima сказал(а):

Я имел в виду с чего начать изучение реверса, то бишь реверс-инжиниринга.


ну я бы посоветовал начать с этой книги и сосредоточится на х86 архетектуре.
потом только практика практика и ещё раз практика


Время: 02:09