декомпилировать .exe файл

stm5363903

Всем привет, помогите разобраться можно ли декомпилировать .exe файл,
предположительно написанный на С++ ?
И если можно, посоветуйте как и чем лучше?
спасибо

marat7256

Обычно - нет. Разве что на уровень ассемблера.

hoha32

декомпилировать можно в ассемблерный код
далее можно, вроде как, худо-бедно превратить этот код в код более высокого уровня (тот же с++)
понять что же имели в виду авторы программы, в общем случае, скорее всего не получится

stm5363903

Жаль..... спасибо за ответы )

Dimon89

Ты бы хоть написала, чего хочешь добиться =) почти наверняка, декомпилировать файл не придется

stm5363903

хорошо я напишу, но вряд ли это поможет )))
у меня есть .exe файл (исходного кода нет) и он преобразует файл .wvd в .txt используя название файла на русском языке, а мне нужно как то переделать этот .exe файл чтобы он выдавал .txt на английском языке и внутри к тому же менял названия столбцов тоже на английский.... и поскольку я не знаю вообще чем еще открыть этот файл .wvd, то подумала что можно было бы декомпилировать программку и каким-то образом ее преобразовать
спасибо

BatoSan

А информации, хранящейся в полученном .txt файле не хватит, чтобы написать простую прогу, которая всё на английский переведёт?

nas1234

поскольку я не знаю вообще чем еще открыть этот файл .wvd
а блокнотом попробуй открыт ь и посмотреть что там. может там стандартный файл с разделителями.
выложи wvd и полученый txt в форум

stm5363903

изначальной задачей было автоматизировать весь процесс: сейчас у меня 2 этапа, а если будет еще одна программка, то будет 3 этапа и все вручную - поскольку эта усваивает по 1 файлу, выбираемому вручную....
3 программка у меня уже есть....

Troyn09

выложи wvd и полученый txt в форум
в архив и на форум

Dasar

то будет 3 этапа и все вручную
можно написать автоматическую программку, которая, например, будет мониторить папку и автоматически преобразовывать все файлы *.wd в *.eng.wd, сразу же как только появляется (или меняется) еще один wd файл

stm5363903

блокнотом открывается ерунда какая-то
тут архив вроде
[image] [/image]

elenangel

и что, тебе Долгота надо заменить на Longitude и аналогично другое?

Dimon89

Это ты программу WellView пыталась декомпилировать? ;) В файле данные в бинарном виде, можно написать новый конвертер, хотя по-моему гораздо проще и надежней будет преобразовать готовый txt-файл.

procenkotanya

В файлике хранятся тупо даблы по 5, ширина-долгота-скорость-направление-единичка, никаких метаданных нет.

stm5363903

да, так и есть например:
название файлов .txt: YYYYMMDD_HHMM_black_azov_wind.txt
структура внутри файла .txt:
Number Latitude Longitude Wind Speed Wind Direction (WMO)
1 46.474 37.414 7.340 282.300

stm5363903

нет,я о ней не знаю. у нас есть программка, написанная предыдущим сотрудником, ее хотела преобразовать.
видимо она написана на основе той, о которой ты пишешь...

Dimon89

видимо она написана на основе той, о которой ты пишешь...
WellView - это программа, которая создает файлы wvd. Во всяком случае, так пишут в интернетах.

stm5363903

неа, у нас файлы .wvd получаются также из .exe, который преобразует исходные файлы .L2_bufr со спутника Metop/Ascat (это первый этап) :crazy:

matvey61

короче да, читаю я все это и вспоминаю анекдоты про блондинок всякие, женщин у плиты и прочее.

SergZ495

или историю про то как какую-то сотрудницу успешно заменили скриптом на vba...

nas1234

исходные файлы .L2_bufr
а эти файлы тоже в каком-то навороченом формате или может там попроще?

stm5363903

Нет, они попроще, так как это стандартный формат ВМО.
The Binary Universal Form for the Representation of meteorological data (BUFR) is a binary data format maintained by the World Meteorological Organization (WMO).

nas1234

ну вот и поищите прогера который его распарсит в нужный вам формат.
зы у меня есть такое чувство, что конечный txt тоже надо скормить какой-то проге, которой не нравится порядок столбцов.

stm5363903

нет txt файлики прекрасно кушает ArcGIS в котором и ведется дальнейшая обработка и анализ)))с этим проблем нет...проблема есть теперь только с английским)))
всем спасибо за участие)

yolki


#include <stdio.h>
#include <stdlib.h>

int main(int argc, char* argv[])
{
  int n;
  FILE *fin,*fout;
  char OutputFileName[201];

  if(argc<=1)
  {
    printf("usage: %s filename.wvd\n",argv[0]);
    return -1;
  }
  strncpy(OutputFileName,argv[1],200);
  strncpy(OutputFileName+strlen(OutputFileName)-3,"txt",3);
  fin=fopen(argv[1],"rb");
  fout=fopen(OutputFileName,"w");


  fprintf(fout,"Number Latitude Longitude Wind Speed Wind Direction (WMO)\n");
  
  n=0;
  while(!feof(fin))
  {
    double data[5];
    n++;
    if(fread(data,sizeof(double),5,fin)!=5) break;
    fprintf(fout,"%d %8.6f %8.6lf %8.6lf %8.6lf\n",n,data[0], data[1], data[2], data[3]);
  }
  fclose(fout);
  fclose(fin);
  return 0;
}

yolki

кстати, как тут не вспомнить об XYZ

yolki

забавно:

stm5363903

немного перепутал широты и долготы )))

vlad88

Есть IDA, которая ассемблерный код выдаст, и есть для неё плагин (он уже вроде идёт вместе с идой) HexRays, который умеет иногда переводить код в нечто C-подобное. Порой работает очень хорошо, иногда - хреновато.
Оставить комментарий
Имя или ник:
Комментарий: