Как правильно декомпилировать dll и exe файлы и конвертировать декомпилированный код в правильный исходный код
Привет Гуру,
Я начинающий программист с небольшим опытом и некоторыми знаниями в области C# и Asp.net-да.
В настоящее время мне поручено внести изменения для некоторых страниц оконного приложения C#, использующего Webservice (C# 4.0, .Net Framework 4.0). У меня нет исходного кода для проекта, но есть только exe-файлы и dll-файлы (несколько dll-файлов в папке bin и 3 exe-файла, несколько файлов .resx,. asmx-файлов и веб-конфигурации снаружи корзины).
После поиска в google я понимаю, что мне нужно использовать инструменты reflector для декомпиляции кода и плагин reflexil для изменения кода. Я декомпилировал все exe и dll файлы приложения и, наконец, получил исходный код с большим количеством ошибок. Однако я не вижу никакой страницы дизайна и не имею ни малейшего представления о том, правильна ли структура решения или нет, так как я вообще не видел исходный код раньше.Мне действительно нужна ваша помощь.Я хотел бы получить правильный исходный код и структуру решения.
Я был бы глубоко признателен, если бы кто-нибудь мог мне это сказать
1) каков правильный способ декомпиляции ? (Нужно ли мне декомпилировать как exe-файлы, так и dll-файлы или любой из них?)
2) Как лучше изменить код? (через рефлектор с reflexil или Visual Studio)
3) Могу ли я получить некоторые ссылки, которые хорошо объясняют, как преобразовать декомпилированный код (автоматически сгенерированный код) в правильный исходный код?
4) Как мне сделать, чтобы получить страницу дизайна (все, что я вижу, - это страница .cs)?
5) Как проверить правильность текущей структуры решения или нет?
Пожалуйста, дайте мне знать, если потребуется предоставить какую - либо дополнительную информацию.
Заранее большое вам спасибо за ваш добрый совет.
Примечание:предыдущий программист покинул компанию и не имеет исходного кода.
Kaysikarline
Ссылаясь на Q3:
Как отредактировать декомпилированный код?
Например, у меня есть декомпилированный код следующим образом:
[
private bool MoveNext()
{
переключатель (это.<>1__состояние)
{
случай 0:
это.<>1__состояние = -1;
это.<count>5__1 = 0;
в то время как (это.<count>5__1 < 10)
{
это.<>2__current = это.<count>5__1;
это.<>1__state = 1;
вернуть true;
Label_004B:
это.<>1__состояние = -1;
это.<count>5__1++;
}
перерыв;
корпус 1:
перейти Label_004B;
}
возвращать false;
}
]
Нужно ли мне изменить это, как показано ниже?
[
статический IEnumerator GetCounter()
{
for (int count = 0; count < 10; count++)
{
доходность рентабельность подсчитать;
}
}
]
GKP1992
Вы не должны оставаться там, где работаете прямо сейчас. Уезжай как можно скорее.