dddddddddddddddddddddddddddddddddddddddd/
ddddddddddddddddddMMMMdddddddddddddddddd/
``````````````````NMMM``````````````````
---------------------NMMM---------------------`
`NNNNNNNNNNNNNNNNNNNNNMMMMNNNNNNNNNNNNNNNNNNNNNo
`MMMmoooooooooooooooooNMMMooooooooooooooooosMMMs
`MMMy NMMM -MMMs
`MMMy /hhhhhhhhhhh` NMMM hhhhhhhhhhhs -MMMs
`MMMy /hhhhhhhhhhh` NMMM hhhhhhhhhhhs -MMMs
`mmms NMMM -mmmo
/ssssssssssss` NMMM sssssssssssss.
sNNNNNNNNNNNN` NMMM NNNNNNNNNNNNN-
oooo
::::::::::::::::::::::::::::::::::::`
`MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM/
////////////////////////////////////.
-yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyo
:MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMd
````````````-NMMMd.```````````-ohNh+.````````````
:NMMMo` `+hMMMNy:`
+NMMm: ````-sNMMMmo.
.yyyyyydMMMMmdddddmmmmmmmmmmmmNNNMMMMMMNh:
`MMMMMMMNNNNNNNmmmmmmddddddhhhhhhyyyyymMMMd/
---............````````````` `+mds:
``
[deroad's blog]
[home]
# 2020-01-06 | libmc7 - Library to disassemble MC7 bytecode
{
New year and new release.
Todays release is libmc7, a library to disassemble MC7 bytecode for
siemens simatic S7-300/S7-400 PLCs.
To install it you just need to run r2pm install libmc7.
Once installed you will have the disassembler, so you just need to
load the binary on r2 and select mc7 as arch:
$ r2 sample.mc7.bin
-- In radare we trust
[]> e asm.arch = mc7
[]> pdi 5 @ 0x24
0x00000024 600d +D
0x00000026 6009 -D
0x00000028 600a *D
0x0000002a 600e /D
0x0000002c 6001 MOD
The source code can be found here: https://github.com/radareorg/libmc7
}
# References:
Siemens C79000-G7076-C505-02 Statement List (STL) for S7-300 and S7-400 Programming Manual
http://data.proidea.org.pl/confidence/9edycja/materialy/prezentacje/FX.pdf
https://gitlab.com/nnaumenko/mc7