- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
#include <iostream>
#include <fstream>
using namespace std;
//ifstream in("C://Users//Илья//Desktop//calc.exe", ios::binary);
ifstream in("C://Users//Илья//Desktop//kernel32.dll", ios::binary );
ofstream out("D:\\hello.txt");
void printhex(int position, int size)
{
int *A = new int[size];
int n = 0;
in.seekg(position);
for (int i = 0; i < size; i++)
{
n = in.get();
A[i] = n;
}
for (int i = (size-1); i >= 0; i--)
{
printf("%02X", A[i]);
}
cout << endl;
}
int printdec(int position, int size)
{
int* A = new int[size];
int n = 0;
int result = 0;
in.seekg(position);
for (int i = 0; i < size; i++)
{
n = in.get();
A[i] = n;
}
for (int i = (size-1); i >= 0; i--)
{
result = result * 16 * 16 + A[i];
}
return result;
}
int main()
{
char c;
int n;
unsigned int n1 = 0;
in.seekg(60); //положение байта, содержащего значение смещения;
n1 = in.get();
printf("%02X", n1); //вывод смещения;
cout << endl;
in.seekg(n1); //положение подписи (PE);
for (int i = 0; i < 4; i++)
{
c = in.get();
cout << c; //вывод подписи (PE)
}
cout << endl;
int numb_of_sect = printdec(n1 + 6, 2);
cout << numb_of_sect << endl;
printhex(n1 + 24, 2);
printhex(n1 + 24 + 28, 4);
printhex(n1 + 24 + 28 + 68, 4);
int adr = printdec(n1 + 24 + 28 + 68, 4);
cout << "-----------------" << endl;
if(adr==0) //проверка наличия таблицы экспортов;
{
cout << "The export table is missing." << endl;
}
}
j123123 22.04.2021 19:55 # +1
new есть, delete нет. Утечка памяти
На-ху-я? Почему нельзя из ifstream вычитывать байтики по размеру int и их принтф-ать? Почему указатели надо выводить именно как int, может лучше взять какой-то другой тип, который бы характеризовал размер указателя на целевой платформе?
j123123 22.04.2021 19:58 # +1
bormand 23.04.2021 08:28 # +3
Угу, в продакшене я просто беру питон, ставлю либу для парсинга PE и теку. Ещё не хватало на няшной или крестах эти структуры ковырять в сотый раз...
gologub 23.04.2021 14:09 # 0
> парсинга
жутко бесит эта скриптушиная терминология
DypHuu_niBEHb 22.04.2021 20:25 # +1
Desktop 22.04.2021 21:44 # +1
- палево!
Fike 22.04.2021 22:00 # 0
какая венда )))
да-да, шутка за три рубля
gologub 22.04.2021 23:00 # 0
PolinaAksenova 23.04.2021 01:54 # +2
> C://
Это работает нямного ня так.
gologub 23.04.2021 03:29 # +2
bormand 23.04.2021 08:21 # +2
Soul_re@ver 23.04.2021 11:22 # +3
Steve_Brown 23.04.2021 11:37 # +1
Soul_re@ver 23.04.2021 11:52 # 0
bormand 23.04.2021 11:54 # +2
Сомневаюсь... В виндовую точку входа, емнип, целиком строка прилетает. Да и при запуске приложения тоже строка.
Т.е. разбивает и парсит уже или сишный рантайм или сам программист.
З.Ы. Насколько помню, в винде даже звёздочки раскрывает не шелл, а сама прога.
Steve_Brown 23.04.2021 13:52 # 0
CHayT 23.04.2021 14:14 # 0
Речь про винду вроде... В линсуке shell и тильды в ${HOME} превращает, и глобинг делает.
bormand 23.04.2021 14:16 # +3
З.Ы. Ну либо если ты явно закавычишь, запретив ему раскрывать глобы.
CHayT 23.04.2021 14:21 # +2
bormand 23.04.2021 14:31 # +2
CHayT 23.04.2021 14:42 # +1
https://hackage.haskell.org/package/turtle-1.5.22/docs/Turtle-Tutorial.html
CHayT 23.04.2021 14:54 # +1
Ты про ?
bormand 23.04.2021 15:02 # 0
gologub 23.04.2021 15:08 # 0
Steve_Brown 23.04.2021 15:34 # 0
Тогда может забавно получиться...
или как это правильно делается.
bormand 23.04.2021 15:42 # 0
З.Ы. Проверила на apt list. Именно так и багует: шелл видит файлы в текущем каталоге, отдаёт их список апту, а апт пытается их искать в репе. Т.е. никакой специальной магии нету, по крайней мере в убунте. С кавычками вокруг паттерна шелл не раскрывает, как и ожидалось.
gologub 23.04.2021 16:15 # +1
• название пакета такое что пальцы себе сломаешь
• родственные пакеты
ну как бы надо конечно первым делом apt-get install synaptic && exit
Steve_Brown 23.04.2021 16:56 # 0
gologub 23.04.2021 17:54 # 0
была какая-то костыльная инициатива - метапакажи, но вроде ни к чему не привело
Steve_Brown 23.04.2021 16:58 # 0
sudo apt чтобы мышкой программы ставить.*
DypHuu_niBEHb 23.04.2021 16:43 # +1
https://www.debian.org/doc/manuals/aptitude/ch02s04s01.en.html
Fike 23.04.2021 17:56 # 0
какой багор )))
gologub 23.04.2021 14:01 # 0
и вообще виндоключи и в целом обработка command tail это не более чем набор разношерстных конвенций
причем больмень консистентно только в пределах одного компонента например cummand.cum или pk[un]zip enterprise
алсо
gologub 23.04.2021 14:22 # 0