Определение языка программирования

Поэтому у меня есть программное обеспечение, которое по причинам, которые выходят за рамки этого поста, я не буду включать, но, проще говоря, я бы хотел «MOD» оригинальное программное обеспечение. Программа запускается из приложения Windows с именем ViaNet.exe с сопровождающими файлами DLL, такими как ViaNetDll.dll, Приложение получает аргумент, такой как ./Statup.cat, Существует также процесс WatchDog, который использует аргумент ./App.cat вместо прежнего.

Мне удалось найти файл журнала, похороненный в папке Windows / Temp для приложения ViaNet.exe. Глядя на журнал, он определяет такие файлы, как:

./Utility/base32.atc:_Encode32  line 67
./Utilities.atc:MemFun_:Invoke  line 347
./Utilities.atc:_ForEachProperty  line 380
./Cluster/ClusterManager.atc:ClusterManager:GetClusterUpdates  line 1286
./Cluster/ClusterManager.atc:ClusterManager:StopSync  line 505
./Cluster/ClusterManager.atc:ConfigSynchronizer:Update  line 1824

Переход к этим расположениям файлов показывает файлы по этим именам, но не заканчивается .atc но вместо этого .cat, В журнале также указывается какой-то класс, метод и номер строки, но .cat файлы в двоичном виде.

Поиск в папке программы любых файлов с расширением .atc показывает три — То, что я могу предположить, некомпилированы .cat файлы — файлы. Низкий и вот, однажды открыв, это, очевидно, какой-то исходный код — с заголовками авторских прав, смеется.

global ConfigFolder, WriteConfigFile, App, ReadConfigFile, CreateAssocArray;

local mgrs = null;
local email = CreateAssocArray( null);

local publicConfig = ReadConfigFile( App.configPath + "\\publicConfig.dat" );

if ( publicConfig != null )
{
mgrs = publicConfig.cluster.shared.clusterGroup[1].managers[1];

local emailInfo = publicConfig.cluster.shared.emailServer;
if (emailInfo != null)
{
if (emailInfo.serverName != "")
{
email.serverName = emailInfo.serverName;
}
if (emailInfo.serverEmailAddress != "")
{
email.serverEmailAddress = emailInfo.serverEmailAddress;
}
if (emailInfo.adminEmailAddress != null)
{
email.adminEmailAddress = emailInfo.adminEmailAddress;
}
}
}

if (mgrs != null)
{
WriteConfigFile( ConfigFolder + "ZoneInfo.dat", mgrs);
}

WriteConfigFile( ConfigFolder + "EmailInfo.dat", email);

Чтобы закончить это как можно проще, я пытаюсь выяснить две вещи. # 1 Какой это язык программирования? и № 2 Может .cat быть декомпилированным обратно в .atc. файлы? — и наоборот. Глядя на журнал, кажется, что приложение декодирует / декомпилирует .cat файлы уже, чтобы интерпретировать их стихи, выполняющие их как байт-код / ​​нативно. В поисках .atc в Google результаты в AutoCAD. Но, глядя на результаты, видно, что это какие-то файлы палитры, ничего не связанные с исходным кодом.

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

РЕДАКТИРОВАТЬ

Люди с огромными новостями, я сделал довольно интересное открытие. Я скачал патч от производителя, он содержал командный файл, который выполнял ViaNet.exe Execute [Patch Script].atc, Я быстро обнаружил, что вы можете использовать Execute запустить оба .atc а также .cat файлы одинаково, так же, как без аргумента. Узнав об этом, я предположил, что должны быть разные аргументы, и после случайного везения есть один. Это существо Compile [Script].atc, Этот аргумент скомпилирует также любой .atc подать в .cat, Я скомпилировал приведенный выше скрипт для сравнения: http://pastebin.com/rg2YM8Q9

Поэтому я думаю, что цель сейчас — определить, можно ли декомпилировать указанный скрипт. Поэтому я сделал еще один шаг и добился успеха в получении псевдокода C ++ из ViaNet.exe а также ViaNetDll.dll двоичные файлы, это пролило тонны понимания проприетарного языка и его API, который они используют. Из того, что я могу сказать, каждое выполнение сначала декомпилируется, а затем запускается через интерпретатор. Они также назвали свой язык ATCL, все еще не зная, что он обозначает. При поиске API я нашел несколько методов отладки с такими именами, как ExecuteFile, ExecuteString, CompileFile, CompileString, InspectFunction и наконец DumpObjCode, С DumpObjCode Метод Я могу выполнить какой-то дамп файлов сценариев. Файл дампа для вышеуказанного скрипта: http://pastebin.com/PuCCVMPf

Я надеюсь, что кто-то может помочь мне найти образец прогресса, которого я добился. Я стараюсь изо всех сил пройтись по псевдокоду, но я не знаю C ++, поэтому мне очень трудно разобраться в коде. Я попытался отделить то, что я могу определить как подпрограммы сценария компиляции, но я не уверен: http://pastebin.com/pwfFCDQa
Если кто-то может дать мне представление о том, что делает этот фрагмент кода, и если мне кажется, что я на правильном пути, я был бы признателен. Заранее благодарю.

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]