P
P
Pantene7422016-07-14 13:37:13
linux
Pantene742, 2016-07-14 13:37:13

Is it necessary for a C++ developer to know assembler and EBM architecture?

As I understand it, a novice C ++ QT / Win32 developer needs to understand how a computer works and operating systems, drivers.
Advise literature where in an accessible language you can get the necessary knowledge.

Answer the question

In order to leave comments, you need to log in

2 answer(s)
A
Anton Zhilin, 2016-07-14
@Pantene742

Absolutely not required. If you know C++, you will easily learn Qt, no "deep understanding of the architecture" is needed. Now, if you are going to work with specific Win32 features, then you are welcome.

A
abcd0x00, 2016-07-14
@abcd0x00

I needed Asm when I had to write a program for the game so that from Linux I could see the number of players on the server (a game for Windows).
Сначала я анализировал сетевые пакеты (через Wireshark), чтобы понять, как виндовый клиент игры взаимодействует с сервером, когда получает от него нужную информацию. Идея была в том, чтобы написать программу, которая делает то же самое, как будто это реальный клиент игры, но это была бы моя программа, которая работает под любой системой.
Всё было понятно, кроме одного: непонятно было, как клиент игры получает список доступных серверов. Сервер их как-то сжимал или шифровал зачем-то и передавал единственным большим ответом (больше никуда бы они не поместились кроме этого ответа). Такая мелочь всё портила, всё было понятно и до и после кроме того, как получить список серверов, чтобы дальше опрашивать их.
Вся эта логика по расжатию или расшифровке находилась в одной из dll игры (отвечающей за сеть). То есть её надо было продизассемблировать, найти этот участок кода и понять, что там происходит. А ассемблер я тогда не знал, поэтому даже если бы я смог её продизассемблировать, я бы просто не смог понять результат.
Вот такая маленькая хрень всё испортила. Кучу времени потратил на сетевой анализ, а запоролося на такой мелочи - не знал ассемблер.
So learn assembler, you will need it when you do something real (not educational). If you don't know, there won't be a program.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question