A Brief Discussion on Reverse Analysis of Single Chip Microcomputer

Publisher:彩虹微笑Latest update time:2015-11-10 Source: eefocusKeywords:MCU Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere
There are mountains beyond mountains and heavens beyond heavens. Learning is endless, and this is especially true for product development and technology. No individual or company can develop good products behind closed doors. It is necessary to constantly learn from others' advanced things and learn from each other's strengths to make up for one's weaknesses. Only in this way can mankind continue to progress and society continue to develop. In today's society, the commodity economy environment has long become the mainstream, and learning and innovation capabilities have become increasingly important. Without learning, there can be no innovation.
To learn and learn advanced technology, for embedded products, you need to understand the hardware principles, and you only need a circuit board, which is also easy to obtain. You can just buy a device. For embedded software, the best thing is to get the source code. The source code is the lifeblood of the company, and it is impossible for outsiders to obtain it. Unless you steal it, it is illegal and immoral, so you can't do it. Is there no other way? No, that is to attack technology with technology, that is, to solve it with a more cutting-edge and more technical solution. I call this method reverse analysis here.
The first step is to have an object to be studied and researched, and spend money to buy the product to be studied. This step has no technical content, it is just a business operation. In the commodity economy, as long as you have money, you should be able to solve it.
The second step is to read out the program of the core of the device, that is, the CPU, and obtain the binary or BIN program file. This step requires professional operation, and non-professionals should not try it. The
third step is to disassemble the BIN program file obtained in the second step to obtain the assembly source code with strong readability, so that you can learn it completely. Only when you understand it can you make corrections and innovations. This step involves a wide range of aspects. First of all, it is necessary to solve the problem of disassembly tools. There must be a disassembly tool that supports this CPU. Secondly, there must be an engineer who can understand the assembly program of this CPU.
The fourth step, which is also the highest level, is to accurately translate the assembly program obtained in the third step into a more intuitive C language program. With this C source code as a basis, you can innovate at will. This step requires engineers to have not only assembly language and C language, but also high requirements for patience and carefulness. Engineers must be interested in this boring work, otherwise even the best engineers will often fail the project.
Only those companies with super R&D capabilities can fully possess engineers with the skills required in the above steps, while it is difficult for small and medium-sized companies to gather these professional engineers. However, for China, since our research and application in computers, especially single-chip microcomputers, started much later than developed countries abroad, it is often the case that new single-chip microcomputers are launched abroad, and Chinese people diligently learn to apply them. Therefore, from the application level, Chinese people have studied them more thoroughly. We cannot make many single-chip microcomputers, but our application proficiency is by no means inferior to that of developed countries abroad. This naturally produces a lot of experts who have a deep understanding of the corresponding single-chip microcomputers. These experts can easily read the programs in the CPU that have been hardware-encrypted. Moreover, there is a market demand in this area in China, so China's strength in hardware decryption is quite strong. This provides a solid foundation for reverse engineering. In China, it is easy to find engineers who can crack the hardware of single-chip microcomputers and read the programs in the CPU.
But for many projects with technical content, even if the hardware is cracked and the BIN program file is obtained, it is not easy to disassemble and analyze it. Some even have soft encryption. To successfully reverse analyze, it is necessary to have a good disassembly tool, which is crucial. In addition, there must be experienced engineers who understand both assembly and C. Such engineers are a little harder to find than hardware cracking engineers. For small and medium-sized companies that have reverse analysis needs, it is not necessary for the company to have corresponding engineers. It is completely possible to find professional, full-time reverse companies or individuals, which should be more effective in solving the problem.
The above is all about reverse analysis, but how to prevent reverse analysis? The company works together and works hard to make a product. If it is reverse analyzed by others all of a sudden, the loss is huge. In theory, any product can be successfully reverse analyzed, but it is just a matter of difficulty. If the hardware encryption and software encryption of the microcontroller are strong enough, the difficulty of reverse analysis will be greatly increased, so the reverse time will inevitably increase exponentially, so that the reverser will give up on himself in terms of reverse time and cost. There are several specific ways to strengthen the prevention of reverse analysis:
1. 1. Try to choose a newly launched stable microcontroller. This scale is a bit difficult to grasp, but you can choose a newly launched chip from a large company. The stability of the newly launched chips from such companies should be guaranteed, such as TI, NXP, Atmel, ST, etc.
2. Try to choose a cost-effective 16-bit or 32-bit microcontroller instead of an 8-bit microcontroller, such as the STM32F10X series. This series of microcontrollers is quite difficult to reverse, and the price is similar to some 8-bit machines. 16-bit ones are such as the MSP430 series.
3. Try to add soft encryption code to the program, so that even if you successfully crack the program, get the program, and burn it into the chip, it will not run normally, and you must perform soft decryption. Some microcontrollers have built-in soft encryption features that can be used for soft encryption, such as Atmega series of Atmel and STM32F10X series of ST, but some do not, such as 51 and MSP430, which rarely have this feature. In this way, to achieve soft encryption, you must bring another chip and combine the program to achieve soft encryption.
4. When burning the program, all encryption bits provided by the microcontroller hardware are set to encrypted status.
Keywords:MCU Reference address:A Brief Discussion on Reverse Analysis of Single Chip Microcomputer

Previous article:Teach you to learn MCU 2: Think from the perspective of the machine
Next article:Microcontroller Experiment Report and Experience

Recommended ReadingLatest update time:2024-11-16 23:46

Design of MP3 player based on single chip microcomputer
0 Introduction With the development of electronic technology, MP3 player is one of the popular consumer digital products on the market. It has the characteristics of large capacity, high sound quality, small size and portability. It is favored by consumers. This paper adopts ETC's microcontroller STC89C58RD+
[Microcontroller]
Design of MP3 player based on single chip microcomputer
MCU drives EC11 encoder source program
EC11 encoder is often called rotary encoder, which is mainly used for parameter control such as brightness, temperature, frequency, volume adjustment, etc. The C pin of the three pins is grounded, and the AB pin is connected to a pull-up resistor. When turning left or right, the AB pin will output a pulse signal. Th
[Microcontroller]
Lesson 28: Single-Chip Microcomputer Music Programming
Using a single-chip microcomputer (or single-board computer) to play music is probably one of the issues that radio enthusiasts are interested in. This article starts with the basic experiment of single-chip microcomputers, discusses the design principles of music programs, and gives specific examples for reference.
[Microcontroller]
Xinwang reveals the first self-developed KungFu core 32-bit high-end MCU
The ELEXCON 2019 Shenzhen International Electronics Exhibition with the theme of "Internet of Things China, Smart Future" was grandly opened at the Shenzhen Convention and Exhibition Center recently. From components, embedded technology to system solutions, it fully demonstrated emerging technologies and popular appli
[Mobile phone portable]
Xinwang reveals the first self-developed KungFu core 32-bit high-end MCU
Detailed explanation of the use of STM8 MCU timer 1 encoder function
Encoder Introduction The encoder used here is a point encoder, which is widely used in various instruments. Its specific parameters are not mentioned here. Its appearance is as follows: The pin functions are as follows: The one used here has a switch function, so it has 5 pins. If it does not have a switch, it o
[Microcontroller]
Detailed explanation of the use of STM8 MCU timer 1 encoder function
3 Challenges MCUs Face in 800V Electric Vehicle Traction Inverters
The electric vehicle (EV) traction inverter is the heart of the electric vehicle. It converts the DC power from the high-voltage battery into multi-phase (usually three-phase) AC power to drive the traction motor and control the regeneration of braking energy. Electric vehicle electronics are moving from 400V archit
[Embedded]
AVR MCU ATmega16 Fuse bit setting error chip lock repair
I recently made an ATmega16 board for fun, and downloaded ISP. The 16M crystal oscillator was not set up properly at the beginning, and the internal clock source was used, so the crystal oscillator was useless. After searching for a while, I found that the fuse bit of ATmega16's 16M crystal oscillator is set to hig
[Microcontroller]
C8051F021 single chip microcomputer realizes data acquisition system
The power angle measurement data acquisition card introduced is a PCI bus interface card implemented with the Cygnal C8051F021 single-chip microcomputer. The card uses two dual-port RAMs to exchange data with the GPS receiving board and the host computer (PC), thereby achieving high-speed and reliable data acquisiti
[Industrial Control]
C8051F021 single chip microcomputer realizes data acquisition system
Latest Microcontroller Articles
  • Download from the Internet--ARM Getting Started Notes
    A brief introduction: From today on, the ARM notebook of the rookie is open, and it can be regarded as a place to store these notes. Why publish it? Maybe you are interested in it. In fact, the reason for these notes is ...
  • Learn ARM development(22)
    Turning off and on interrupts Interrupts are an efficient dialogue mechanism, but sometimes you don't want to interrupt the program while it is running. For example, when you are printing something, the program suddenly interrupts and another ...
  • Learn ARM development(21)
    First, declare the task pointer, because it will be used later. Task pointer volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • Learn ARM development(20)
    With the previous Tick interrupt, the basic task switching conditions are ready. However, this "easterly" is also difficult to understand. Only through continuous practice can we understand it. ...
  • Learn ARM development(19)
    After many days of hard work, I finally got the interrupt working. But in order to allow RTOS to use timer interrupts, what kind of interrupts can be implemented in S3C44B0? There are two methods in S3C44B0. ...
  • Learn ARM development(14)
  • Learn ARM development(15)
  • Learn ARM development(16)
  • Learn ARM development(17)
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号