Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
 
eliseys
0 / 0 / 0
Регистрация: 18.11.2016
Сообщений: 7
#1

Чем можно открыть программку и посмотреть формулу зарытую в ней - Delphi

19.11.2016, 11:30. Просмотров 520. Ответов 27
Метки нет (Все метки)

Привет Всем!
Да простят меня админы и прежде чем обвинять меня в намерении взлома, напишут как тогда решить мой трабл не нарушая правил форума.
Есть программка (экзешная), написанная ещё в 2001 году, как написал один добрый человек в Делфи, в ней забиты определённые коэффициенты, которые с тех пор изменились.
Хочу это исправить.
Пытался открыть её через IDA, блокнот, а там - абракадабра.
Подскажите, пожалуйста, чем можно хотя бы открыть прогу, посмотреть формулу (пересчёта веса из влажного в сухой) и я в экселе сделаю то, что мне нужно.
Файл не выкладываю, ибо админы ругаются (если админы тему из раздела "Си" не удалили, то она там лежит. Называется "Суточный").
Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2016, 11:30
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Чем можно открыть программку и посмотреть формулу зарытую в ней (Delphi):

Можно ли открыть exe файл и посмотреть его код?
у меня есть .exe файл программы, созданный в делфи, можно как-то открыть его в...

Можно посмотреть meil?
Здравствуйте! Вот пишу прогу в ней определенный текст отсылается на meil. Сам...

Где можно посмотреть информацию о модулях?
Есть подобная информация в спарвочной системе. Или где на сайте. Добавлено...

Таблицы MyISAM: чем их можно открыть, чтобы посмотреть и отредактировать?
Здраствуйте! Я новичек в базах данных. У меня есть разные файлы с...

Какой программой можно открыть и посмотреть joomla шаблоны?
ну например html можно конечно и через блокнот открыть но можно там дрим вивер...

Подскажите новичку чем можно посмотреть внутренности файла CLASS ?
Уважаемые проффи , подскажите новичку каким редактором можно смотреть и...

27
Nanotentacle
329 / 212 / 93
Регистрация: 20.10.2016
Сообщений: 977
19.11.2016, 11:49 #2
eliseys, вам надо провести декомпиляцию и разобраться, где лежат эти коэффициенты. Скажу честно, если вы с этим дел не имели, то задача будет нетривиальной и едва ли осуществимой.
0
eliseys
0 / 0 / 0
Регистрация: 18.11.2016
Сообщений: 7
19.11.2016, 12:54  [ТС] #3
И всё же.
Чем можно провести декомпиляцию?
Я нашёл декомпилятор? простейший, называется Resource Tuner. Он редактирует, к сожалению, только интерфейс.
Раскладывает программку достаточно чётко.
Думаю есть такие же, которые смогут разложить программульку полностью, в том числе и выудить формулу.
0
Pro_grammer
Модератор
6135 / 2213 / 437
Регистрация: 24.04.2011
Сообщений: 3,872
Записей в блоге: 10
19.11.2016, 14:28 #4
Цитата Сообщение от eliseys Посмотреть сообщение
Чем можно провести декомпиляцию?
Вам уже в 3-й раз сообщают, о недопустимости обсуждения взлома программ на этом форуме!
0
D1973
Модератор
3268 / 2316 / 1160
Регистрация: 21.01.2014
Сообщений: 9,631
Записей в блоге: 3
Завершенные тесты: 1
19.11.2016, 14:58 #5
eliseys, завязываем обсуждать способы взлома! Скажите другое: что мешает эту программу просто переписать? 15 лет программе - на пенсию ей пора!
0
HiredKiller
76 / 76 / 39
Регистрация: 17.02.2016
Сообщений: 453
19.11.2016, 15:34 #6
ваш софт намного проще написать с нуля чем что то переписывать
0
Cyborg Drone
Модератор
5249 / 3116 / 2432
Регистрация: 17.08.2012
Сообщений: 10,070
19.11.2016, 17:50 #7
Цитата Сообщение от eliseys Посмотреть сообщение
а там - абракадабра
eliseys, полагаю, Вы не в полной мере осознаёте сложность поставленной задачи.

Итак,

Программа в формате .exe не содержит исходного кода программы, поэтому так просто Вы в ней никаких формул не найдёте.

