Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2002.12.09;
Скачать: [xml.tar.bz2];

Вниз

Программа для определения программы   Найти похожие ветки 

 
Supra   (2002-11-11 18:14) [0]

Да вот такой вот каламбур. Но мне действительно нужна такая вот программа. Есть ли вообще такая программа которая определяет в каком компиляторе была откомпилирована прога (Delphi, C++ Builder, Visual C++ и т.д. и т.п.)


 
Кот Бегемот   (2002-11-11 18:17) [1]

Канэшна эст :) - Hackview


 
Игорь Шевченко   (2002-11-11 18:20) [2]

Supra (11.11.02 18:14)

Есть. Глаза называется


 
Anar   (2002-11-11 18:33) [3]

Игорь Шевченко прав: можно определить визуально.
У меня например 2 метода отделения программа написанных на VC++ и Delphi (C++ Builder):

1. Посмотри на системное меню (то которое внизу, а не на заголовке) - у программ, написанных на VC++ - оно совпадает с верхним (которое на заголовке). У программ Delphi и Builder"a - нижнее меню состоит только из 3-х пунктов (независимо от BorderStyle) - Close, Minimize, Restore. Ты знаешь сколько я с этим мучился? Приходилось свой пункт по отдельности в верхнее и нижнее меню вставлять. Спроси у ребят, они тебе скажут.
2. Вызовы модальную форму в Delphi и в этот момент нажми на главной - ничего кроме звуковой ошибки не выйдет. В VC++ ещё заголовок окна начнёт мигать (FlashWindow).
3. Наконец - Есть программа называется Restorator - открой в ней Exe-шник какой-нибудь. Если там будет пункт Accelerators - то это VC++ или VBasic.

Удачи!


 
Supra   (2002-11-11 20:05) [4]

Вот ведь как получается, что на моём компьютере программы на Delphi только мои???
Я все установленные программы (около 30!) перебробовал - у них всех этих "достоинств" нет! Только мои программы почему-то такие???
Ты что-то не то говоришь!


 
Игорь Шевченко   (2002-11-12 12:51) [5]

Supra (11.11.02 20:05)

Глаза имелось в виду, при просмотре двоичного файла.


 
Николай Быков   (2002-11-12 13:08) [6]


> Игорь Шевченко © (12.11.02 12:51)
> Supra (11.11.02 20:05)
>
> Глаза имелось в виду, при просмотре двоичного файла.

А я-то смотрю-смотрю на форму и думаю, чё ж это она не признаётся, кто её компилял...


 
Игорь Шевченко   (2002-11-12 13:42) [7]

Николай Быков © (12.11.02 13:08)

Лучше на девушек смотри :-) Оно приятнее :-)


 
sniknik   (2002-11-12 13:49) [8]

2 Anar © (11.11.02 18:33)
пример
"Иллюстрация к книге "OpenGL в проектах Delphi"
по вашему методу не определяется (думаю есть еще ряд таких), скомпилирован на 6 дельфи и с системными меню все в порядке.

не найдеш могу его скинуть на мыло (он маленький даже exe 8кб).


 
~~~~   (2002-11-12 13:55) [9]

sniknik © (12.11.02 13:49)

Даже если используются только API-функции, в бинарном коде Вы можете найти фразу "Delphi". Специальные программы позволяют выбросить подобный мусор из кода.


 
sniknik   (2002-11-12 13:55) [10]

Ха, а вот "Runtime error" в коде присутствует, был такой метод определения не на паскале ли написана прога?, получается до сих пор действует. или Си это тоже вставляет?


 
sniknik   (2002-11-12 13:59) [11]

и Delphi есть фраза
SOFTWARE\Borland\Delphi\RTL FPUMaskValue

2 ~~~~ какие таке специальные программы? интересно. ты не в$%%&@ся ты пальцем покажи. :-))


 
~~~~   (2002-11-12 14:01) [12]

>sniknik © (12.11.02 13:59)

Да вот сейчас на этой же страничке про одну такую говорят, ты посмотри список топиков форума.



 
sniknik   (2002-11-12 14:29) [13]

