Изучение уязвимостей электронных систем.
 
key programming immo tools emergency start device программаторы ключа заводилки Кодграббер штатных охранных систем, toyota, lexus, subaru.

Вернуться   Изучение уязвимостей электронных систем > Общение > Флейм

Флейм для свободного общения

Ответ
 
Опции темы
Старый 03.06.2008, 12:11   #1
oleg
продвинутый фрикер
 
Аватар для oleg
 
Регистрация: 22.01.2007
Сообщений: 2,080
Поблагодарил: 191
Поблагодарили 2,193 раз в 427 сообщениях
oleg скоро станет знаменитым(-ой)
По умолчанию Немного о программировании.

Здравствуй дорогой дружок, в этой рубрике я хочу тебе рассказать, про основы программирования и про то с чего начинается граббостроительство. Все понимают, что сердце кодграббера, это программный продукт, который нам с вами нужно научиться делать. Тему я буду раскладывать немного иронично и с приколами, но суть от этого не станет не серьезной! И так, первое что нужно понять это то, что такое микроконтроллер. Я решил не мучить юзеров и в принципе забить на подробности. Что бы себе легче представить суть происходящих процессов в контроллере, я решил заменить страшные слова типа регистр, бит и байт, на интуитивно понятные слова, которые бы не просто ассоциировались, а были похожи на них!!!

Контроллер состоит из регистров, что же это такое, регистр? Это некое хранилище на восемь вакантных мест и не больше! Как все сложно! А вот если представить, что регистр это стручок с горошинами и вы не поверите, их туда влезет ровно восемь штук! Кто сбился с мысли, то горошины это биты. Что же такое байт? Не буду парить юзера и скажу, это некая композиция в стручке, из горошин и пустых мест. Кто не вкуривает про что я, тот обречен. Продолжу для гениев, немного поговорим о байте, как я уже выше сказал это некая композиция из восьми бит, нет из горошин, так понятней. Давайте возьмем за правило, пустое вакантное место это ноль, а занятое место горошиной это единица. Сколько комбинаций может быть вообще, я про сочетание нулей и единиц, ой простите я про горошины и пустые места? Глупый юзер скажет, че тут думать! Восемь пустых мест и восемь заполненных горошинами, всего восемь комбинаций, а хрен тебе, скажу я! Предполагаю, что другой юзер скажет, ну может девять комбинаций, расположения горошин и пустых мест. В общем, заканчиваю всех парить и скажу правду, комбинаций аж целых 256, то при условии, если все восемь пустых мест считаются (вообще нужно запомнить цифру 255). Давайте теперь, кто не умер от смеха или от потока знаний перейдем к практике, на своем компьютере открываем калькулятор, вид переводим в инженерный! С лева вверху видим HEX DEC OCT BIN. Переводим зеленую галочку в BIN и нажимаем 10101111, это шесть горошин и два пустых места из восьми, теперь переводим зеленую галочку в DEC, в калькуляторе и видим 175. Можно даже побаловаться, помещать туда всякие комбинации из горошин и пустых мест и хоть тресни, максимальное десятичное число, которое можно получить, это будет 255, в бинарном виде (BIN ) это 11111111, типа восемь горошин в стручке.

Все это понятно, пустые вакантные места, да горошины, че тут думать, вроде просто, а нет! Вы заметили, что набирая на калькуляторе цифры, ой простите горошины если кому так понятней будет, они вылезают с право на лево, обычное явление, но нет! Лезет первым всегда старший (помним из детства)? Вот еще пример, в школе все на физру ходили, или нет? Ну как бы там ни было, нас физкультурник по росту расставлял перед пробежкой, то же самое с горошинами, давайте с этого момента не будем глумиться, а будем называть вещи своими именами! Есть старший бит и младший, старший бежит первым, а младший последним. Оно все конечно понятно, можно было так примитивно и не объяснять, но какой то козел взял и придумал так, в программировании старший бит, обозначен не первым, а седьмым, второй бит, обозначен шестым и так дальше путаница! Он может и козел (тот чел который это придумал), но человек умный и по этому нужно принять его точку зрения. У нас восемь бит и приходится их считать так, семь, шесть, пять, четыре….бла бла бла …...ноль. Не удобно конечно, говорить первой горошине вылезь из стручка седьмая горошина! В общем, это только вершина вершины айсберга в программировании.

Я думаю, нормальный юзер вынес отсюда следующее, в байте восемь бит, каждый бит может быть как нулем, так и единицей. В байте принято считать биты с лево направо, а адреса бит начинаются с 7 и до 0 и того восемь штук, всевозможные комбинации нулей и единиц дают нам всего 255 комбинаций, как не крути.
Давайте уже приближаться к программированию. Без регистра, где все лежит, без того, что там лежит и сколько, нам не чего не запрограммировать! И так поехали дальше. Как выглядит программа, вот пример.

metka
bsf PORTA,0
bcf PORTA,0
goto metka

Как мы видим, эти сложные английские слова, не такие уж сложные, если их условно разбить на столбики, вырисовывается только один вариант, ну типа столбика тут три. Первый столбик это метка, она собственно и метка, второй столбик это bsf bcf goto, это команды над регистрами, третий столбик регистры PORTA,0 PORTA,0 Metka. Вот где жопа начинается, я понимаю что связь с выше сказанным и (тут сразу ассемблерный код) этим не проглядывается, но это только кажется! PORTA это вывод у нашего микроконтроллера, он же регистр он же (стручок), она же нога, с которой сигнал выходит!!!!!!!!!!!!!! bsf -это положить горошину в стручок, bcf – это убрать горошину из стручка. Теперь вспомним про адресацию, PORTA,0 заметили, что после слова порт стоит запятая и адрес 0 ноль??? В общем юзер сейчас должен интуитивно догадаться, что программа работает так, установили бит в единицу на порту А по адресу ноль, затем установили бит в ноль на порту А по адресу ноль и прыгнули снова на верх программы, goto metka. Все повторяется циклически до бесконечности. Такими финтелями мы получили кое какие периоды на ноге контроллера, а точнее то +5 вольт, то ноль. Я не сильно подробно объяснил этот последний абзац, тем самым хочу спровоцировать юзеров на вопросы, понять где стало не понятно и т.д…

Ну ладно, что бы не оставить юзера в недопонимании, я решил все токи немного уделить внимания портам контроллера. Придется опаять завести эту шарманку, про горошины и стручки. В моем микроконтроллере три пачки портов PORTA, PORTB, PORTC. Соответственно это? Правильно три стручка, по восемь горошин в каждом, то есть в каждом порту по восемь выводов, значит 8+8+8 =24 ноги в моем контроллере, могут быть как выводами, так и входами. Для кодграббера самый то расклад. Теперь у юзера должен возникнуть вопрос, если мы можем класть горошины в нужный стручок (устанавливать нужный бит по нужному адресу в нужный регистр) тем самым получая нужное напряжение на порту ( либо +5 вольт либо ноль) как нам сделать, что бы порт работал на ввод? Нам же к нему приемник цеплять, нужно код сграбить! Тут все сложнее, я уже говорил, что контроллер эта железная банка, нафаршированная стручками, их там очень много, ну а если серьезней, то в микроконтроллере есть два типа регистров. Регистры бывают специального назначения и просто регистры, доступные для записи и чтения и не доступные для записи или чтения. Как это понимать? А так, кладем горошину в стручок и всегда можем придти посмотреть, где она лежит, а бывают такие стручки, куда положил и знаешь, а вот проверить нельзя, ну или типо того. Дак вот, один из регистров специального назначения, это регистр TRIS. Установкой нужного бита в нужный адрес, мы определяем, какая нога контроллера будет работать на ввод, а какая на вывод! Вот пример.

bcf TRISA,0
bcf TRISA,1
bcf TRISA,2
bsf TRISA,3
bsf TRISA,4
bsf TRISA,5
Опять эти английские слова, но мы уже с вами продвинутые граббостроители и должны четко знать, что я в этой процедуре делаю. Я дам только одну подсказку, когда мы устанавливаем бит в единицу, по нужному адресу в регистре TRIS, то этот порт становится вводом, а если бит устанавливаем в ноль, то этот порт становится выводом. И так получается PORTA,0 PORTA,1 PORTA,2 это вывода, а PORTA,3 PORTA,4 PORTA,5 это ввода. К PORTA,0 PORTA,1 PORTA,2 подключим передатчик и два светодиода, а к PORTA,3 PORTA,4 PORTA,5 подключим приемник, кнопку и еще чегонить на ввод!!!!!


Ладно продолжим, делать мне ща нечего, решил кое что еще довести до вас. Есть еще пару команд, которые бит ориентированы и направлены на работу с входными ногами контроллера и не только. Это команды btfsc и btfss, они тестируют состояния бита на порту и не только, то есть мы из верхнего расклада поняли, что наш контроллер может, как выводить данные, так и получать их! Эти команды тестируют биты в том месте которые укажет юзер. Тестируют особым образом, команда btfss это пропустить команду, если бит равен единице, команда которую мы пропускаем по условию это ветвление (переход) на метку, вот пример.

metka
btfss PORTA,3
goto metka
bsf PORTA,0

END


Ну что юзер, запутался окончательно? В трех строчках тупим! А как насчет того, если программа будет строчек так 500 минимум, это у меня под StarLine кодграббер написан так, если серьезней заниматься?. Ладно, как бы там ни было, поясню пройденный материал, первая строчка это метка, на нее мы будем прыгать по условию. Тестируем мы порт А по адресу 3 (это нога запрограммированная на ввод) если там нет фронта, а точнее бит на этой ноге не равен единице, то мы не можем перепрыгнуть команду goto metka и стало быть, выполняем ее. Так получается и скачем гоуту метка гоуту метка, пака на порту А по адресу 3 не придет фронт или попросту высокий уровень. Как только пришел высокий уровень, условие совпало и мы перепрыгнули через команду ветвления (дальнего перехода goto) и прыгнули на команду bsf PORTA,0. На этом порту установили бит в единицу, попросту зажгли светодиод, например.

Давайте все подытожим, мы изучили с вами три бит ориентированные команды, это bsf, bcf и btfss. Изучили два регистра TRIS и PORT. Дак вот что я скажу, этих команд около 70 штук и они еще сложнее. Регистров специального назначения тоже прилично. Поэтому задумайтесь, сможете ли вы заниматься программированием. Кроме того, что нужно понимать команды, нужно уметь ими пользоваться и логику строить!


уехал в клуб
oleg вне форума   Ответить с цитированием
Старый 04.06.2008, 14:35   #2
Zub
редкий гость
 
Аватар для Zub
 
Регистрация: 19.02.2007
Сообщений: 68
Поблагодарил: 0
Поблагодарили 1 раз в 1 сообщении
Zub стоит на развилке
По умолчанию

oleg, Здорова я для начала хочу под ченибудь одно замутить как я понел твой демо граб и под StarLine и под кейлог че щас боле актуально и какое железо посоветуешь использовать чтоб вышло по меньше и по практичней и на каком асмен это получше делать и где найти инфу про остальные 70 команд.
p.s
заранее благодарен с уважухой Zub
Zub вне форума   Ответить с цитированием
Старый 04.06.2008, 14:46   #3
oleg
продвинутый фрикер
 
Аватар для oleg
 
Регистрация: 22.01.2007
Сообщений: 2,080
Поблагодарил: 191
Поблагодарили 2,193 раз в 427 сообщениях
oleg скоро станет знаменитым(-ой)
По умолчанию

Цитата:
Сообщение от Zub Посмотреть сообщение
oleg, Здорова я для начала хочу под ченибудь одно замутить как я понел твой демо граб и под StarLine и под кейлог че щас боле актуально и какое железо посоветуешь использовать чтоб вышло по меньше и по практичней и на каком асмен это получше делать и где найти инфу про остальные 70 команд.
p.s
заранее благодарен с уважухой Zub

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


уехал в клуб
oleg вне форума   Ответить с цитированием
Старый 10.06.2008, 06:11   #4
sinobi2006
начинающий фрикер
 
Аватар для sinobi2006
 
Регистрация: 21.08.2006
Адрес: Екатеринбуржская область ;)
Сообщений: 517
Поблагодарил: 41
Поблагодарили 81 раз в 71 сообщениях
sinobi2006 стоит на развилке
По умолчанию

TO Zub: вот толковый ресурс по пикам все хвалят разжёванно много.
[Ссылки могут видеть только зарегистрированные пользователи. ]


Не надо мне 15 раз повторять,я с 9го понимаю!
----------------------------------------------------------------------------------------------
Если тебе пригодился меч один раз,носи его с собой всю жизнь.(Старая китайская мудрость)
sinobi2006 вне форума   Ответить с цитированием
Старый 11.06.2008, 20:24   #5
sinobi2006
начинающий фрикер
 
Аватар для sinobi2006
 
Регистрация: 21.08.2006
Адрес: Екатеринбуржская область ;)
Сообщений: 517
Поблагодарил: 41
Поблагодарили 81 раз в 71 сообщениях
sinobi2006 стоит на развилке
По умолчанию

блин а я на авээрки ориентировался Oleg ждем продолжения,хоть принцип понять.


Не надо мне 15 раз повторять,я с 9го понимаю!
----------------------------------------------------------------------------------------------
Если тебе пригодился меч один раз,носи его с собой всю жизнь.(Старая китайская мудрость)
sinobi2006 вне форума   Ответить с цитированием
Старый 29.07.2008, 06:01   #6
sinobi2006
начинающий фрикер
 
Аватар для sinobi2006
 
Регистрация: 21.08.2006
Адрес: Екатеринбуржская область ;)
Сообщений: 517
Поблагодарил: 41
Поблагодарили 81 раз в 71 сообщениях
sinobi2006 стоит на развилке
По умолчанию

Видимо тема умерла


Не надо мне 15 раз повторять,я с 9го понимаю!
----------------------------------------------------------------------------------------------
Если тебе пригодился меч один раз,носи его с собой всю жизнь.(Старая китайская мудрость)
sinobi2006 вне форума   Ответить с цитированием
Старый 29.07.2008, 06:31   #7
oleg
продвинутый фрикер
 
Аватар для oleg
 
Регистрация: 22.01.2007
Сообщений: 2,080
Поблагодарил: 191
Поблагодарили 2,193 раз в 427 сообщениях
oleg скоро станет знаменитым(-ой)
По умолчанию

Просто тяжело головой об стену биться, все ровно не кто не слышит. Думаю больше и не стоит, пака. Sinobi2006 у тебя есть какой ни будь самостоятельный результат в программировании, заморгай светодиодом от контроллера, преамбулу найди в эфире, дальше проще, не парься с чужими исходниками, нужно смысл понять программирования!!!!!!!


уехал в клуб
oleg вне форума   Ответить с цитированием
Старый 29.07.2008, 13:17   #8
Ahalam
начинающий фрикер
 
Аватар для Ahalam
 
Регистрация: 16.04.2007
Сообщений: 579
Поблагодарил: 15
Поблагодарили 37 раз в 27 сообщениях
Ahalam стоит на развилке
По умолчанию

остальные 70 команд находятся в даташите на контроллер а еще здесь: http://phreaker.us/forum/showthread.php?t=4029 и еще много чего здеся разжевано про процы, много программных примеров. не ленимся читаем и да пребудет с нами силаааааа!!!!! ))))))))))
я сам начинал с моргания светодиодом потом двумя...тремя потом бегущий огонек ну и в итоге граб)))
Ahalam вне форума   Ответить с цитированием
Старый 11.08.2008, 06:03   #9
sinobi2006
начинающий фрикер
 
Аватар для sinobi2006
 
Регистрация: 21.08.2006
Адрес: Екатеринбуржская область ;)
Сообщений: 517
Поблагодарил: 41
Поблагодарили 81 раз в 71 сообщениях
sinobi2006 стоит на развилке
По умолчанию

ДА наверно про грабы придётся позабыть и изучать сначала програмирвание.Вроде неплохой ресурсик нашёл-обучалку [Ссылки могут видеть только зарегистрированные пользователи. ]


Не надо мне 15 раз повторять,я с 9го понимаю!
----------------------------------------------------------------------------------------------
Если тебе пригодился меч один раз,носи его с собой всю жизнь.(Старая китайская мудрость)
sinobi2006 вне форума   Ответить с цитированием
Старый 11.08.2008, 06:29   #10
oleg
продвинутый фрикер
 
Аватар для oleg
 
Регистрация: 22.01.2007
Сообщений: 2,080
Поблагодарил: 191
Поблагодарили 2,193 раз в 427 сообщениях
oleg скоро станет знаменитым(-ой)
По умолчанию

Цитата:
Сообщение от sinobi2006 Посмотреть сообщение
ДА наверно про грабы придётся позабыть и изучать сначала програмирвание.Вроде неплохой ресурсик нашёл-обучалку [Ссылки могут видеть только зарегистрированные пользователи. ]

Ну молодец чего сказать давай учи программирование, как полностью разберешься с грабом, так будем алго изучать, я помогу. В принципе все уже знаю, пришлось правда замучить exchange, но оно того стоило)) он чувак занятой, форум настраивает, что бы у нас круто все было, поэтому мне можешь писать, я все могу расталкивать!!!


уехал в клуб
oleg вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
немного по банкоматам... npl Документация 8 10.10.2015 04:02
Всем добрый день,вопрос немного не по теме Пос терминал Kakdela Программирование микроконтроллеров 1 29.03.2015 20:20
Немного о ККМ danko Всё по теме электронного взлома 46 15.03.2014 16:47
Приват Банк Украина - немного о нем SocialWare Пластиковые карты 15 16.05.2013 13:32
немного юмора:) потапыч Флейм 27 11.02.2011 20:21


Текущее время: 00:59. Часовой пояс GMT +4.


Перевод: zCarot