При декомпиляции программы, например, с помощью IDA, получается вовсе не исходный код. Объяснение. Компилятор, например, Delphi, переводит проект Delphi (а это не только текст программы, но ещё и внешний вид окон программы, реакция на всеразличные события, всяческие связи программы с другими программами, да мало ли что ещё в проекте понапихано) в машинный код, пригодный для исполнения на целевой платформе, в Вашем случае - для ОС Windows, работающей на IBM PC - совместимом компьютере на базе процессоров семейства i80x86. Различные элементы машинного кода содержат или команды в формате процессора i80x86, или какие-либо данные, которые, к слову, могут и не содержаться в исходном коде программы, а добавляться компилятором для тех или иных целей. Короче, мешанина двоичных чисел, записанная в .exe-файл, на исходный код программы даже издали не смахивает.

Универсальные средства декомпиляции программ, например, IDA, пытаются из мешанины цифр в .exe-файле создать програму на языке низкого уровня, в Вашем случае, на Ассемблере для процессоров семейства i80x86. Если Вы, так скажем, не полностью владеете языком Ассемблер и не ориентируетесь в аппаратной части компьютера на уровне отдельных устройств (ну там, знание всяких DMA-контроллеров, видеокарт, контроллеров ввода-вывода и прочая и прочая и прочая, хотя бы на уровне уравления ими с помощью ассемблерных комманд), то генерируемые, например, IDA, листинг программы на ассемблере, всяческие там перекрёстные ссылки, взаимосвязи и прочая и прочая и прочая для Вас будут казаться белибердой и вряд ли помогут Вам изменить коэффициенты в формуле. Для Вас это будет столь же бессмысленное действие, ка если бы Вы открыли .exe-файл с помощью блокнота. Ой, что я говорю, это бессмысленное действие Вы уже делали.

Можно применить специализированный декомпилятор, для программ, созданных в среде Delphi, таковым является, практически без альтернатив, декомпилятор DeDe. Но - не обольщайтесь. Ему далеко не всегда удаётся из горы ассемблерных комманд сформировать проект в Delphi, который после повторной компиляции будет делать то же самое, что и программа, написанная в 2011 году.

Моё заключение. Без грамотного и хорошо оплачиваемого программиста, владеющего реверс-инжинирингом, у Вас ничего не выйдет.

На данном форуме Вам не помогут, поскольку, к примеру, Ваших (фактически устных) заверений о том, что программа не защищена авторскими правами, недостаточно. Тем более, если у программы есть автор (либо его правопреемник), то, по законодательству РФ, программа защищена авторским правом. Менять код программы или выяснять особенности алгоритма её работы возможно только с официального согласия автора.

Ищите программиста. Надеюсь, что всё для Вас пройдёт тихо и гладко, поскольку автор программы Ваших действий не заметит, и поэтому не пришлёт к Вам судебного рыцаря без страха и упрёка, но с широко протянутым в направлении Вашего кармана забралом.
1
eliseys
0 / 0 / 0
Регистрация: 18.11.2016
Сообщений: 7
19.11.2016, 18:41  [ТС] #8
Как Вы могли заметить программулина без какой-либо защиты - раз.
Представляет она интерес только для узкой группы людей - двух человек, для конкретных условий. За пределами этой группы она не представляет никакой ценности - два.
Как кто-то выразился - ей действительно пора на пенсию. 80% её оформления уже не имеет соответствия с действительностью. Она - как телеге пятое колесо. Её функции я хочу встроить напрямую в эксель, в котором находится основное тело вычислений. Хотелось бы реализовать это красиво, без таблиц соответствий или формул с добавочными коэффициентами, не страдать и не переносить вручную данные из неё.
Если это действительно сложно её разобрать, то надеюсь к "карме" того человека, кто помог мне прибавится +100500 баллов. Надеюсь в силу своего профессионализма он не затратил много времени, и шапка с него не упала.
Русские всегда гордились широтой своей души. А тут, как по мне - цепляние за "крохи".
Это всё-равно, что мне брать деньги с соседки-пенсионерки-бабки за то, что я ей кран отремонтировал или лампочку поменял в люстре.
0
Cyborg Drone
Модератор
5249 / 3116 / 2432
Регистрация: 17.08.2012
Сообщений: 10,070
19.11.2016, 19:24 #9
eliseys, это всё неважно. Ещё раз: если есть программа, то у неё есть автор, и, вне зависимости от того, заявлял ли автор своё право на эту программу или нет, защищена она ключом или нет, и вне зависимости от пожеланий самого автора, по законодательству РФ, авторские права автора на программу всё равно защищаются. По факту, поскольку у программы есть автор. Официально передать программу в общее пользование - занятие малоприятное и только через суд, чем автор вряд ли занимался, ведь так?

