Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[C# .net] Binaire généré par VS

4 réponses
Avatar
Zainal
Bonjour à tous,

J'ai une question peut être un peu bizarre. Voila, j'ai comparé deux exe
généré par VS à partir de mes sources en C# et bien que les source et le
projet soit identique, les exe n'ont rien à voir entre eux. Les zones de type
string par exemple sont mélangées etc.... Est ce une "sorte" d'obsfucateur
que VS intègre ou bien est ce le linker qui fait ça ? De plus il est très
important pour l'entreprise ou je travaille de pouvoir regénérer le MEME exe
à partir des mêmes sources. Est ce possible ? Et si oui comment ? (options du
linker ou autre)

PS : Je travaille sous Visual C# Express mais si ce n'est possible qu'avec
VS donnez moi la solution quand même ^^

Bonne journée

4 réponses

Avatar
Simon Mourier [SoftFluent]
Globalement, ce n'est pas vraiment possible de garantir une telle chose.
A priori, de toutes façons, ce n'est pas une bonne idée de bâtir quoi que ce
soit qui serait fonction du pur contenu binaire d'un exécutable. Il vaut
mieux utiliser les systèmes de version Win32 ou .NET, les signatures
numériques, etc...

Que cherchez vous à faire au départ?

Simon.
www.softfluent.com

"Zainal" a écrit dans le message de news:

Bonjour à tous,

J'ai une question peut être un peu bizarre. Voila, j'ai comparé deux exe
généré par VS à partir de mes sources en C# et bien que les source et le
projet soit identique, les exe n'ont rien à voir entre eux. Les zones de
type
string par exemple sont mélangées etc.... Est ce une "sorte" d'obsfucateur
que VS intègre ou bien est ce le linker qui fait ça ? De plus il est très
important pour l'entreprise ou je travaille de pouvoir regénérer le MEME
exe
à partir des mêmes sources. Est ce possible ? Et si oui comment ? (options
du
linker ou autre)

PS : Je travaille sous Visual C# Express mais si ce n'est possible qu'avec
VS donnez moi la solution quand même ^^

Bonne journée


Avatar
Zainal
Je ne comprend pas pourquoi ce n'est pas une chose qui peut être garantie. En
C ou en C++ par exemple, les même sources générent toujours le même exe !
Pourquoi ce n'est pas vrai pour .NET. On se pose la question pour des
problèmes d'audit qualité. Nous devons pouvoir garantir de savoir regénérer
un exe de manière parfaitement identique un exe.

Bonne journée

"Simon Mourier [SoftFluent]" a écrit :

Globalement, ce n'est pas vraiment possible de garantir une telle chose.
A priori, de toutes façons, ce n'est pas une bonne idée de bâtir quoi que ce
soit qui serait fonction du pur contenu binaire d'un exécutable. Il vaut
mieux utiliser les systèmes de version Win32 ou .NET, les signatures
numériques, etc...

Que cherchez vous à faire au départ?

Simon.
www.softfluent.com

"Zainal" a écrit dans le message de news:

> Bonjour à tous,
>
> J'ai une question peut être un peu bizarre. Voila, j'ai comparé deux exe
> généré par VS à partir de mes sources en C# et bien que les source et le
> projet soit identique, les exe n'ont rien à voir entre eux. Les zones de
> type
> string par exemple sont mélangées etc.... Est ce une "sorte" d'obsfucateur
> que VS intègre ou bien est ce le linker qui fait ça ? De plus il est très
> important pour l'entreprise ou je travaille de pouvoir regénérer le MEME
> exe
> à partir des mêmes sources. Est ce possible ? Et si oui comment ? (options
> du
> linker ou autre)
>
> PS : Je travaille sous Visual C# Express mais si ce n'est possible qu'avec
> VS donnez moi la solution quand même ^^
>
> Bonne journée





Avatar
Simon Mourier [SoftFluent]
Ce n'est pas forcément vrai non plus en C / C++, ça dépend aussi du
compilateur, de l'environnement, ou n'importe quoi d'autre. Rien dans la
norme des langages ne spécifie le format complet du binaire final.
De toutes façons, il ne faut pas baser un système sur le pur contenu binaire
d'un fichier exécutable. Si vous cherchez à protéger ou signer l'exécutable
par exemple, il existe d'autres techniques (par exemple authenticode)

Simon.
www.softfluent.com



"Zainal" a écrit dans le message de news:

Je ne comprend pas pourquoi ce n'est pas une chose qui peut être garantie.
En
C ou en C++ par exemple, les même sources générent toujours le même exe !
Pourquoi ce n'est pas vrai pour .NET. On se pose la question pour des
problèmes d'audit qualité. Nous devons pouvoir garantir de savoir
regénérer
un exe de manière parfaitement identique un exe.

Bonne journée

"Simon Mourier [SoftFluent]" a écrit :

Globalement, ce n'est pas vraiment possible de garantir une telle chose.
A priori, de toutes façons, ce n'est pas une bonne idée de bâtir quoi que
ce
soit qui serait fonction du pur contenu binaire d'un exécutable. Il vaut
mieux utiliser les systèmes de version Win32 ou .NET, les signatures
numériques, etc...

Que cherchez vous à faire au départ?

Simon.
www.softfluent.com

"Zainal" a écrit dans le message de
news:

> Bonjour à tous,
>
> J'ai une question peut être un peu bizarre. Voila, j'ai comparé deux
> exe
> généré par VS à partir de mes sources en C# et bien que les source et
> le
> projet soit identique, les exe n'ont rien à voir entre eux. Les zones
> de
> type
> string par exemple sont mélangées etc.... Est ce une "sorte"
> d'obsfucateur
> que VS intègre ou bien est ce le linker qui fait ça ? De plus il est
> très
> important pour l'entreprise ou je travaille de pouvoir regénérer le
> MEME
> exe
> à partir des mêmes sources. Est ce possible ? Et si oui comment ?
> (options
> du
> linker ou autre)
>
> PS : Je travaille sous Visual C# Express mais si ce n'est possible
> qu'avec
> VS donnez moi la solution quand même ^^
>
> Bonne journée







Avatar
Paul Bacelar
En plus, sous Windows, les fichiers exécutables ont dans leur en-tête la
date (timestamp) de compilation, donc toute compilation ne peut générer
qu'un exécutable (légèrement) différent. Si vous êtes dans une approche
traçabilité, je pense que des outils comme un Serveur de Symbols plus un
serveur de source utilisant un outil de gestion de configuration à la
ClearCase ou VSS font largement l'affaire.
--
Paul Bacelar
MVP VC++


"Simon Mourier [SoftFluent]" wrote in message
news:
Ce n'est pas forcément vrai non plus en C / C++, ça dépend aussi du
compilateur, de l'environnement, ou n'importe quoi d'autre. Rien dans la
norme des langages ne spécifie le format complet du binaire final.
De toutes façons, il ne faut pas baser un système sur le pur contenu
binaire d'un fichier exécutable. Si vous cherchez à protéger ou signer
l'exécutable par exemple, il existe d'autres techniques (par exemple
authenticode)

Simon.
www.softfluent.com



"Zainal" a écrit dans le message de
news:
Je ne comprend pas pourquoi ce n'est pas une chose qui peut être
garantie. En
C ou en C++ par exemple, les même sources générent toujours le même exe
!
Pourquoi ce n'est pas vrai pour .NET. On se pose la question pour des
problèmes d'audit qualité. Nous devons pouvoir garantir de savoir
regénérer
un exe de manière parfaitement identique un exe.

Bonne journée

"Simon Mourier [SoftFluent]" a écrit :

Globalement, ce n'est pas vraiment possible de garantir une telle chose.
A priori, de toutes façons, ce n'est pas une bonne idée de bâtir quoi
que ce
soit qui serait fonction du pur contenu binaire d'un exécutable. Il vaut
mieux utiliser les systèmes de version Win32 ou .NET, les signatures
numériques, etc...

Que cherchez vous à faire au départ?

Simon.
www.softfluent.com

"Zainal" a écrit dans le message de
news:

> Bonjour à tous,
>
> J'ai une question peut être un peu bizarre. Voila, j'ai comparé deux
> exe
> généré par VS à partir de mes sources en C# et bien que les source et
> le
> projet soit identique, les exe n'ont rien à voir entre eux. Les zones
> de
> type
> string par exemple sont mélangées etc.... Est ce une "sorte"
> d'obsfucateur
> que VS intègre ou bien est ce le linker qui fait ça ? De plus il est
> très
> important pour l'entreprise ou je travaille de pouvoir regénérer le
> MEME
> exe
> à partir des mêmes sources. Est ce possible ? Et si oui comment ?
> (options
> du
> linker ou autre)
>
> PS : Je travaille sous Visual C# Express mais si ce n'est possible
> qu'avec
> VS donnez moi la solution quand même ^^
>
> Bonne journée