Посл.ответ |
Сообщение |
Ранг: 33.6 (посетитель) Активность: 0.04↘0 Статус: Участник
|
Создано: 14 марта 2007 12:08 · Личное сообщение · #1
Ну например прогу можно запустить как "xxx.exe -scan" и т.д.
Есть ли какой-нибудь способ узнать какие параметры она принимает кроме search for all referenced text strings?
| Сообщение посчитали полезным: |
|
 Ранг: 120.9 (ветеран), 5thx Активность: 0.08↘0 Статус: Участник Programmer and reverser
|
Создано: 14 марта 2007 13:26 · Личное сообщение · #2
брякайся на GetCommandLineA. В EAX будет указатель на командную строку.
----- Уважайте других и пишите грамотно. | Сообщение посчитали полезным: |
Ранг: 5.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 15 марта 2007 21:47 · Личное сообщение · #3
И еще, быть может, (но редко) GetCommandLine W
| Сообщение посчитали полезным: |
 Ранг: 120.9 (ветеран), 5thx Активность: 0.08↘0 Статус: Участник Programmer and reverser
|
Создано: 15 марта 2007 23:38 · Личное сообщение · #4
-=The Bone=-
ага... если у тебя винда китайская
----- Уважайте других и пишите грамотно. | Сообщение посчитали полезным: |
 Ранг: 793.4 (! !), 568thx Активность: 0.74↘0 Статус: Участник Шаман
|
Создано: 16 марта 2007 08:33 · Личное сообщение · #5
Executioner нет, просто командная строка придет в юникоде, винда тут не при чем.
----- Yann Tiersen best and do not fuck | Сообщение посчитали полезным: |
 Ранг: 240.5 (наставник) Активность: 0.19↘0 Статус: Участник Author of ACKiller
|
Создано: 16 марта 2007 13:17 · Поправил: HoBleen · Личное сообщение · #6
Можно копнуть чуть глубже:
GetCommandLineA
7C812C8D MOV EAX,DWORD PTR DS:[7C8835F4]
7C812C92 RETN
в окне дампа следуем по адресу [7C8835F4] - там и будет строка.
| Сообщение посчитали полезным: |
Ранг: 33.6 (посетитель) Активность: 0.04↘0 Статус: Участник
|
Создано: 16 марта 2007 13:55 · Личное сообщение · #7
Так, либо я псих больной, либо вопрос ни один из ответивших не прочитал
GetCommandLineA возвращает указатель на строку с которой ты запустил прогу, но не показывает с какими парамами ты бы мог запустить прогу теоретически.
Есть программа, назыается xxx.exe.
Это программа принимает разные параметры командной строки (command line arguments).
Например:
xxx.exe -scan
xxx.exe /?
xxx.exe /d
xxx.exe -start
и т.д
Я только что скачал эту программу, в документации не описывается какие параметры она принимает, как мне узнать какие параметры она принимает..?
| Сообщение посчитали полезным: |
 Ранг: 120.9 (ветеран), 5thx Активность: 0.08↘0 Статус: Участник Programmer and reverser
|
Создано: 16 марта 2007 14:23 · Личное сообщение · #8
sliderZ
хм... я действительно вопрос не понял... или ты его плохо задал))
только искать референсы, другого способа не вижу. и смотреть дальше.
вообще наверняка после GetCommandLine будет функция парсинга командной строки. там и копай.
PE_Kill
понял, спасибо.
----- Уважайте других и пишите грамотно. | Сообщение посчитали полезным: |
 Ранг: 793.4 (! !), 568thx Активность: 0.74↘0 Статус: Участник Шаман
|
Создано: 16 марта 2007 16:37 · Личное сообщение · #9
sliderZ загрузи прогу в олю с каким нить параметром и смотри где этот параметр будет сравниваться с константами
----- Yann Tiersen best and do not fuck | Сообщение посчитали полезным: |
Ранг: 5.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 16 марта 2007 21:52 · Поправил: -=The Bone=- · Личное сообщение · #10
[offtopic]
Executioner пишет:
-=The Bone=-
ага... если у тебя винда китайская
А они все там уже давно на Unicode перешли, вот поэтому Vista такая недопер(е)деланная
[/offtopic]
| Сообщение посчитали полезным: |
Ранг: 5.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 16 марта 2007 21:57 · Личное сообщение · #11
To sliderZ
После GetCommandLineA посмотри на проверки eax'а. так найдешь строки, с кот. сравниваются. Скорее всего сравнение происходит в подпрограмме, что-то типа
0040xxxx GetCommandLineA
0040xxxy [mov eXx, eax]
0040xxxz call 040yyyyyy
Солидарен с PE_Kill - для сего дела оля и только оля
| Сообщение посчитали полезным: |
Ранг: 39.6 (посетитель) Активность: 0.02↘0 Статус: Участник
|
Создано: 16 марта 2007 22:26 · Поправил: NetSpider · Личное сообщение · #12
Действительно узнать ,какие параметры могут быть, можно только в отладчике (или дизассемблировать). После выполнения фун-и GetCommandLineA придется трейсить пока не доберешься до обработки параметров. Например, параметр командной строки (в коде ниже) может обрабатываться и в фун-и WinMain отдельной подпрограммой.
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpszCmdLine, int nCmdShow)
{
TestParametr(lpszCmdLine,"-debug") - например наподобие этого
return 0;
}
void __stdcall New_WinMain()
{
HINSTANCE hInstance = GetModuleHandle(NULL);
WinMain(hInstance,hInstance,GetCommandLine(),SW_SHOWDEFAULT);
ExitProcess(UINT(hInstance));
}
| Сообщение посчитали полезным: |
Ранг: 5.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 17 марта 2007 18:04 · Личное сообщение · #13
Можно еще в IDE пройтись (кстати, там статическое изучение лучше всего, особенно поиск сравнений и switch'ей в режиме графа) после GetCommandLineA
| Сообщение посчитали полезным: |
Ранг: 123.7 (ветеран) Активность: 0.1↘0 Статус: Участник 1nn0$/100
|
Создано: 17 марта 2007 20:08 · Личное сообщение · #14
А банально с ключом /h (-h, /help, -help) запустить не катит?
----- Blame the victim! | Сообщение посчитали полезным: |
Ранг: 310.8 (мудрец), 29thx Активность: 0.43↘0 Статус: Участник
|
Создано: 26 марта 2007 10:37 · Личное сообщение · #15
sliderZ пишет:
Есть ли какой-нибудь способ узнать какие параметры она принимает кроме search for all referenced text strings?
Как известно, авторы проги заитересованы в ее использовании. Обычно список всех проверенных опций выдается по ключу /h /? ( или их аналоги) или даже при неправильном задании ключа. Это хелп обычно не шифруется и его можно увидеть поиском по одному из известных ключей и уж в любом случае в распакованной проге.
| Сообщение посчитали полезным: |