Форум наш - официальный, и нарушать законодательство РФ на форуме не следует ни в какой форме, поскольку до форума в этом случае можно домотаться в плане того, что на форуме нарушается закон, и эту преступную лавочку следует прикрыть или передать в надёжные руки. Вам не приходило в голову, что могут найтись люди, не обладающие широкой душой, но желающие захапать популярный ресурс в интернете? Рисковать форумом, нарушая по Вашей просьбе законодательство РФ, согласитесь, просто подло. Нельзя быть широким душой за чужой счёт.

Если Вам известен алгоритм работы программы (так понимаю, основное - это формула расчёта усушки, с какими-то там коэффициентами), создайте тему в соответствующем разделе (эксель, дельфи... Не знаю, что именно Вам необходимо) и попробуйте описать требуемый алгоритм работы. В написании программы с нуля Вам, скорее всего, помогут.
0
eliseys
0 / 0 / 0
Регистрация: 18.11.2016
Сообщений: 7
19.11.2016, 20:39  [ТС] #10
Cyborg Drone, Вы же сами упомянули понятие реверс-инжиниринг. Это совершенно другая статья - не взлом ПО.
Вы видели пользовательское соглашение?
В программе нет ни слова об авторстве, ни внутри, ни "снаружи".
Тем более мне не нужны исходники программы, мне нужно выудить формулу. Те формулы, которые я нашёл в учебниках не согласуются с ней. Влажность 38,55% типа "нулевая". У меня пока найти чёткую закономерность не удалось. Устанавливать матстатистику посчитал слишком затратным делом из-за одной формулы.
Приложил файл. Там первый столбец данных влажность. Во втором столбце - изменение заданного веса (на входе 1000 тонн). Например: при влажности 38% вес 1000 тонн меняется на 1015 тонн. График приходит к нулю при 100% влажности. Возможно кто-то разгадает зависимость.
Заранее благодарен.
0
Вложения
Тип файла: xlsx 123.xlsx (16.0 Кб, 2 просмотров)
Cyborg Drone
Модератор
5249 / 3116 / 2432
Регистрация: 17.08.2012
Сообщений: 10,070
19.11.2016, 21:42 #11
eliseys, Вы плохо читали ГК РФ, главу 70. Ещё раз. Для законов РФ совершенно не важно, есть пользовательское соглашение или нет, есть ли в программе упоминание об авторстве или нет, и вообще, известен автор или нет.

Статья 1259. Объекты авторских прав:
Для возникновения, осуществления и защиты авторских прав не требуется регистрация произведения или соблюдение каких-либо иных формальностей
Чувствуете? Если есть произведение, этим самым авторским правам автор и не требуется! Для справки: программы, с точки зрения закона, являются произведениями. Для того, чтобы произведение не было объектом авторского права, оно должно либо являться народным творчеством (вряд ли удастся доказать, что эта программа - фольклор), либо, если автор подал заявление в суд, и суд принял решение считать произведение общедоступным (в этом случае некоторые авторские права могут у автора сохраниться, зависит от решения суда), либо - при отсутствии преемников - за давностью лет, срок не знаю, но что-то порядка 50 лет.

И, если можно, то прекратим этот крючкотворский диалог. Законодательство РФ в плане авторского права - весьма скользкая штука, и при умелом использовании может вытрясти деньги за нарушение авторских прав на любое, пусть с виду и пустячное, произведение, или, наоборот, может защитить от претензий ложных правообладателей. А вот при легкомысленном отношении к законодательству РФ можно, как минимум, пострадать материально, казалось бы, ни за что и на пустом месте.

Вернёмся к Вашей задаче. Вытащить формулу из программы (если возможно) или аппроксимировать функцией вот эту таблицу

02232
101868
201536
301234
40963
50724
60516
70339
80194
9081
1000

Я правильно сформулировал основную цель Вашего вопроса? Если да, то с какой точностью требуется аппроксимировать данные?
0
qwertehok
2195 / 2185 / 597
Регистрация: 29.08.2013
Сообщений: 14,592
19.11.2016, 21:55 #12
если решите переписать - обращайтесь
0
Cyborg Drone
Модератор
5249 / 3116 / 2432
Регистрация: 17.08.2012
Сообщений: 10,070
20.11.2016, 02:40 #13
Лучший ответ Сообщение было отмечено eliseys как решение

Решение

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

Для Ваших данных произвёл регрессию методом наименьших квадратов. Полагал, что более всего подойдёт экспоненциальная регрессия, однако, подошла кубическая регрессия, на втором месте - квадратичная регрессия.

Квадратичная регрессия.
Аппроксимация: y=0.15666464x2−38.00680337x+2232.81877095
Средняя ошибка аппроксимации: 0.16134089%

Кубическая регрессия.
Аппроксимация: y=0.00002421x3+0.15315372x2−37.87697296x+2231.80781945
Средняя ошибка аппроксимации: 0.06305945%

Сводная таблица результатов:

XТабличное значение YКвадратичная регрессияКубическая регрессия
1022322232.818770952231.80781945
21018681868.417201241868.37767175
32015361535.348559461535.72352917
42513811380.564086531380.98285413
53012341233.612845591233.99065358
63311491149.202052381149.52215461
73411221121.691779861121.98799676
83510951094.494836631094.76508524
93610681067.611222681067.85356531
103710411041.0409381041.25358225
113810151014.783982611014.96528131
1239989988.84035649988.98880776
1340963963.21005965963.32430685
1441938937.89309209937.97192384
1542913912.88945381912.93180401
1643888888.19914481888.2040926
1744864863.82216509863.78893489
1845840839.75851465839.68647614
1950724724.14020163723.86975084
2055616616.3551206615.8922887
2160516516.40327154515.77224745
2270339339.99926937339.17705852
2380194194.92819512194.22944594
24908181.190048881.07467158
251000−1.2151696−0.1420027

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

Если требуется что-то ещё, допустим, эта 1000 на входе как-то особенно влияет на данные, например, нелинейно, опишите, как, или приведите таблицы. Я ещё раз для Вас аппроксимирую Ваши данные.

Добавлено через 8 минут
А, нет, немножко есть несоответствие... При X=33 округлённый результат кубической регрессии будет на 1 больше табличного... Но, в принципе, поправимо, можно уменьшить коэффициент при x0 на, к примеру, 0.05, и будет полное соответствие табличным данным... Вообще, подозреваю, что приведённая Вами таблица - это не совсем то, что выдаёт программа, а округлённое до целого. Неплохо было бы, если возможно, посмотреть на таблицу с максимально точными данными.
1
eliseys
0 / 0 / 0
Регистрация: 18.11.2016
Сообщений: 7
20.11.2016, 11:36  [ТС] #14
Cyborg Drone, Огромное Тебе человеческое спасибо!
Точки как разделители десятичных и
Сегодня в 03:03.
какбэ намекают с кем имеешь дело. Для большей убедительности ещё нужна аватарка с бородой)

Так точно, программулька занимается округлением.
1000 была принята для удобства и ради "прочих равных условий", это вес грунта, использование любой другой величины не влияет на закономерность, а только на общий коэффициент, то есть если хочешь получить результат для 10000, то умножаешь ответ на 10. Но наверное более удобно было использовать хотя бы 10000 на входе, тогда в ответе те цифры, что были при 1000 в десятичных, переходят в целые. И получается следующее:
ВлажностьДля 1000Для 10000
0223222319
5204620463
10186818683
15169816981
20153615356
25138113808
30123412338
33114911494
34112211218
35109510946
36106810677
37104110411
38101510148
38,1101210122
38,2101010096
38,3100710070
38,4100410044
38,5100210018
38,69999992
38,79979966
399899889
409639632
419389379
429139128
438888881
448648637
458408396
507247238
556166159
605165158
654244236
703393393
752632629
801941944
851341339
9081813
9537366
10000

Подскажи, пожалуйста, чем проводил анализ.
Если несложно, то что покажет для этой таблицы? График вроде линейный.
В экселе получил y = (-16,4233)*x+1513,956
58564
59546
59,1544
59,2543
59,3541
59,4539
59,5537
59,6536
59,7534
59,8532
59,9531
60529
60,1527
60,2525
60,3524
60,4522
60,5520
60,6519
60,7517
60,8515
60,9513
61512
61,1510
61,2508
61,3507
61,4505
61,5503
61,6502
61,7500
61,8498
61,9496
62495
62,1493
62,2492
62,3490
62,4488
62,5487
62,6485
62,7483
62,8482
62,9480
63479
64463
65447
66431
67415
68400

Больше на голову Тебе лезть не буду, обещаю)
0
Cyborg Drone
Модератор
5249 / 3116 / 2432
Регистрация: 17.08.2012
Сообщений: 10,070
20.11.2016, 15:03 #15
Лучший ответ Сообщение было отмечено eliseys как решение

Решение

Для влажности
Кубическая регрессия

y = 0.00020816x3 + 1.53735762x2 - 379.01054658x + 22319.29852216

02231922319.29852216
52046320462.70574972
101868318683.1369785
151698116980.74832893
201535615355.69592147
251380813808.13587656
301233812338.22431462
331149411493.6135954
341121811218.30688576
351094610946.11735612
361067710677.04625542
371041110411.09483265
381014810148.26433676
38.11012210122.15298623
38.21009610096.07285872
38.31007010070.02395545
38.41004410044.0062777
38.51001810018.0198267
38.699929992.0646037
38.799669966.14060995
3998899888.55601671
4096329631.97112148
4193799378.51090001
4291289128.17660128
4388818880.96947425
4486378636.89076788
4583968395.94173114
5072387238.18530556
5561596158.85796517
6051585158.11583041
6542364236.11502173
7033933393.01165956
7526292628.96186435
8019441944.12175653
8513391338.64745656
90813812.69508486
95366366.42076189
1000−0.01939192
Как бы линейный график
Больше всего подошла квадратичная регрессия. Ошибки меньше, чем у линейной. Кубическая регрессия не подошла: большие ошибки на краях диапазона.

y = 0.13728028x2 - 33.64111632x + 2053.05418675

58564563.68029756
59546546.10097384
59.1544544.3581423
59.2543542.61805636
59.3541540.88071603
59.4539539.1461213
59.5537537.41427219
59.6536535.68516867
59.7534533.95881076
59.8532532.23519846
59.9531530.51433176
60529528.79621067
60.1527527.08083519
60.2525525.36820531
60.3524523.65832103
60.4522521.95118236
60.5520520.2467893
60.6519518.54514184
60.7517516.84623999
60.8515515.15008374
60.9513513.4566731
61512511.76600807
61.1510510.07808864
61.2508508.39291481
61.3507506.71048659
61.4505505.03080398
61.5503503.35386697
61.6502501.67967557
61.7500500.00822977
61.8498498.33952958
61.9496496.673575
62495495.01036602
62.1493493.34990264
62.2492491.69218487
62.3490490.03721271
62.4488488.38498615
62.5487486.7355052
62.6485485.08876985
62.7483483.44478011
62.8482481.80353598
62.9480480.16503745
63479478.52928452
64463462.32276359
65447446.39080321
66431430.73340339
67415415.35056413
68400400.24228542

Для анализа пользовался вот этим ресурсом: МНК и регрессионный анализ Онлайн + графики.
Если есть предположение насчёт общего вида аппроксимирующей функции, отличной от общего вида таковых, используемых на указанном ресурсе, можно будет написать программу для регрессивного анализа по заданной функции.

И обращайтесь. Ничего Вы мне на голову не лезли.

Не по теме:

В решении задачи - вся соль!" - Полагают многие. Но я полагаю иначе:
Мудрость в том, чтобы, зная решение, найти подходящую задачу.

Пит Хейн

1
eliseys
0 / 0 / 0
Регистрация: 18.11.2016
Сообщений: 7
20.11.2016, 22:09  [ТС] #16
Cgfcb,rb. Ye;ysq htcehc.
0
Cyborg Drone
Модератор
5249 / 3116 / 2432
Регистрация: 17.08.2012
Сообщений: 10,070
20.11.2016, 22:19 #17
Yt yf xtv/ Ecgt[jd/
0
northener
21.11.2016, 02:34
  #18

Не по теме:

Цитата Сообщение от eliseys Посмотреть сообщение
Cgfcb,rb. Ye;ysq htcehc.
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
Yt yf xtv/ Ecgt[jd/
Юстас Алексу
и Алекс Юстасу

0
Cyborg Drone
21.11.2016, 15:09
  #19

Не по теме:

northener, только никому... Это суперсекретный шифр, называется <Alt>+<Shift>...

0
DenNik
21.11.2016, 15:27     Чем можно открыть программку и посмотреть формулу зарытую в ней
  #20

Не по теме:

я использую диалект <Ctrl>+<Shift>. IMHO, удобнее

0
21.11.2016, 15:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2016, 15:27
Привет! Вот еще темы с ответами:

Чем можно открыть и прочитать tpu файл?
Чем можно открыть и прочитать tpu файл? Был утерян pas файл, но сохранился tpu

Чем можно попытаться открыть формат .IFF ?
Попались файлы формата .IFF от 90-го года. В бинарном виде начало файла...

Кто знает чем можно открыть файл mtf
это расширение используется для тестовой программы (учебной) mytest. это файл с...

Просьба посмотреть формулу, подсказать
Доброго времени суток, есть вот такие задачи: 1. Необходимо указать номер...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru