Reverse Engineering the NC ECU (revisited) -- SH7508
http://forum.miata.net/vb/showthread.php?t=536601
Hey all!
About 5 years ago, there was a great thread on reverse engineering the NC ECU (http://forum.miata.net/vb/showthread.php?t=341366). In the spirit of that thread, I wanted to continue the discussion here for anyone remotely interested in the ecu’s inner workings. MX-Five (Clive) and Jim Boemler have done some solid work on this already, and I’m hoping we can rekindle further exploration. Please, no pissing matches between folks with regards to tunes and tuners… the end goal here is discovery, and sharing information. If any tuners have technical knowledge that doesn't compromise their tuning strategies, I’m sure you’d have a captive audience. All ears, or eyes, or whatever.. you know what I mean!
Anyway, to start things off I’ve consolidated some information on the tools needed for disassembling the ROM should anyone want to explore.
---
DOCUMENTATION
Renesas sh7058 manual
https://googledrive.com/host/0B3_pF8...sas_sh7058.pdf
Sega SH-4 manual (has C equivalents of the SH instruction set, kinda helpful)
https://googledrive.com/host/0B3_pF8...ZDQ/SHC_PM.pdf
---
TOOLS
KPIT Gnu Tools & Renesas High-Performance Embedded Workshop
http://www.kpitgnutools.com/index.php
A compiler/debugger/simulator that's extremely useful! Step thru code, access RAM, registers, i/o simulation (haven’t quite figured that out), etc. It requires registering a free account, and will take a day or so for confirmation granting access to downloads. Once confirmed, go to free downloads > all downloads.
Download the following and install.
HEW 4.08-ntc for KPIT GNU Tools with Simulators
GNUV850 v12.02 Windows Tool Chain
Setup
* run HEW
* from popup or file menu, select create a new project workspace
* give workspace/project a name
* set CPU family to 'SuperH RISC enginge’
* set toolchain to 'KPIT GNUSH [ELF]'
* leave project at default (C application)
* press ok
* (new popup) leave toolchain version at default
* set CPU series to 'SH-2e'
* set CPU type to ‘SH7058F'
* press next
* (option setting popup) press next
* (library generator settings popup) select 'enable all', then press next
* (target system for debugging popup) select targets 'SH-2E' check box
* set target type to 'SH-2E' (should be default)
* press next
* select finish
* (summary popup) press ok, and the workspace will load
* select debug > debug settings
* set target to 'SH-2E Simulator'
* set debug format to ‘Binary'
* select browse, and then select your ROM file
* press ok to confirm
* press ok again to get out of debug settings popup
* (warning popup) select ‘YES’ to continue
* (peripheral function simulation popup), press ok
* look at the project browser pane to the left
* right-click your ROM, and select download
* go debug menu and select 'reset CPU'
* disassembly visible, and now you can step thru the code
One additional step I'm unsure if required for accessing RAM is going to setup > simulator > memory resource.. then setting up both Memory Map and Memory Resource according to Table 9.3 in the Renesas manual. One quirk, memory settings don't stick when reloading project.
—
IDA Pro - Probably reversings #1 tool (both legitimate and fringe)
https://www.hex-rays.com/index.shtml
Setup
* drag ROM into ida
* set processor type to Renesas SH4B
* check box to create RAM section
* set RAM start address to 0xffff0000
* set RAM size to FFFF
* press ok
* popup will ask chose device name, select SH7058
* press ‘G’ (goto) and enter 0000 (you are likely at the top anyway)
* press ‘D’ three times (you will see hex convert to long value.. for example, mine says "data.l unk_C0C”)
* double click that reference, or press ‘G’ and type it in (only the hex)
* press ‘C’ - you will see some disassembled code
* goto options > analysis > kernal options 1, then check the box 'final analysis pass' and press ok
* goto options > analysis, then press reanalyze program
* rom disassembled, now the hard part.. what does it all mean?
IDA Register Definitions for SH7055 / SH7058 by dshultz over at the romraider forum.
https://raw.githubusercontent.com/ds...rc/IDA/sh3.cfg
Copy file to your IDA cfg directory, and replace sh3.cfg which should already exist.
Interrupts will be labeled on reanalysis.
IDA Consonance Theme - Eye strain relief from the default color theme!
https://github.com/eugeneching/ida-consonance
Reverse Engineering the NC ECU (revisited) -- SH7508的更多相关文章
- Reverse Engineering Custom DataTypes -> GUID() in SQL Server to PostgreSQL
原文 https://archive.sap.com/discussions/thread/3641585 First you reverse engineer from a script where ...
- reverse engineering in ax
install Visio2010 Premium(UML model template). not work in Visio 2013 and other version.
- MyEclipse的Hibernate Reverse Engineering失败解决方法
当使用MyEclipse的Hibernate逆向工程功能时,有时出现不成功的情况,点击finish按钮后对应的源文件目录没有生产相关对象,这时应该如何解决呢? 在国内的网站找了很久没找到,最后在国外的 ...
- MyEclipse Hibernate Reverse Engineering 找不到项目错误
解决办法:在项目下找到.project文件,在最后的natures标签加入下面红色的一行代码. <natures> <nature>com.genuitec.ec ...
- radare, the reverse engineering framework
History The radare project [http://radare.org/] started in February of 2006 aiming to provide a free ...
- symfony2已有数据表导入实体时报错 Doctrine does not support reverse engineering from tables that don't have a primary key
先在配置文件 app/config/config.yml中配置 schema_filter: /^(?!(tablename))/ 即可,或者在出现问题表都加上一个id 然后再使用命令 php app ...
- (转)EntityFrameword “Reverse Engineer Code First” 连接 MySql
转自:http://stackoverflow.com/questions/19676624/error-trying-to-reverse-engineer-code-first-mysql-dat ...
- OtterCTF - Reverse - Msg Me This
原文地址:Msg Me This 题目 Category: Reverse Engineering Points: 500 Solves: 15 Description: Rick created a ...
- 基于ARM处理器的反汇编器软件简单设计及实现
写在前面 2012年写的毕业设计,仅供参考 反汇编的目的 缺乏某些必要的说明资料的情况下, 想获得某些软件系统的源代码.设计思想及理念, 以便复制, 改造.移植和发展: 从源码上对软件的可靠性和安全性 ...
随机推荐
- SQLAlchemy-对象关系教程ORM-query
一:对象关系教程查询 一个 Query创建对象时使用 Session的query()方法 .此函数接受一个变量数量的参数,可以是任何类和class-instrumented描述符的组合. Query返 ...
- TF-搞不懂的TF矩阵加法
看谷歌的demo mnist,卷积后加偏执量的代码 h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1)h_pool1 = max_pool ...
- windows下同时安装python2和python3
之前学习的时候使用2.7比较多. 想练习3.7的时候,两个版本兼容的问题,苦恼了几天. 查了一下资料,发现了一个很好的方法.记录一下,也做一个分享. 本篇内容主要讲一下,在同一台电脑上如何同时安装Py ...
- 前端程序员必知的30个Chrome扩展-[转载]
谷歌Chrome浏览器是网络上可用的最好浏览器之一,并且自2011年11月超越了Firefox浏览器之后,已经成为了互联网上占主导地位的浏览器.今天,HTML5中国与大家分享一些实用的谷歌Chrome ...
- 微信接口问题(The underlying connection was closed: An unexpected error occurred on a send)
突然在调用微信接口是报:The underlying connection was closed: An unexpected error occurred on a send错误,跟踪了半天,是因为 ...
- HBase(六)HBase整合Hive,数据的备份与MR操作HBase
一.数据的备份与恢复 1. 备份 停止 HBase 服务后,使用 distcp 命令运行 MapReduce 任务进行备份,将数据备份到另一个地方,可以是同一个集群,也可以是专用的备份集群. 即,把数 ...
- Android开发——子线程操作UI的几种方法(待续)
方法2 Handler andler mHandler = new Handler() { @Override public void handleMessage(Message msg) { su ...
- VM ESXI 服务器虚拟化资料积累
编者按: 公司业务需求,公有云平台不能满足部署mac系统环境的需求,故租赁或托管物理机自行虚拟化,使用的工具就是VM ESXI .从部署到应用都没有遇到过什么问题,但是在今天发生VMware vSph ...
- Mongodb C#客户端数据关联数据,使用Linq语法进行关联
在Mongodb C# drivers 文档 官方地址:https://docs.mongodb.com/ecosystem/drivers/csharp/ 基础的使用请参考<c# Mongod ...
- Java_正则表达式&时间日期
正则表达式 1.概念 正则表达式(英语:Regular Expression,在代码中常简写为regex). 正则表达式是一个字符串,使用单个字符串来描述.用来定义匹配规则,匹配一系列符合某个句法规则 ...