OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 28.03.2024, 11:01

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 46 ]  Přejít na stránku Předchozí  1, 2, 3, 4  Další
Autor Zpráva
PříspěvekNapsal: 06.04.2020, 18:48 
Offline
Kecálek

Registrován: 14.09.2018, 09:10
Příspěvky: 179
Bydliště: Bardejov
Has thanked: 12 times
Been thanked: 6 times
Vidím, že sa tu rozbehla poriadna konverzácia na temu programovania

No zaujímalo by ma ešte ako s tým disassemblovaním, či to náhodou niekto robil a ak áno tak ako (V akom programe a aký systém požíva pri disassemblovaní) ...?

_________________
Didaktik M/PMI 80/MAŤO


Nahoru
 Profil  
 
PříspěvekNapsal: 06.04.2020, 19:36 
Offline
Profík

Registrován: 15.01.2014, 20:08
Příspěvky: 782
Bydliště: Šlapanice
Has thanked: 129 times
Been thanked: 97 times
Disassemblování je řádově složitější než to cele napsat od začátku znovu nebo rovnou napsat emulátor (vůbec by mé nepřevalilo, kdyby dodnes někde běžel kód napsaný původně pro IBM 1401 pod několika vrstvami emulace).

Pokut budeš zběhlý v programování v asembleru tak se dá uvažovat o tom se pustit do disassemblování. Něco málo jsem už v ASM 8080A napsal, ale na disassemblování velkých věci si netroufám, ono kolikrát pochopi co tam autor zamýšlel je na dost dlouhé večery, obzvlášť pokut ti daná technika není známa. Například skok do prostřed instrukce tj. při přímém průchodu se provede instrukce, která nic neovlivní, ale při skoku do instrukce se provede instrukce která má vliv na chod programu aneb data instrukce do které se skáče je ona požadovaná instrukce… Nebo se v kódu prostě vyskytnou data, z pravidla to bude hned za instrukci skoku … zrovna toto je použito v MIKROBASICu u SAPI-1 kdy jeden parametr je co se hledá a druhy je o kolik skočit při splnění/nesplnění podmínky…

Jinak k sisassemblování jsou k dispozici nástroje od nejjednodušších programu až po celá studia.

_________________
Ne všichni jsme měli z češtiny za jedna, aneb jsem dyslektik a dysgrafik.

http://www.sapi.cz/


Nahoru
 Profil  
 
PříspěvekNapsal: 06.04.2020, 21:20 
Offline
Pan Generální
Uživatelský avatar

Registrován: 23.03.2014, 20:13
Příspěvky: 2773
Has thanked: 224 times
Been thanked: 601 times
No, dá se to dělat třeba s tužkou na papíře, nebo pomocí interaktivního disassembleru. Ve všech případech jsou k tomu potřeba velmi hluboké znalosti, obrovská trpělivost a moře času ;-)

Říká se, že bankovní programy napsané před padesáti a více lety v COBOLu dodnes běží, jenom v emulátorech tehdejších sálových strojů na dnešních mainframech od IBM. A americké jaderné elektrárny stále řídí mnoho PDP-11 s původním softwarem, také nahrazených emulátory. Před pár lety dokonce tamní ministerstvo energetiky usilovně shánělo programátory ovládající assembler PDP-11, s tím že práci budou mít zaručenou nejméně do roku 2025.

_________________
Plesnivý sýr z Tesca, zatuchlé kuřecí řízky z Albertu, oslizlé hovězí a myší trus z Lidlu.
Nákup potravinářské inspekce v ČR, říjen 2023.


Nahoru
 Profil  
 
PříspěvekNapsal: 06.04.2020, 22:05 
Offline
Profík

