![]() |
eXeL@B —› Вопросы новичков —› Помогите откомпилировать |
Посл.ответ | Сообщение |
|
Создано: 02 августа 2007 18:13 · Поправил: wasmkv · Личное сообщение · #1 Прошу сильно не пинать, поскольку делаю только первые шаги по созданию прог на асме. Нашел в сети статейку про написание кейгена для Fant0m CrackMe №4. Скачал также шаблон кейгена и сам кейген. Тут на сайте скачал MASM 9.0. Информации по компиляции найти не смог и принялся компилировать сам. Для этого создал .bat файл следующего содержания: d:\masm\masm32\bin\ml.exe /c /coff keygen.asm d:\masm\masm32\bin\link.exe /subsystem:windows keygen.obj pause В результате файлы keygen.obj и keygen.exe создаются но не работает. В ехе файле нет ресурсов. Подскажите пожалуйста что не так делаю и где можно прочитать подробнее о компиляции (чтоб понятно для новичков). В атаче результат работы а также архив с оригинальными файлами (размер 25кб) ![]() |
|
Создано: 02 августа 2007 18:15 · Поправил: Satyr · Личное сообщение · #2 Где аттач? А вообще, если есть ресурсы, то батник должен быть примерно таким: d:\masm\masm32\bin\ml.exe /c /coff /Cp keygen.asm d:\masm\masm32\bin\rc.exe keygen.rc d:\masm\masm32\bin\link.exe/SUBSYSTEM:WINDOWS keygen.obj keygen.res ну и естественно, файл ресурсов должен при исходнике быть- keygen.rc ![]() |
|
Создано: 03 августа 2007 09:03 · Поправил: wasmkv · Личное сообщение · #3 Извиняюсь, почемуто не получилось приатачить архив, пробую ещё раз. Аттач после правки сообщения куда-то исчезает. Satyr пишет: А вообще, если есть ресурсы, то батник должен быть примерно таким: При запуске вышеуказаного батника получаю ошибку: D:\masm>d:\masm\masm32\bin\ml.exe /c /coff /Cp keygen.asm Microsoft (R) Macro Assembler Version 6.14.8444 Copyright (C) Microsoft Corp 1981-1997. All rights reserved. Assembling: keygen.asm D:\masm>d:\masm\masm32\bin\rc.exe keygen.rc D:\masm>d:\masm\masm32\bin\link.exe/SUBSYSTEM:WINDOWS keygen.obj keygen.res Неверно задано имя папки. D:\masm>pause Для продолжения нажмите любую клавишу . . . MASM у меня находится d:\masm\masm32 Исходник и .rc файл - d:\masm <img src="img/attach.gif"> <SCRIPT type=text/javascript>dfl("files/","2ff1_02.08.2007_CRACKLAB.rU.tgz");< /SCRIPT> - MyKeygen.rar ![]() |
|
Создано: 03 августа 2007 09:46 · Личное сообщение · #4 Пришлось создать новое сообщение, чтобы приаттачить архив (размер 25кб) ![]() ![]() |
|
Создано: 03 августа 2007 15:08 · Личное сообщение · #5 Во первых пользуйся лучше qeditor'ом. Чесслово проще. Но дело не в этом. В масме мне удалось собрать этот кейген следующим образом. Сначала я переименовал Keygen.rc в rsrc.rc. сам не знаю зачем. Потом я исправил приведенную там ссылку на иконку на настоящее имя файла ico. то есть "GFx/Keymaker.ico" на "Keymaker.ico". После этого скомпилил файл ресурсов получился rsrc.res. А далее в qeditor'е открываю keygen.asm потом Project-> Build all и - все срастается! Кейген работает! ![]() |
|
Создано: 03 августа 2007 15:20 · Личное сообщение · #6 |
|
Создано: 03 августа 2007 16:28 · Личное сообщение · #7 Я компиляю батником так, тут и код на асме и все сразу: ;@echo off
----- Уважайте других и пишите грамотно. ![]() |
|
Создано: 03 августа 2007 16:31 · Личное сообщение · #8 wasmkv пишет: При запуске вышеуказаного батника получаю ошибку: D:\masm>d:\masm\masm32\bin\ml.exe /c /coff /Cp keygen.asm Microsoft (R) Macro Assembler Version 6.14.8444 Copyright (C) Microsoft Corp 1981-1997. All rights reserved. Assembling: keygen.asm D:\masm>d:\masm\masm32\bin\rc.exe keygen.rc D:\masm>d:\masm\masm32\bin\link.exe/SUBSYSTEM:WINDOWS keygen.obj keygen.res Неверно задано имя папки. извиняюсь, это я здесь лажанул. Все пофиксится, если между link.exe и /SUBSYSTEM вставить пробел. Также, если у тебя не прописаны пути к ассемблеру в autoexec.bat, все исходники нужно поместить в папку masm32\bin. А вообще, лучше настроить среду для компиляции, чтобы так не мучиться: 1) в autoexec.bat указываешь путь к ассемблеру и линкеру, то бишь к ml.exe и link.exe следующим образом: path=d:\masm\masm32\bin 2) перезагружаешь компец, чтобы изменения вступили в силу. 3) создаешь универсальный батник. Для проги с ресурсами он будет таким: ml /c /coff /Cp %1.asm rc %2.rc link /SUBSYSTEM:WINDOWS /LIBPATH:d:\masm32\lib %1.obj %2.res 4) называешь батник каким-нибудь звучным именем, например death.bat 5) теперь ты можешь с его помощью скомпилить любую прогу с ресурсами следующим образом: допустим, прога у тебя называется keygen.asm, а файл ресурсов - resouce.rc; через FAR manager заходишь в папку с исходником и в командной строке вводишь следующую команду: death keygen resource расширения, естественно, указывать не нужно! для проги без ресурсов батник будет таким: ml /c /coff /Cp %1.asm link /SUBSYSTEM:WINDOWS /LIBPATH:c:\myasm\lib %1.obj ; я только не понял, нафига в этом кейгене кнопка "Generate"??? ![]() |
|
Создано: 03 августа 2007 16:50 · Личное сообщение · #9 Передаешь батнику в качестве параметра имя файла без расширения. Если есть ресурсы, то файл должен иметь имя вида "ИМЯТВОЕОФАЙЛА_res.rc". Дальше батник все сделает за тебя. ![]() ----- Уважайте других и пишите грамотно. ![]() |
|
Создано: 06 августа 2007 08:43 · Личное сообщение · #10 Спасибо всем откликнувшимся! Из всех вышеуказанных способов компиляции больше всех мне понравился описанный Satyr Сначала я откомпилировал просто батником, а потом настроил среду для компиляции по совету Satyr. Все сработало на ура. Способ предложенный Executioner тоже хорош, но мне как новичку, пришлось немного повозиться с изменением путей в батнике. Способ предложенный asmonavt мне показался сложноватым, хотя тоже заслуживает внимания. Satyr пишет: ; я только не понял, нафига в этом кейгене кнопка "Generate"??? Да, действительно в этом кейгене кнопка "Generate" не нужна и она там присутствует только потому что это как я понял из статьи универсальный шаблон кейгена, в который можно вставить свой алгоритм генерации серийника. Обрадовавшись первой успешной компиляции, я решил продолжить. В качестве следующей для компиляции я выбрал исходник TMGRS-EX.ASM (находится в качестве примера в TMG Ripper Studio) и описан в статье Перевод туториала к TMG Ripper Studio авторов Zarelle and FLogic, размещенной здесь на сайте. И опять неудача. Насколько я понял, файл не имеет ресурсов, то по совету Satyr: для проги без ресурсов батник будет таким: ml /c /coff /Cp %1.asm link /SUBSYSTEM:WINDOWS /LIBPATH:c:\myasm\lib %1.obj я создал батник no_res.bat следующего содержания: ml /c /coff /Cp %1.asm link /SUBSYSTEM:WINDOWS /LIBPATH:d:\masm\masm32\lib %1.obj ;MASM у меня d:\masm\masm32 А в самом файле TMGRS-EX.ASM изменил: include \masm32\include\windows.inc include \masm32\include\kernel32.inc include \masm32\include\user32.inc includelib \masm32\lib\kernel32.lib includelib \masm32\lib\user32.lib на include \masm\masm32\include\windows.inc include \masm\masm32\include\kernel32.inc include \masm\masm32\include\user32.inc includelib \masm\masm32\lib\kernel32.lib includelib \masm\masm32\lib\user32.lib В командной строке Total Commandera набрал команду cmd а затем в открывшемся окне набрал: D:\masm>no_res TMGRS-EX В результате получил следующее: D:\masm>ml /c /coff /Cp TMGRS-EX.asm Microsoft (R) Macro Assembler Version 6.14.8444 Copyright (C) Microsoft Corp 1981-1997. All rights reserved. Assembling: TMGRS-EX.asm TMGRS-EX.asm(15) : error A2004: symbol type conflict : wsprintfA TMGRS-EX.asm(15) : error A2192: symbol language attribute conflict : wsprintfA D:\masm>link /SUBSYSTEM:WINDOWS /LIBPATH:d:\masm\masm32\lib TMGRS-EX.obj Microsoft (R) Incremental Linker Version 5.12.8078 Copyright (C) Microsoft Corp 1992-1998. All rights reserved. LINK : fatal error LNK1181: cannot open input file "TMGRS-EX.obj" Подскажите пожалуйста, что я не так делаю или это ошибка в исходнике. А также хотелось бы узнать, как самому находить ошибки. В аттаче файлы no_res.bat, TMGRS-EX.ASM и готовый кейген. ![]() ![]() |
|
Создано: 06 августа 2007 09:06 · Личное сообщение · #11 |
|
Создано: 07 августа 2007 09:25 · Личное сообщение · #12 Спасибо Sturgeon все получилось! Спасибо Satyr, Executioner и asmonavt за помощь, а также отдельная благодарность создателю и администрации сайта и форума за отличный форум, где можно быстро получить ответы на интересующие вопросы. Тему я думаю закрывать пока не стоит, возможно в будущем у меня или ещё кого-нибудь из новичков появлятся подобные вопросы по компиляции. ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Помогите откомпилировать |