eXeL@B —› Софт, инструменты —› FoxPro наработки |
Посл.ответ | Сообщение |
|
Создано: 27 ноября 2012 12:09 · Поправил: VodoleY · Личное сообщение · #1 День добрый. Ребят, ни у кого в загашниках не осталось инфы по фоксу.. структура файла, коды инструкций в ПИ коде, описание цикла движка обработчика в дллке.. Тут прогу на фоксе дебажить прийдется, а я последний раз лет 8 назад фокс копал. заранее спасибо. ADD. (если чет буду находить, поскладирую линки) http://www.foxpert.com/docs/howfoxproworks.en.htm http://www.foxpert.com/docs/fxp.en.htm http://baiyujia.com/vfpdocuments/f_vhfox.asp (FOXPRO APP FILE STRUCTURE (UNDOCUMENTED) January 2012) ----- Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме.... | Сообщение посчитали полезным: vden |
|
Создано: 27 ноября 2012 12:11 · Личное сообщение · #2 |
|
Создано: 27 ноября 2012 12:16 · Личное сообщение · #3 |
|
Создано: 27 ноября 2012 14:06 · Личное сообщение · #4 |
|
Создано: 28 ноября 2012 08:39 · Личное сообщение · #5 |
|
Создано: 28 ноября 2012 08:41 · Поправил: VodoleY · Личное сообщение · #6 YDS ну вот КГ и делаю.. ток в 1ом из 6 ти условий гдето косяк. А дебагер ввиде пикод реально сделать заюзав вфп60.длл. просто крутить цикл обработки комманд. но то такое. ладно покопаю дальше. З.Ы. я вкурсе как поступать с фоксом вопрос топика был немного другого характера АДД. большую часть вроде сделал. если вменяемая инфа будет поделюсь. ----- Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме.... |
|
Создано: 30 ноября 2012 11:39 · Поправил: zabriskie · Личное сообщение · #7 VodoleY p-коды большинства инструкций можно найти в исходниках старенького FoxPro decompiler от Robert Plagnard. Там же есть информация (неполная) и о структуре файлов приложений и компилированных файлов. Дополнить её помогут китайцы (baiyujia.com). Описание структуры многих файлов есть на MSDN. p-код во многих случаях показывает также и Corso. | Сообщение посчитали полезным: VodoleY |
|
Создано: 30 ноября 2012 15:14 · Поправил: VodoleY · Личное сообщение · #8 Ну впринципи в общих чертах в статье, что в заголовке простенький пример описан. если отдизасмить VFP6R.DLL то конце файла 2-3 списка с опкодами инструкций. например .rdata:0C2F3334 dd offset aAbs ; "ABS"- тескт инструкции .rdata:0C2F3338 db 19h - пи код еще примеры //10 = //06 + //08 - //04 * //0C / //F7 -local var (names after code proc) Example F7 00 01 //FB - Const var FB sz text example FB 01 31 //55 - EOF //1C - endcase цикл подготовки процедуры к выполнению в длл-ке text:0C008FFB push ebx .text:0C008FFC push edi .text:0C008FFD mov edx, esi .text:0C008FFF call sub_C00903B .text:0C009004 or dword_C3097C0, eax .text:0C00900A call sub_C007A95 .text:0C00900F mov ecx, dword_C304004 .text:0C009015 cmp byte ptr [ecx], 55h //EndProc .text:0C009018 jnz short loc_C008FFB начиная с 50Н тут начинается сама программа 0x00000000 : FE F2 FF 20 02 01 00 00 00 B0 00 00 00 8F 00 00 þòÿ .....°..... 0x00000010 : 00 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .!.............. 0x00000020 : 00 00 00 00 00 00 00 94 11 00 00 00 00 25 00 00 .......”.....%.. 0x00000030 : 00 00 00 00 00 00 00 00 00 56 00 00 00 03 00 00 .........V...... 0x00000040 : 00 50 00 00 00 C2 8B 56 2B 11 00 00 00 FC 18 00 .P...‹V+....ü.. 0x00000050 : 0B 00 AE F7 00 00 07 F7 01 00 FE 0A 00 02 F8 03 ..®÷...÷..þ...ø. 0x00000060 : 01 F7 00 00 FE 03 00 55 02 00 06 00 4C 43 4E 41 .÷..þ..U....LCNA 0x00000070 : 4D 45 05 00 4C 43 5A 49 50 B1 00 A1 00 31 00 00 ME..LCZIP±.¡.1.. 0x00000080 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 65 ...............e 0x00000090 : 3A 5C 74 65 6D 70 5C 00 76 61 72 2E 66 78 70 00 :\temp\.var.fxp. 0x000000A0 : 65 3A 5C 74 65 6D 70 5C 76 61 72 2E 70 72 67 00 e:\temp\var.prg. 0x000000B0 : 00 29 00 00 00 8F 00 00 00 00 00 00 00 09 00 00 .)............. 0x000000C0 : 00 00 00 00 00 00 00 00 00 Тут впринципе сначала синганута FE F2 FF 20 02 01 дальше масив двордов, с нулевой базой считая от начала. инструкции парсятся по длинам относительно нормально, за исключением сложных выходов. 03 00 55 - выход, конец процедуры. в конце список переменных, для этой процедуры друг за дружкой в текстовом виде,. их индекс используюся внутри пикода F7 01 00 - 2ая переменна. F7- типа переменной. Пока не могу найти место в дллке, где хранятся в памяти текущие значения переменных. З.Ы. zabriskie громадное спасибо за сайтик, занятное чтиво ----- Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме.... |
|
Создано: 01 декабря 2012 21:02 · Поправил: zabriskie · Личное сообщение · #9 Я знаком со структурой компилированных файлов, поэтому нет необходимости пересказывать Christof Wollenhaupt. Странно, что вы не отметили его же "The FXP format". И уж если так хочется разобраться, что и где храниться и как выполняется, обратите внимание на массив указателей на процедуры обработки p-кода. | Сообщение посчитали полезным: VodoleY |
|
Создано: 02 декабря 2012 11:58 · Поправил: VodoleY · Личное сообщение · #10 zabriskie добавли в шапку линки с Вашей подачи найденные и еще раз спасибо. Я разбирал структуру фокса.. когда то ооочень давно, у мну тогда даже интернета не было жалкие воспоминания были в голове, освежил и дополнил Может эти ссылочки кому то время сэкономят. ADD если ктото будет присидать с sys(2007,str) то это crc16 CITT c $FFFF вот делфишный аналог Code:
----- Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме.... |
|
Создано: 04 декабря 2012 22:59 · Поправил: zabriskie · Личное сообщение · #11 О ссылках. Большинству это не нужно, а те, кто хоть немного сведущ во внутреннем устройстве VFP, знают это. P.S. Не вполне понял, причём тут crc16. Это то самое, где непонятный case ? Если нет, то возможно, что в вашем случае объектный код модифицирован так, что никогда не будет соответствовать восстановленному ReFox-ом коду. А может быть где-то другая часть кода модифицирует системную dll, и инструкция выполняется как-то не так. |
|
Создано: 05 декабря 2012 13:26 · Личное сообщение · #12 |
eXeL@B —› Софт, инструменты —› FoxPro наработки |
Эта тема закрыта. Ответы больше не принимаются. |