晶通物控
草根技术创业多年,在嵌入式方面浸淫多年。希望能分享一点经验给大家,难免有误,请各路高手多多指正,共同提高
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
劳特巴赫ICD调试器CMM调用烧录框架固件研究之C语言版本
怀疑是底层调用用烧录固件“~~/demo/arm/flash/word/stm32f300.bin”与芯片不兼容造成的,于是有了这编研究文档,多的不说直接上代码吧,具体的操作,请自行查代码理解。另外还会再发一篇汇编的。接到客户一个项目是基本GD32F301C8XX的,尝试用手上的劳特巴赫仿真器对它进行开发操作,发现总是提示“FLASH algorithm did not execute completely”原创 2024-09-15 21:10:46 · 624 阅读 · 0 评论 -
STC-ISP原厂代码研究之 V3.7d汇编版本
最近在研究STC的ISP程序,用来做一个上位机烧录软件,逆向了上位机软件,有些地方始终没看明白,因此尝试读取它的ISP代码,但是没有读取成功。应该是目前的芯片架构已经将引导代码放入在了单独的存储块中,而这存储块有硬件级的使能线,在。下载到了一个老版本的opcode固件,对它进行了深入的研究后,虽然对自己没有太多作用,但是还是对ISP程序有兴趣的可以借鉴参考一下。http://面包板社区-宏晶STC单片机的ISP的BIN文件 (芯片保密性) 原创。原创 2024-02-27 12:51:17 · 516 阅读 · 0 评论 -
STC-ISP原厂代码研究之 V3.7d C代码版本
最近在研究STC的ISP程序,用来做一个上位机烧录软件,逆向了上位机软件,有些地方始终没看明白,因此尝试读取它的ISP代码,但是没有读取成功。应该是目前的芯片架构已经将引导代码放入在了单独的存储块中,而这存储块有硬件级的使能线,在。下载到了一个老版本的opcode固件,对它进行了深入的研究后,虽然对自己没有太多作用,但是还是对ISP程序有兴趣的可以借鉴参考一下。面包板社区-宏晶STC单片机的ISP的BIN文件 (芯片保密性) 原创。当前版本已经用C代码重写,编译通过但未调试。原创 2024-02-27 12:56:54 · 501 阅读 · 0 评论 -
编写FLM编程算法文件(制作离线烧录器的OPT文件)
在MDK的Debug界面下的Flash Download可以选择芯片的编程算法,在安装了芯片包之后可以直接得到目标的编程算法文件,但是对于芯片包的开发者或者有独特的下载需求(校验),这个时候就需要去编写编程算法文件。编译工程文件,在输出目录下即可看到*.axf文件,工程中的*.axf文件跟*.FLM文件相同,只需将后缀.axf修改为.FLM,然后复制到MDK安装目录的ARM/FLASH下,就能在选项卡里选择自己的编程算法文件了。开源库进行文件转换就能得到离线下载的编程算法文件了,参考该文献。转载 2023-05-08 14:51:46 · 4899 阅读 · 0 评论 -
DAP之FLM算法研究
前言上一讲我们讲到stm32可以将代码直接下载到RAM中时行程序调试,同时可以有效避开STM32 Flash 擦写次数有限问题,其实除了仿真调试时将程序设置在RAM中可以解决FLASH擦写次数问题外,如果程序实际运行时能直接在RAM中运行,其代码的运行效率也会有一定的提高,那么怎么实现实际运行时让程序在RAM中运行呢,本节将带领大家来实现这一操作。由于本人尽来因为服务的客户令人十分糟心,也想搞个刷写器的项目,因此本着好奇的心,研究了了该HEX文本的算法内容,并将汇编反译成了C。反汇编为C代码后,内容为。原创 2023-05-07 16:51:17 · 1453 阅读 · 0 评论 -
IDA 知识汇总
idapython 版本api变化api变化基础apiidc.ScreenEA()--> idc.get_screen_ea() 获取当前光标所在行的地址, 返回一个 int 类型idc.MaxEA()--> ida_ida.inf_get_min_ea() 获取当前idb 的最小地址 和 最大地址idc.SegName(ea) --> idc.get_segm_name(ea) ea是一个变量存储当前地址, 这个api 是获取当前地址所在的段idc.GetDisasm。启动界面介绍: ...原创 2023-04-26 19:07:22 · 648 阅读 · 0 评论 -
OllyScript脚本语言语法
gpa "MessageBoxA", "user32.dll" //这条指令执行后,$RESULT等于函数MessageBoxA的地址,您可以使用"bp $RESULT"设置断点。"1234567ABCDEF"注:value的值最大8个字节,可以为寄存器值,标志位值,Varial值,16进制值,10进制值,[]指针opcode.从指定地址处开始,在内存中提取指定大小的数据,并保存到指定的文件中;- 32位寄存器 (EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP, EIP)。原创 2023-04-11 17:27:40 · 635 阅读 · 0 评论 -
逆向入门--何为OEP
OEP:程序的入口点,软件加壳就是隐藏了OEP(或者用了假的OEP), 只要我们找到程序真正的OEP,就可以立刻脱壳。再用一个最幼稚的比喻来形容加壳的软件,那个带壳的软件,就是穿了衣服的人,要看它到底是男是女,就把衣服脱掉,不可能哪个生出来就穿了衣服吧,就像软件一样,写出来不可能就带壳的,都是后面加上去的。以上方法,针对不同的壳,至于OEP是什么样子,这个就不好说了,不同的语言写出来的样子就不一样,有高手能总结下OEP的样子吗?基础东西,老鸟绕过,新手要学破解的,必须掌握~~我也在学习中。原创 2023-04-11 08:38:09 · 1400 阅读 · 0 评论 -
【转载】一文看懂汽车电子ECU bootloader工作原理及开发要点
在开发应用程序时,需要先对其进行单独调试以保证其功能正常,这时虽然其外设中断向量表已经进行了偏移,但其复位向量必须的放置在默认中断向量表中复位向量所在的地址,否则下载后无法运行,进行正常调试,因为如果把应用程序的复位向量放在偏移后的应用程序中断向量表中,则默认的复位向量内容为0xFFFF(Flash擦除后的状态),CPU内核就会到0xFFFF的地址取指运行,显然不是真实的工程启动函数,所以无法运行,其结果跟一个新MCU未写入任何程序时上电运行的情况一样,会不断的出现非法地址复位;转载 2023-04-08 09:33:34 · 1302 阅读 · 0 评论 -
INFINONE XC164单片机逆向记录(6)C语言学习
本人所写的博客都为开发之中遇到问题记录的随笔,主要是给自己积累些问题。---- 文接上章 -------------------------------INFINONE XC164单片机逆向记录(1)资料准备。INFINONE XC164单片机逆向记录(3)汇编语法。INFINONE XC164单片机逆向记录(4)开发环境。INFINONE XC164单片机逆向记录(2)反汇编。指定生成的指令集为C167, 默认为C166。一个为客户逆向解析通讯协议的真实案例。指定生成类名,可以在链接器指定类地址。原创 2023-04-09 10:32:38 · 753 阅读 · 0 评论 -
写在专栏前面
因此决定进入与原来工作完全相反的领域,之前完全是正向开发的,那现在做逆向,为客户提供那么算法研究,产品改进等,至于逆向是什么,为何逆向,说实施我也不懂,那还是搬书吧。我在本栏内将会用心记录逆向过程的技术细节,主要是为自己在今后的工作中查找 资料以及因为相隔时间稍长后无印象所做的一个索引。实际上大多数开发者都痛恨对产品逆向,包括我之前也是这样看,但反过来对于如何防止逆向却也是一门新的课题,我之所以做逆向是因为生存问题,但是我却希望通过对产品的逆向流程最终可以提高产品防盗版的能力。原创 2023-04-04 16:27:43 · 652 阅读 · 2 评论 -
INFINONE XC164单片机逆向记录(R1) 汽车动力系统ECU固件逆向工程初探
此时,第一步提取的固件信息就很有用了,至少为我们提供了搜索的线索,结合固件涉及的电子属性和发动机相关信息,我发现该ECU属于英飞凌的(Infineon,前身为西门子集团的半导体部门),而该ECU采用的是C16X系列的内核,也就是说该ECU封装的实际上C16X的MCU,这款MCU原先属于西门子,因此指令集极有可能也是西门子的。通过更加细致的分析,我找到了一些MAP表,比如油量表、直接转矩控制表(DTC表)、DTS表、油量表、RPM表、进气温度表等,以及操作表的函数,比如有做MAP校验的函数,查表的函数等等。转载 2023-04-04 15:33:24 · 1547 阅读 · 2 评论
分享