Registrován: 15.01.2014, 20:08
Příspěvky: 782
Bydliště: Šlapanice
Has thanked: 129 times
Been thanked: 97 times
Podrobnosti jsi, nepamatuji ale na loňskem BYTEFESTU byla diskuze na téma migrace systému aneb dané železo dosloužilo. Jenže počítač se nemohl vypnout, protože by už nikdo ty programy nespustil. Takže se vedle postavilo nové železo s uplně jinými CPU, údajně jen na režii emulace starého železa padlo několik stovek CPU. Na víkend se naplánovala „odstávka“ systému. No systém na starém železe se „pauznul“ a vykopíroval se ven celí obsah starého železa tj. včetně vyrovnáních pamětí, obsahu registru CPU, … a cele se to nakopírovalo do emulátoru no novém železe. Programy prostě pokračovali jako by se nechumelilo. Když se jen tak ze zvědavosti koukli, zda tem neběží už emulace tak zjistili že běží, no po čtvrtém vnoření to vzdali. Kolik těch emulaci tam bylo netušili.

Jinak IBM 360 bylo navrženo tak aby bylo schopno spustit programy z IBM 1401 aneb na 32 bitové mašině se „emuloval“ 6 bitový stroj. Aneb IBM měla nový počítač ale neměla k němu programy a protože IBM 1401 byl v té době nejrozšířenější tak navrhli IBM 360 tak aby uměla zpracovat programy z IBM 1401.

_________________
Ne všichni jsme měli z češtiny za jedna, aneb jsem dyslektik a dysgrafik.

http://www.sapi.cz/


Nahoru
 Profil  
 
PříspěvekNapsal: 07.04.2020, 01:24 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18.05.2013, 14:56
Příspěvky: 2331
Has thanked: 303 times
Been thanked: 637 times
MrWifiHifi píše:
No zaujímalo by ma ešte ako s tým disassemblovaním, či to náhodou niekto robil a ak áno tak ako (V akom programe a aký systém požíva pri disassemblovaní) ...?
Ano, dělal.

Je to pracné, protože musíš pochopit nejenom, co přesně to dělá, ale někdy i co tím autor zamýšlel a jaké to má souvislosti s ostatním kódem...

Dá se použít leccos. Malé kousky kódu, řádově desítky až stovky bytů se dají klidně i přepsat ručně z Devastu. Řádově malé jednotky kB už je lépe prohnat alespoň nějakým konvertorem, který část práce usnadní. Stejně je nutno ručně rozhodnout, co je kód, co data, nějak tomu udělat návěští, okomentovat, upravit do zkompilovatelné podoby a porovnat zkompilovaný výsledek s originál binárkou, jestli v tom nejsou chyby atd...

Spousta emulátorů má disassembler / debuger zabudovaný. V podstatě to samé, jako Devast na ZX Spectru, ale nepřekáží v RAM emulovaného počítače.

Ad DevastAce - ke stažení https://www.worldofspectrum.org/infosee ... id=0025172 a manuál v PDF https://softhouse.speccy.cz/dokumenty.htm

K disassemblování jsem používal např. utilitu dz80 (http://www.inkland.org.uk/dz80/) a pár dalších, které jsem si napsal v C, PHP a pod... co mi usnadňovaly konverzi binárních dat do zkompilovatelné podoby.

Zkoušel jsem zkoumat leccos a dost se toho ukázalo být nad mé síly. Zvlášť větší programy cca nad 2 až 4kB.

_________________
https://cygnus.speccy.cz ZX Spectrum 128k, Betadisk, DivIDE, ESXDOS


Nahoru
 Profil  
 
PříspěvekNapsal: 07.04.2020, 09:07 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 24.05.2018, 22:32
Příspěvky: 1972
Bydliště: Most, Praha
Has thanked: 863 times
Been thanked: 697 times
Disassemblování nejvíc usnadní globální komentáře - když se odhalí význam nějaké funkce nebo proměnné, připíše se komentář a ten se objeví u všech referencí na tuto funkci. Kdysi jsem si musel takový disassembler napsat (GenMac v CP/M - a koukám že tu dokonce mám ještě i zdroják), protože jsem takovou funkci nikde neobjevil, hodně mi to pomáhalo v disassemblaci ... možná už se doba změnila a už to někdo umožňuje? Umožňovalo to i automatické trasování, kdy to prošlo program a detekovalo co jsou instrukce a co data. Už jsem i uvažoval zda by se nehodilo něco takového napsat znovu, na PC by to dnes už byla docela sranda, ale asi se to dnes už nevyplatí.

takhle vypadal příklad výstupu z GenMac:
Kód:
d101:  b7                      or      a
d102:  c0                      ret     nz
d103:  c3 09 de                jp      CONIN          ; znak z konzoly
 ......................................................
d106:  cd fb d0        lab314:                        ; vstup znaku s vystupem
                               call    lab304
d109:  cd 14 d1                call    lab305         ; test ridiciho znaku
d10c:  d8                      ret     c
d10d:  f5                      push    af
d10e:  4f                      ld      c,a
d10f:  cd 90 d1                call    BDOS02         ; vystup znaku na konzolu

_________________
i++ (INC) increment
i-- (DEC) decrement
i@@ (EXC) excrement


Nahoru
 Profil  
 
PříspěvekNapsal: 07.04.2020, 09:30 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 08.07.2013, 00:28
Příspěvky: 1554
Has thanked: 485 times
Been thanked: 634 times
faraon píše:
Říká se, že bankovní programy napsané před padesáti a více lety v COBOLu dodnes běží, jenom v emulátorech tehdejších sálových strojů na dnešních mainframech od IBM.

Je to tak, Why Covid-19 has resulted in New Jersey desperately needing COBOL programmers. Ve zkratce, byl to problém nejen během problému s přechodem na rok 2000, ale je to problém i teď, když se každý den rodí nové zástupy nezaměstnaných, kteří chtějí svoje prachy (za jediný týden to bylo +1600% !). A desítky let staré systémy na Cobolu nezvládají nápor - systémy se zkrátka zpomněly v čase a že by bylo dobré je upgradovat se zjišťuje až teď, když je průser na světě :D

Jak zde padlo, platí i pro bankovnictví :like:

_________________
より良い競争相手からソフトウェアを購入する (。◕‿‿◕。)
Ďábel se skrývá v detailu (staré technické rčení)


Nahoru
 Profil  
 
PříspěvekNapsal: 07.04.2020, 09:31 
Offline
Pan Generální

Registrován: 07.05.2014, 01:21
Příspěvky: 2569
Bydliště: Praha
Has thanked: 502 times
Been thanked: 604 times
Možná trochu ot, ale když už je řeč o disassemblování. Nezkoušel někdo Ghidru? Když už nám NSA hodila nějaké ty drobky ze stolu :)
https://ghidra-sre.org/
https://www.idnes.cz/technet/software/ghidra-nsa-opensource-tajna-sluzba-nsa.A190306_120320_software_pka
Nějak moc jsem si s tím zatím nehrál, jen jsem zkoušel, že to něco dělá... Nabídka procesorů je docela široká...
Příloha:
ghidra_cpu.jpg
ghidra_cpu.jpg [ 38.13 KiB | Zobrazeno 7803 krát ]

_________________
ZX80, ZX81, ZX Spectrum, ZX Spectrum +2, Didaktik M, PMD 85-1,2A,3, Olivetti Prodest PC 128, Acorn BBC Micro, PC-XT, Amiga 500


Nahoru
 Profil  
 
PříspěvekNapsal: 07.04.2020, 10:15 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
Panda38 píše:
Disassemblování nejvíc usnadní globální komentáře - když se odhalí význam nějaké funkce nebo proměnné, připíše se komentář a ten se objeví u všech referencí na tuto funkci. Kdysi jsem si musel takový disassembler napsat (GenMac v CP/M - a koukám že tu dokonce mám ještě i zdroják), protože jsem takovou funkci nikde neobjevil, hodně mi to pomáhalo v disassemblaci ... možná už se doba změnila a už to někdo umožňuje? Umožňovalo to i automatické trasování, kdy to prošlo program a detekovalo co jsou instrukce a co data. Už jsem i uvažoval zda by se nehodilo něco takového napsat znovu, na PC by to dnes už byla docela sranda, ale asi se to dnes už nevyplatí.
Vyplati, a taky disasebler so vsetkymi tymito vlastnostami na PeCedle uz dlhocizne roky existuje - a pisal o nom faraon vyssie.
Je to IDA - Interaktivny DisAssembler. Da sa stiahnut aj free verzia 7.0 ktora nepodporuje az tak vela procesorov (zial ani Z80 a 8080). Ale na nete su rozne hacknute verzie aj s podporou Z80 a 8080 (kto by mal zaujem, mozem naviest).


Nahoru
 Profil  
 
PříspěvekNapsal: 07.04.2020, 11:01 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18.05.2013, 14:56
Příspěvky: 2331
Has thanked: 303 times
Been thanked: 637 times
Panda38 píše:
Disassemblování nejvíc usnadní globální komentáře - když se odhalí význam nějaké funkce nebo proměnné, připíše se komentář a ten se objeví u všech referencí na tuto funkci.
Možná. Já používám prostý textový editor (Kate, KWrite, někdy Notepad++) a když to má význam, tak si stručně komentuju všechny výskyty návěští, ale ne nutně všude stejně, protože na různých místech se může význam lišit z pohledu té části kódu. Někde komentář netřeba, jinde naopak nutno vyzvětlit souvislosti.

Na druhou stranu, po mnoha letech jsem se trochu vrátil ke zkoumání Busyho Tape Manageru, ke kterému mám od něj zdroják, ale komentářů je tam tak 1/2 řádku na 100 řádků kódu a to ještě kdo ví jestli tak moc. Na mnoha místech Busy návěštími šetřil (málo místa v RAM společně s kompilerem?), takže se tam vyskutují konstrukce jako návěští+3, nebo návěští-1, když chtěl adresovat instrukci za, nebo před ním a podobné věci... Návěští jsou velmi krátká, tj. často nejsou na první pohled napovídající, takže i se zdrojovým kódem to nemusí být jednoduché. Takže opět zkoumám, komentuju, přejmenovávám... a ani se zdrojákem to není jednoduché. Natož přímo z binárky.

Líbilo by se mi, kdybych mohl TAPky do/z PC převádět pomocí dobrého kopírovacího programu na ZXS, který je umí poslat/přijmout přes RS232, protože s horšími nahrávkami z kazet jsem měl vždy mnohem větší potíže, když jsem je zkoušel číst jakkoli jinak, než ZX Spectrem samotným. Jenže neumím prostě upravit cizí program, aniž bych mu opravdu rozuměl a byl si jistý, že něco nevědomky fatálně nepokazím. A takové to přilepení kousku kódu, který nezapadá do celku je mi taky proti srsti.

_________________
https://cygnus.speccy.cz ZX Spectrum 128k, Betadisk, DivIDE, ESXDOS


Nahoru
 Profil  
 
PříspěvekNapsal: 07.04.2020, 17:18 
Offline
Pan Generální
Uživatelský avatar

Registrován: 23.03.2014, 20:13
Příspěvky: 2773
Has thanked: 224 times
Been thanked: 601 times
tomascz píše:
Jak zde padlo, platí i pro bankovnictví :like:
No ale tohle mají blbě, a hned dvakrát, takže to není jen překlep:
1883: Ada Lovelace creates the first computer programming language, an algorithm for an early mechanical computer called the Analytical Engine.
Tou dobou už Ada byla jednatřicet let po smrti!
A hned pod tím mají sice FORTRAN, LISP a COBOL, ale ALGOL tam vůbec nezmínili.
Jestli i zbytek toho článku je v podobném duchu... ;-)

Před pár lety opravoval M$ nějakou chybu myslím v editoru vzorců pro Office, a protože ten kód někde koupili a nemají od něj zdrojáky, tak to museli provést patchem přímo do kódu. Tam si s disassemblingem někdo musel kvalitně vyhrát. Možná si najali nějakého crackera nebo tvůrce virů, ti na to mají skill.

_________________
Plesnivý sýr z Tesca, zatuchlé kuřecí řízky z Albertu, oslizlé hovězí a myší trus z Lidlu.
Nákup potravinářské inspekce v ČR, říjen 2023.


Nahoru
 Profil  
 
PříspěvekNapsal: 07.04.2020, 18:07 
Online
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3766
Has thanked: 269 times
Been thanked: 452 times
Aby Microsoft kupoval do jedné ze svých komerčně nejvýznamnějších aplikací něco bez zdrojáků je asi tak uvěřitelné jako že Steve Ballmer si doma po večerech kompiluje linuxí kernel nebo že Huawei neposkytuje data uživatelů čínské vládě...


Nahoru
 Profil  
 
PříspěvekNapsal: 07.04.2020, 18:52 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 08.07.2013, 00:28
Příspěvky: 1554
Has thanked: 485 times
Been thanked: 634 times
Já začínám Faraonovi věřit ohledně jeho znalostí IT - zatím se nemýlil :like:

A zřejmě se nemýlí ani teď, Microsoft Appears to Have Lost the Source Code of an Office Component.
Citace:
(O bezpečnostní chybě v editoru rovnic.) While most security experts looked at the Embedi 20-page report for details on the bug, one particular company looked at the way Microsoft patched the bug in Office. (...) Experts — who run a platform for instantly distributing, applying, and removing microscopic binary patches — noticed that the patched EQNEDT32.EXE file was almost identical to the old one. (...) The only way the new EQNEDT32.EXE stayed so similar to its previous version was if Microsoft engineers manually edited the binary itself. (...) A company like Microsoft that has solid and complex software development and security practices in place would never deem manually binary editing as acceptable. The only way this happened is if Microsoft somehow lost the source code of a long forgotten Office component. (...) It seems that the component was developed by Design Science Inc. However, later the respective rights were purchased by Microsoft.

A zřejmě tedy bez zdrojáků, protože nechce se mi věřit, že by v M$ měli až takovej binec! :-)

_________________
より良い競争相手からソフトウェアを購入する (。◕‿‿◕。)
Ďábel se skrývá v detailu (staré technické rčení)


Nahoru
 Profil  
 
PříspěvekNapsal: 07.04.2020, 19:36 
Online
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3766
Has thanked: 269 times
Been thanked: 452 times
Ale ovšem, já mu taky věřím :-). Ale ztratit a nedostat zdrojáky ke koupenému externímu kódu třetiřadé důležitosti když jste Microsoft, jsou dvě úplně odlišné situace byť výsledek je technicky třeba stejný. Samozřejmě nedá se vyloučit že ty zdrojáky nedostali ale na 99,9% je dostali a následně prošustrovali. Taková situace by totiž rozsvítila celé panely červených kontrolek na různých místech, co řeší řekněme bezpečnostní certifikaci softwaru a tam mají takové hlučné kopírky na vydané bezpečnostní certifikáty firem, které je do skartu rozmnoží na několik tisíc kousíčků :-).


Nahoru
 Profil  
 
PříspěvekNapsal: 07.04.2020, 21:31 
Offline
Pan Generální
Uživatelský avatar

Registrován: 23.03.2014, 20:13
Příspěvky: 2773
Has thanked: 224 times
Been thanked: 601 times
Zprávička v češtině: https://www.zive.cz/clanky/microsoft-naprosto-unikatnim-zpusobem-opravil-kritickou-chybu-v-editoru-rovnic-office/sc-3-a-190566/default.aspx
Teda, asi by bylo rychlejší prohledávat Internet než mojí skládku odkazů :lol:

Ballmer asi ne, toho vždycky zajímaly spíš fotky v Playboyi, ale stalo se: https://www.lupa.cz/clanky/microsoft-poprve-vyvinul-vlastni-linux-a-chce-s-nim-ovladnout-svet-internetu-veci/ :?
A u Huawei se nic z obvinění neprokázalo, na rozdíl od M$, Apple, Google, Cisco (vládě americké stejně jako té čínské)...

_________________
Plesnivý sýr z Tesca, zatuchlé kuřecí řízky z Albertu, oslizlé hovězí a myší trus z Lidlu.
Nákup potravinářské inspekce v ČR, říjen 2023.


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 46 ]  Přejít na stránku Předchozí  1, 2, 3, 4  Další

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 3 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz