ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

22.09.2007, 23:42
|
|
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме: 1941233
Репутация:
2726
|
|
значит можно сделать вывод, что в моей проге есть какие-то функции, которые требуют CRT, но если ее добавть размер охрененно возрастет. получается, надо обрезать эти функции. так?
Угу, если бы у всех CRT-символов были аналоги в API windows, то нафига бы она была нужна. Не надо проводить четкую аналогию между CRT и API, её нет. То, что у strlen() есть аналог lstrlen() в kernel32.dll считайте чистой случайностью.
Вообще посмотри экспорт ntdll - найдешь очень много ф-ий типа strstr().
Ну можно вручную переписать много чего.
Я конечно хотел понтануться и кинуть листинг на осенблере всех этих ф-ий, но потом подумал что заебался понтоваться. Я и так крутой ИМХО.
Код:
bool lstrncmp( char *s1, char *s2, size_t iMaxLen ) {
for (size_t i = 0; i < iMaxLen; i++) {
if (!s1[i] || !s2[i]) return true;
if (s1[i] != s2[i]) return true;
}
return false;
}
void lmemset( void *dst, char v, size_t s ) {
for (size_t i = 0; i < s; i++) {
((char*)dst)[i] = v;
}
}
void lmemcpy( void *dst, void *src, size_t s ) {
for (size_t i = 0; i < s; i++) {
((char*)dst)[i] = ((char*)src)[i];
}
}
bool lmemcmp( void *p1, void *p2, size_t s ) {
for (size_t i = 0; i < s; i++) {
if (((char*)p1)[i] != ((char*)p2)[i]) return true;
}
return false;
}
void *lmalloc( size_t s ) {
return HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, s );
}
void lfree( void *p ) {
HeapFree( GetProcessHeap(), 0, p );
}
void* __cdecl operator new( size_t s ) {
return lmalloc( s );
}
void __cdecl operator delete( void *p ) {
lfree( p );
}
Последний раз редактировалось KEZ; 22.09.2007 в 23:52..
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|