ты про ASPack чтоли? но чтото в описании не нашол об вырезании "мусора" только про архивирование и прицепе из саморазорхиватора.
размер это уменьшит, но раскрутив процесс в обратку получим тот же файл со всякими "вложениями", я неправ?


 
~~~~   (2002-11-12 14:32) [14]

> sniknik © (12.11.02 14:29)

Да, извини, немного не так сморозил.
Значка не видать!
Только сегодня прочитал на этом форуме об утилитке, перепутал.
Название простое, может кто подскажет.
Типа exe2bin.
Эх, забыл.


 
sniknik   (2002-11-12 14:47) [15]

не прикалываешся часом? exe2bin это еще досовский преобразователь в двоичную форму (из exe com сделать помоему).

вспомниш напиши это действительно интересно. (можно программы писанные на нелицензионном дельфи продавать, к примеру, раз не определяется, будеш говорить все на ASM-е писано :-)))


 
~~~~   (2002-11-12 14:49) [16]

>sniknik © (12.11.02 14:47)

А-а-а, тебе для этого.
Так ты ручками вытри "Delphi", впиши "~~~~~"


 
sniknik   (2002-11-12 14:59) [17]

Мне не для этого. привел как пример возможного применения (тоже тема недавно обсуждалась).

У меня к "мусору" классовая ненависть, чтобы это ни значило :-)). не пытайся отвертется и перевести тему, программу давай.


 
Игорь Шевченко   (2002-11-12 15:06) [18]

sniknik © (12.11.02 14:59)

У меня есть программа. Но я не дам (жадный)


 
sniknik   (2002-11-12 15:15) [19]

а ты подари. так обманеш свою природную склонность и прослывеш хорошим.


 
Anar   (2002-11-12 21:34) [20]

2 sniknik:
Программа на OpenGL - это WinAPI - это исключаетя.


 
Anar   (2002-11-13 18:34) [21]

Игорь Шевченко © нас дразнит, у него нет такой программы.


 
sniknik   (2002-11-13 18:58) [22]

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

Anar © (12.11.02 21:34)
WinAPI исключается? но програм на нем довольно много. А Kol ? там же тоже самое будет.


 
Anar   (2002-11-13 19:21) [23]

WinAPI исключается, т.к. программы написанные на WinAPI на C++ и Delphi - отличаются только синтаксисом, а структура MFC и VCL - этот как земля и небо.


 
sniknik   (2002-11-13 19:38) [24]

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

а ведь признаки есть типа тех же включений в код.


 
Anar   (2002-11-13 19:44) [25]

Так ему нужен конкретно компилятор или язык???
Автор!!! Открыл тему, а сам в ней не учавствуешь! Ты где?


 
Игорь Шевченко   (2002-11-14 09:26) [26]

Кусочек из той программы, которой у меня нет:

const
Delphi32V2_Magic : array[1..7] of Byte = ($55,$8B,$EC,$83,$C4,$F4,$E8);
Delphi3_Magic : array[1..7] of Byte = ($55,$8B,$EC,$83,$C4,$F4,$B8);
CBuilder5_Magic : array[1..13] of Byte = ($EB,$10,$66,$62,$3A,$43,$2B,$2B,
$48,$4F,$4F,$4B,$90);
....................
if (ImageInformation^.Compiler = cmpUnknown) OR
(ImageInformation^.Compiler = cmpDelphi3) then
{ test for Delphi }
if NOT ImageInformation^.Exe32 then begin
if PEImage.CheckMagicString(Pascal_Magic) then
ImageInformation^.Compiler := cmpBP70
else if PEImage.CheckMagicString(Delphi1_Magic) then
ImageInformation^.Compiler := cmpDelphi16
else if PEImage.CheckMagicString(BC45_Magic) then
ImageInformation^.Compiler := cmpBC45
else if PEImage.CheckMagicString(Delphi1_Magic1) then
ImageInformation^.Compiler := cmpDelphi16

