Македонски форум за електроника

Дигитална електроника => Микроконтролери => Topic started by: Gele_PP on 08.03.2012, Thursday, 16:30:56

Title: Конверзија од Хех во асемблер
Post by: Gele_PP on 08.03.2012, Thursday, 16:30:56
Како што вели насловот, потрербна ми е помош , како да конвертирам одреден пик програм од хех  во асемблер ?
Title: Одг: Конверзија од Хех во асемблер
Post by: GigaWatt on 08.03.2012, Thursday, 16:37:35
Мислам дека тоа може да го направиш со било кој сиулатор за PIC-ови, ти ги дава mnemonics-от на кодот ;). Или во било кој PIC debugger истото ти требало да ти го даде ;).
Title: Одг: Конверзија од Хех во асемблер
Post by: DX-er on 08.03.2012, Thursday, 16:39:20
Како што вели насловот, потрербна ми е помош , како да конвертирам одреден пик програм од хех  во асемблер ?
тоа не е можно за жал, имам барано такви програми но не може. Едино како што кажа Гига, некој симулатор да изгенерира asm код од hex
Title: Одг: Конверзија од Хех во асемблер
Post by: GigaWatt on 08.03.2012, Thursday, 16:44:48
тоа не е можно за жал, имам барано такви програми но не може. Едино како што кажа Гига, некој симулатор да изгенерира asm код од hex

Сигурно може со debugger, не може да не може ;). Само треба да изврши конверзија и анализа на кодот од обичен код во ASM mnemonics ;). Тоа не е комплицирано, само означува што значи секоја hex команда ;).
Title: Одг: Конверзија од Хех во асемблер
Post by: SKOLS_OLD on 08.03.2012, Thursday, 16:47:31
А зашто ти е потребен тој код?можеби ќе се најде таков проект,па прикажи што е тоа  ;D
Title: Одг: Конверзија од Хех во асемблер
Post by: Gele_PP on 08.03.2012, Thursday, 16:50:00
 Потребата може да се претпостави, потребно ми е на некои готови програми да извршам мали промени (за сега едукативен карактер ;) ), мегутоа хех кодот ми е потполно неразбирлив ,,  прифатлива ми е и било која друга опција
А она со симулаторите  не ми е баш јасно како , ако може збор два повеке би било одлично.
Да додадам дека пик програмирањето ми е прилично нова област на проучување, па сум малку изгубен ...
Title: Одг: Конверзија од Хех во асемблер
Post by: GigaWatt on 08.03.2012, Thursday, 16:52:21
Пробај со IDA Pro, освен Intel-ови процесори поддржува и многу видови на микроконтролери, не сум проверил, но би требало да поддржува и PIC-ови ;).
Title: Одг: Конверзија од Хех во асемблер
Post by: Gele_PP on 08.03.2012, Thursday, 16:57:55
Google  вели дека можи, ке пробам па ке кажам ...
Фала  :)
Title: Одг: Конверзија од Хех во асемблер
Post by: Devil on 08.03.2012, Thursday, 17:30:54
кога се дебагира со дебагер програмата не ти треба само hex фајл, потребни се и изворните кодови, затоа не е можно да се добие така кодот, кај пик микроконтролерите кога се создава hex Кодот при компајлирање најчесто се прави еден COFF фајл, е тој фајл се користи за нивно дебагирање :)
овај фајл се става во дебагерот а Hex Кодот во микроконтролерот, дебагерот може да ги спое овие два фајла и да го извршува кодото чекор по чекор, само со Hex фајл нема да може да се дебагира
Title: Одг: Конверзија од Хех во асемблер
Post by: Gele_PP on 08.03.2012, Thursday, 17:34:20
 :-[ значи испаднува дека и опен сорс програмите за пик не се така опен   :'(
Title: Одг: Конверзија од Хех во асемблер
Post by: GigaWatt on 08.03.2012, Thursday, 17:39:21
кога се дебагира со дебагер програмата не ти треба само hex фајл, потребни се и изворните кодови, затоа не е можно да се добие така кодот, кај пик микроконтролерите кога се создава hex Кодот при компајлирање најчесто се прави еден COFF фајл, е тој фајл се користи за нивно дебагирање :)

Не е точно ;). Не значи дека не можеш да дебагираш и само со ASM код ;). Многу потешко е, но не значи дека е неизводливо, само треба да имаш малку поголемо познавање од ASM јазикот на микропроцесорот/микроконтролерот ;).

:-[ значи испаднува дека и опен сорс програмите за пик не се така опен   :'(

Ако го имаш и source-от за програмата за PIC-от, да тогаш е многу полесна работата, но не значи дека не може да се изведе и само со .hex фајлот ;). Потешко, често и многу потешко, но не и неизводливо ;).
Title: Одг: Конверзија од Хех во асемблер
Post by: Devil on 08.03.2012, Thursday, 17:46:28
кога се дебагира со дебагер програмата не ти треба само hex фајл, потребни се и изворните кодови, затоа не е можно да се добие така кодот, кај пик микроконтролерите кога се создава hex Кодот при компајлирање најчесто се прави еден COFF фајл, е тој фајл се користи за нивно дебагирање :)

Не е точно ;). Не значи дека не можеш да дебагираш и само со ASM код ;). Многу потешко е, но не значи дека е неизводливо, само треба да имаш малку поголемо познавање од ASM јазикот на микропроцесорот/микроконтролерот ;).

Не е точно, јас нигде не спомнав дека со АСМ не може да се дебагира, јас спомнав дека со HEX не може да се дебагира, ако го имаш ASM Кодот многу едноставно се добиваат сите останати потребни фајлови за дебагирање
Title: Одг: Конверзија од Хех во асемблер
Post by: GigaWatt on 08.03.2012, Thursday, 18:02:29
Не е точно, јас нигде не спомнав дека со АСМ не може да се дебагира, јас спомнав дека со HEX не може да се дебагира, ако го имаш ASM Кодот многу едноставно се добиваат сите останати потребни фајлови за дебагирање

Па што е тогаш проблемот, од hex кодот се вади ASM кодот, не разбирам кој е проблемот, само debugger-от треба да го изанализира програмот, да јави каде има loops, jumps, исчитување на нешто, коментари да додаде (ако има нешто да додаде) и тоа е тоа ;).
Title: Одг: Конверзија од Хех во асемблер
Post by: Devil on 08.03.2012, Thursday, 18:12:40
дебагерот не може да конвертира од хекс во асемблер, можеби ќе најдеш некој конвертор за 16Ф84 ама не и за поновите пикови :)
постапката не е така едноставна за да се претвори назад кога нешто е веќе конвертирано, треба да имаш големи познавања од реверс инжинеринг :), плус доколку на било кој начин го добиеш асемблерот со конверзија тој е веќе преработена верзија која  многу тешко ќе ја разбериш што е што
Title: Одг: Конверзија од Хех во асемблер
Post by: GigaWatt on 08.03.2012, Thursday, 18:46:57
дебагерот не може да конвертира од хекс во асемблер, можеби ќе најдеш некој конвертор за 16Ф84 ама не и за поновите пикови :)
постапката не е така едноставна за да се претвори назад кога нешто е веќе конвертирано, треба да имаш големи познавања од реверс инжинеринг :), плус доколку на било кој начин го добиеш асемблерот со конверзија тој е веќе преработена верзија која  многу тешко ќе ја разбериш што е што

Hex-от е во принцип ASM фајл, само што е неразбирлив за нас во hex форма, треба да се преведат hex кодовите во ASM команди, само тоа треба да се направи, а бидејќи ASM командите за различни типови на микроконтроелри/микорпроцесори се разликуваат, потребен е debugger кој знае која ASM команда е врзана со кој hex код за конкретниот микропроцесор/микроконтролер, ништо повеќе од тоа. Тоа е работата на debugger-от, барем на оние кои се наменети за debugging на ASM ниво, како IDA или OllyDbg (може и source да им дадеш, но тоа не значи дека не може да се снајдат и со hex и binary).

Проблем може само да биде ако програмата има заштита или ако е компресирана. Само тоа може да биде проблем, инаку далеку е од тоа дека е неразбирливо ако нема заштита или компресија ставено на неа ;).

Во секој случај, да се разбереме, нема да ти го извади оригиналниот ASM код, тој го има само developer-от, но и овој ASM код е доволно добар за работа ;).
Title: Одг: Конверзија од Хех во асемблер
Post by: Gele_PP on 09.03.2012, Friday, 10:51:49
.... а бидејќи ASM командите за различни типови на микроконтроелри/микорпроцесори се разликуваат, потребен е debugger кој знае која ASM команда е врзана со кој hex код за конкретниот микропроцесор/.....

Е ова го увидов, пробав со дебагер Windasm кој е одличен за конверзија на виндовс програми, а со пиц прогтрам добивам само хиероглифи.  :-[
Title: Одг: Конверзија од Хех во асемблер
Post by: Devil on 09.03.2012, Friday, 11:34:42
а да ни дадеше ти линк од тоа проектот за кој сакаш да го модифицираш хексот да видиме за што се работи, ако има можност можеби ќе го најдеме сорсот
Title: Одг: Конверзија од Хех во асемблер
Post by: Gele_PP on 09.03.2012, Friday, 12:50:33
Не се работи за конкретен проект, туку за поголем опсег во проучувањето на пик чиповите. Ме интересира да видам повеке начини на решавање на исти проблематики. Онака едукативно  ;)
Title: Одг: Конверзија од Хех во асемблер
Post by: GigaWatt on 09.03.2012, Friday, 14:29:14
Види, од ASM кодот, нема многу да научиш, односно можно е мнооооогу да научиш, ама и многу време дур го научиш тоа. Ако си спремен да поминеш месеци анализирајќи ASM код, да, многу ќе научиш. Но ако мислиш дека како со било кој друг high level програмски јазик, само ќе го погледнеш кодот и ќе знаеш од прилика што каде е и со која команда што се генерира, не е баш така. ASM е прво ниво по binary, поточно второ, ако се смета и hex, ама тоа е неразбирливо за нас (чест на исклучоци, има луѓе кои разбираат и во hex и во binary што е напишано, но тие луѓе, буквално, на прсти со бројат на целава планета ;D).

Во принцип, анализа на код чисто со debugger е тешка работа. За менување на мали работи (вадење или додавање на логоа, менување на рестрикции, вадење на рестрикции, менување на јазик, итн.), да, може да го правиш тоа во ASM, и релативно лесно се прави (особено за менување на јазик на некоја програма, само се бараат string-ови и се заменуваат со други соодветни преведени верзии). Но баш анализа да правиш, тоа е малку потешко. По некое време работа во некој debugger, почнуваш побрзо и полесно да се снаоѓаш, да учиш shortcuts, да забележуваш заеднички работи за некои програмски јазици (поточно compiler-и), итн. Но на почетокот, тешко е.

Не ме сваќај погрешно, не пробувам да те деморализирам, само пробувам да те припремам за тоа што те чека. Реално гледано, многу работа. Но, затоа, ако успееш без поголеми проблеми да се снаоѓаш со ASM код, било кој друг програмски јазик ќе ти биде „боза“ ;).

Искрено, би ти препорачал да го изгледаш и да го изработиш прво овој туториал, па потоа да се префрлиш на микроконтролери и да го учиш IDA:

Code: [Select]
http://elektronika-mk.net/index.php?topic=1760.0
Title: Одг: Конверзија од Хех во асемблер
Post by: Gele_PP on 09.03.2012, Friday, 14:59:06
Свесен сум со сложеноста на асм кодот, и имам некое (мало) предзнаење од тоа поле. Посебно во кракување на софтвер. Знам дека работата со регистри и флагови е далеку покомплицирана од користење на готови функции во некој виш програмски јазик.
Ама ете, зошто да биде едноставно кога може се да се усложни  ;D ;D ;D
Сепак за правење на промени и немора да се знае да се програмира, доволно е да се научи да се чита кодот  ;)
Фала за линкот,
п.с => ( file is malicious ??? - сигурно е ок ? )
Title: Одг: Конверзија од Хех во асемблер
Post by: GigaWatt on 09.03.2012, Friday, 16:36:29
Ама ете, зошто да биде едноставно кога може се да се усложни  ;D ;D ;D

И јас го имам истиот проблем ;D.

Сепак за правење на промени и немора да се знае да се програмира, доволно е да се научи да се чита кодот ;)

Пааааа... добро е ако претходно имаш некое познавање од некој виш програмски јазик, но, да, во право си, не е неопходно да знаеш да пишуваш програми ;), баш напротив ASM кодот е многу збунивачки за оние кои знаат да програмираат само во виши програмски јазици ;).

п.с => ( file is malicious ??? - сигурно е ок ? )

НАПОМЕНА: Изгастете го вашиот антивирусен програм кога ќе го симнувате и одпакувате туториалот бидејќи определелни антивирусни програми можат да јават дека има тројани или некаков друг вид на malicious software во .rar архивата/архивите, што е далеку од вистината (false positive) ;). Јас лично ги имам користено скоро сите алатки од туториалот и нитуедна од алатките (ниту пак .exe вежбите) не се имаат покажано како некаков тип на malicious software ;).

Ако имаш нешто да прашаш во врска со туториалот, пиши во темата за туториалот ;).