Приветствую всех. Исследую программу, вернее её базу данных, на предмет вытащить строки и сохранить в формате, понятном для винды. Сама прога досовская, никаких сообщений от винды не принимает, spy++ отказывается показывать сообщения и соответственно, она не реагирует на них. Т.е. средствами винды получить текст не могу Единственно реагирует только на кнопки курсора (клавиатура). Сами строки в базе выглядят так: №-8$=WпZПbЭЬ%.7 - это первая строка. далее идут строки: (это собственно нужная информация) dmvHQZЈ¬µѕ( —ZEWXkyk‹„‘њ`ir{DMV_Ё±єѓЊЃЊзрбРЛФЭ&;,eC]"'58LAZaКbТЏ 7 dmvHQZЈ¬µѕ(5)HEZRcx“‚‘‘ѕ§`ir{DMV_Ё±єѓЊ‡ћзрлУЛФЭ&6-eC]"'58LAZaКaТ‰ 7 dmvHQZЈ¬µѕ4;—LZFMhmi‹„ђ’`ir{DMV_Ё±єѓЊ„ЌчрщВЛФЭ&6)eC]"'58LAZaКaТ€ 7 dmvHQZЈ¬µѕ4;—@KFNtguЃ*3<`ir{DMV_Ё±єѓЊ‡ЊзрнУЛФЭ&;/ eC]"'58LAZa КgТѓ 7 dmvHQZЈ¬µѕ4;—ONPXmguЃ*3<`ir{DMV_Ё±єѓЊ„ЊGрпЦЛФЭ&9+eC]"'55CMшjД|Т%.7 dmvHQZЈ¬µѕ4;—HKU]vkpЊ›™њє`ir{DMV_Ё±єѓЊ‡ЋчриТЫФЭ&6)eC]"'55LAZБjЭi+.7 завершается файл такой строкой: RRRRRRRRRRRRRRRRRRRR`g|`|`bbaRR bc|kj}bcfRWRWRUU Пытался в разных кодировках смотреть и word'ом, и lister'ом, и dos navigator'ом - бесполезно. Судя по всему, это не шифрованый и не сжатый файл. Можно ли "расшифровать" эти строки?
лучше выложить нативный кусочек в зипе, тк по тексту не всегда можно восстановить бинарный вид. мож, база штфрованая?
В аттаче сильно урезаные 3 файла данных и exe для их просмотра. Показывать будет не все пункты, но первые показывает (проверил) Эти три базы чуть по другому выглядят (другая информация), но наверное принцип кодировки тот же. А файл, из которого были строки в первом посте, блокнотом не режется, надо будет программку сделать, резать вручную. А мож это совсем простая задача, не знаю. С досовскими (а может консольными) программами совсем незнаком. _2025536880__gts.rar
Вот ещё другой список, тоже с exe для просмотра. В нем строки выглядят как в первом посте. _1489718763__list.zip
ну, все ясно - такое просто так не отдают конечно, оно шифрованное, другое дело - мож несложно расшифровать, но это нужно прогу копнуть (она досовая).
Пробовал в windbg загрузить и пошагово прогнать - бесполезно. Несколько функций вызываются виндовых (экран проги при этом пустой), затем на очередном шаге разом подгружаются несколько модулей и информация уже в окне. Где происходит загрузка и расшифровка - не видно. Olly тоже не помогла (вообще отказалась грузить exe). Или ставить FineReader, принтскрин и картинку на распознавание текста? )) Много править вручную придётся (файл данных более 8 Мб) Хотя, с другой стороны, если файл шифрованый, почему так много повторяющихся символов. Непонятно.
cresta В папке с FAR'ом есть файл Addons\Tables\Russian\dkoi8.reg Если при просмотре файла ngts.09 выбрать эту кодировку(Shift+F8), то в файле становятся видны регулярно идущие строчки ИМЯ(CB D4 DD). Судя по ним размер записи 79 байт. Ну а шифрование сложнее XOR'а там вряд ли используется.
olly для доса отдыхает. в турбо дебуггере от бормана прога работает, хотя она тоже с заморочкой... но глаза уже склеваются а может и вообще лучше попробовать как Black_mirror написал - фамилии известны (у первой первый символ - пробел, у второй возможно цэ латинское, поэтому они перед "а" и вылезли) - поиграть немного в разведчика - и все будет ок
и для доса есть другие грабберы - грабят в текстовом формате - когда-то оч. давно я так выдрал базу мфо из одной проги ) все! пора в люлю!
shoo ага, 52 подходит. А вот другим файлом не катит )) Там если поксорено, то с числом, зависящим от позиции символа в строке (смещения от начала). Т.е. "АБА" кодируется в "#+" . Если, как заметилBlack_mirror строка 79 символов, то можно представить весь текст как матрицу 79 х [XXX]. Наверное проще всего для каждого из 79 столбцов найти для каждой буквы её "код" и механически заменить его.
shoo Ну, ты даешь, в три часа ночи! cresta Матрица составлена по такому принципу - первый байт 153, дальше плюс 9 (162, 171, 180, 189). Когда доходит до 252, то следующее число будет 5, так как (252 + 9) mod 256 = 5. И так далее. Вот программа на VBA, расшифровывающая файл NGTS.09. Код (Text): Sub Decrypt() Dim S As String * 79, A& Open "c:\list\NGTS.09" For Random As #1 Len = 79 For j = 1 To 5 Get #1, j, S A = 153 For i = 1 To 79 Mid$(S, i, 1) = Chr$(Asc(Mid$(S, i, 1)) Xor A) A = (A + 9) And &HFF Next i Debug.Print WordBasic.DOSToWin$(S) Next j Close #1 End Sub P.S.Для тех, кто незнаком с VBA: нажмите в Word'е Alt+F11, Insert > Module, вставьте исходник и запустите (F5). Затем Ctrl+G, чтобы посмотреть ответ.
cresta Пробовал в windbg загрузить ... бесполезно ... Olly тоже не помогла Возьми td.exe из borland c++ v5.0. Похоже что программы обе откомпилированы им с кое какой отладочной информацией. Например код из GTS.EXE Код (Text): ... Read: cs:11EF C8040000 enter 0004,00 cs:11F3 1E push ds cs:11F4 B82224 mov ax,2422 cs:11F7 8ED8 mov ds,ax #GTS#278: cs:11F9 C706DE020000 mov word ptr [02DE],0000 #GTS#280: cs:11FF 16 push ss cs:1200 8D46FE lea ax,[bp-02] cs:1203 50 push ax ; unsigned *numread cs:1204 684C9A push 9A4C ; unsigned count cs:1207 FF36DC02 push word ptr [02DC] ; \ void __far *buffer cs:120B FF36DA02 push word ptr [02DA] ; / cs:120F FF36D802 push word ptr [02D8] ; int handle cs:1213 9AA607ED19 call far __dos_read cs:1218 83C40C add sp,000C cs:121B 8946FC mov [bp-04],ax #GTS#282: cs:121E 684C9A push 9A4C cs:1221 FF36DC02 push word ptr [02DC] ;\ buffer cs:1225 FF36DA02 push word ptr [02DA] ;/ cs:1229 0E push cs cs:122A E865F6 call DeCode ; !!! cs:122D 83C406 add sp,0006 ... PS разумеется перед загрузкой в td необходимо распаковать pklite -x gts.exe
В Delphi 6 его случайно нет? А то bc++ нет, есть delphi, но ставить его, если там не окажется этого дебаггера, как-то не хочется Уж больно тяжёлый он.