end else
if PEImage.CheckMagicString(Delphi5_Magic) then
ImageInformation^.Compiler := cmpDelphi5
else if PEImage.CheckMagicString(Delphi3x_Magic) then
ImageInformation^.Compiler := cmpDelphi3
else if PEImage.CheckMagicString(BCB1_Magic) then
ImageInformation^.Compiler := cmpBCB
else if PEImage.CheckMagicString(BCB3X_Magic) then
ImageInformation^.Compiler := cmpBCB3x
else if PEImage.CheckMagicString(BCB5_Magic) then
ImageInformation^.Compiler := cmpBcb5
else if (ImageInformation^.Compiler = cmpUnknown) then
if PEImage.CheckMagicString(Delphi32_Magic) then
ImageInformation^.Compiler := cmpDelphiUnk;
if (ImageInformation^.Compiler = cmpUnknown) then
{ test for Borland C 5 }
if NOT ImageInformation^.Exe32 then begin
{ We all know, 16-bit images don"t come to this point }
end else
if PEImage.CheckMagicString(BorlandC5_Magic) then
ImageInformation^.Compiler := cmpBc5;
.....
function DisplayCompiler : String;
begin
with ImageInformation do
case Compiler of
cmpDelphi16:
Result := "Delphi 1";
cmpDelphi2:
Result := "Delphi 2";
cmpDelphi3:
Result := "Delphi 3";
cmpDelphi4:
Result := "Delphi 4";
cmpDelphi5:
Result := "Delphi 5";
cmpDelphiUnk:
Result := "Delphi ?";
cmpMsc:
Result := "MS C";
cmpMsvc:
Result := "MSVC";
cmpMsvcpp:
Result := "MSVC++";
cmpBc5:
Result := "BC++ 5";
cmpBcb5:
Result := "BCB 5";
cmpBcb:
Result := "C++ Builder";
cmpBCB3x:
Result := "BCB 3?";
cmpBC45:
Result := "BC++ 4.5";
cmpBP70:
Result := "BP 7.0";
else
Result := "";
end;
end;



 
sniknik   (2002-11-14 12:14) [27]

:о(( не смог себя пересилить? да.., против природы не попреш. (Игорь Шевченко © (12.11.02 15:06))


 
Игорь Шевченко   (2002-11-14 12:32) [28]

sniknik © (14.11.02 12:14)

Это ж кусочек...


 
Anar   (2002-11-14 14:08) [29]

Где кусочек, там и всё остальное.
Ну, что подождём sniknik? Подождём...


 
sniknik   (2002-11-14 14:57) [30]

Подождем, может его и проймет когданибудь. Кстати "кусочек" занимается только определением, а какой вырезанием? И как вырезает, просто $F6 метки забивает или "компонует" программу за счет этого мусора?
ответь (межеш без секретных сведений и кода) поверю на слово. :-))


 
Игорь Шевченко   (2002-11-14 16:04) [31]

sniknik © (14.11.02 14:57)

Что за вырезание ? :-)


 
sniknik   (2002-11-16 22:28) [32]

Игорь Шевченко © (14.11.02 16:04)
Извиняюсь немного отвлекся :-). Вы немного невнимательно читали ветку. Начало только про определение, но это не интересно, все эти метки компиляторов которые позволяют определится занимают место (мусор) но ни для чего не нужны. Так вот шол уже разговор о программе которая их вырезает (вернее о почти невозможности ее существования) когда вы вклинились с тем что у вас она есть но не поделитесь на том основании, что вас жаба душит. ну не совсем так, но близко тексту. :-)) перечитайте ветку, поймете.

Под вырезанием я понимаю не просто забой меток какими нибудь символами, а полное удаление (с уменьшением размера). Естественно программа должна остатся рабочей. :)



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2002.12.09;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.53 MB
Время: 0.008 c
1-28088
antoniz
2002-11-28 10:04
2002.12.09
Подскажите по QuickReport


1-28065
Arhangel
2002-11-27 19:42
2002.12.09
Package


3-27856
Matr
2002-11-20 07:46
2002.12.09
Не все сохраняет после транзакции


14-28274
solder
2002-11-19 13:06
2002.12.09
комплексное число


1-28113
SmashFX
2002-11-28 13:33
2002.12.09
работа с записью





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский