Просмотр полной версии : Вопросы по Assembler/Dizassembler и взлому...
В данном разделе будем разбирать сам ассемблер, способы дизасемблирования и взлома, приемы защит от отладчиков, дизассемблеров и др...
Ломаем компоненты Delphi.
Самая распространенная защита компонент связана с проверкой в памяти работающей IDE. Следовательно либо нужно эмулировать IDE либо перешагнуть через проверку IDE.
Информацию для размышления я дал. Поэтому не стесняемся, высказываем свои идеи, задаем вопросы. :super:
Позже выскажу свои варианты. :xe
DJ.Hmelnitzki
09.09.2005, 14:29
а что если удалить проверку памяти :7:
Поясни, что ты под вырубанием памяти подразумеваешь?
Взлом WinRar 3.0 !
Для осуществления взлома потребуется только отладчик SoftIce, но позже понадобится и шестнадцатиричный редактор (WinHEX) и Delphi.
Допустим, вы запустили WinRAR 3.0, увидели всё то же окошко и задумались какой же ставить брэйкпойнт? Попробуем… засечём время.
Раз триальный срок 40 дней – значит ставим брэйк в SoftIce:
:bpx GetLocalTime
Имеется надпись - "незарегистрированная версия" в заголовке окна - проверяем
:bpx SetWindowTextA
Теперь, как сделает программист:
Сначала поставит "незарегистрированная версия" в заголовке окна, а потом узнает время - вряд ли, что подтверждается на практике.
Попробуем, насколько "солёненький" WinRAR нам попался - запускаем его.
004367B3 - здесь у нас GetLocalTime;
0043FA27 - а здесь SetWindowTextA;
Скорее всего между этими двумя адресами и будет вычисление "зарегистрированности" версии.
Сразу после 004367B3 идёт вызов какой-то процедуры, которая возвращает результат в AL в виде 0 или 1, а затем значение AL закидывается в некоторый адрес памяти. Поглядев внимательно внутрь этой процедуры, видим, что она начинает проверять файл RARReg.Key (его нужно положить в папку с WinRar 3.0 можно с старых версий), знаем, что в принципе она должна как-то возвратить значение AL не 0, а 1, но идем дальше.
AL закидывается в некоторый адрес памяти - заменяем AL перед этим и "отпустил" программу на выполнение, программа загрузилась как "незарегистрированная", но когда она прервалась по SetWindowTextA при создании НАГ-окна видим тот адрес памяти, где должна была быть 1 и увидел там 0 и ставим брэйкпойнт на память и посмотреть, что программа всё-таки делает с этой переменной ?
:bpm 48dd1c rw
За всё количество прерываний по этому брэйку, два раза меняем значение по этому адресу (48dd1c) с 0 на 1 (команда :eb - для тех, кто не знает) и увидел на экране зарегистрированную версию WinRAR 3.0 beta 4 Rus.
Посмотрим, где же в память записывается 0, в какой процедуре ? - а в той же, что и в первом случае, значит просто находим место в ней где сделаем, чтобы в AL ВСЕГДА возвращалось значение 1 и будем писать крэк для WinRAR 3.0 beta 4 Rus.
Как оказалось технология та же и для WinRAR 3.0 Full, по этому же принципу можно будет создать кряк и для WinRAR 3.1, 3.2 и может 3.3…
Вот вам ещё исходники патчера для WinRAR 3.00 Full (между прочим для минимизации размера написаны на Delphi без использования VCL, то есть на WinAPI):
//--------------PATCHER.DPR----------------
Program Patch;
Uses windows,messages, shellapi;
const
ar : array[1..6] of byte = ($e8,$bd,$07,$00,$00,$58);
ar2 : array[1..6] of byte = ($b8,$01,$00,$00,$00,$90);
var
msg: tmsg;
win: hwnd;
bol: boolean;
i,b: byte;
f: file of byte;
{$R API.RES}
Procedure CreateReg;
var f1:textfile; str:lptstr;
begin
Assignfile(f1,'RarReg.b_g');
rewrite(f1);
Writeln(f1, 'RAR registration data');
Writeln(f1, 'ErrorMs');
Writeln(f1, 'Advanced GOD Pro version');
Writeln(f1, 'UID=fd402b81950501fbd1a1');
Writeln(f1, '6412212250d1a118e384ae1996cdea4f90d100b3dcd53ea5f a77c2');
Writeln(f1, 'a2a9458b4636334c81d46035c6ab9048e2c5c62f0238f183d 28519');
Writeln(f1, 'aa87488bf38f5b634cf28190bdf438ac593b1857cdb55a7fc b0eb0');
Writeln(f1, 'c3e4c2736090b3dfa45384e18e9de05c5860c0cbfb4a4cbbe 9549e');
Writeln(f1, 'b4ca3bc23f80d0cde2d91ba211839f05b0a5de11631072687 e814d');
Writeln(f1, 'd0fa0ace9439b90564d3ba7de5413d0824487a50f64e6ea36 0c858');
Writeln(f1, 'ee31cdacb655824a7a443ec0da598dfb6e79f305d8bf42605 23534');
closefile(f1);
end;
Function SettingsDlgProc(Window : hWnd; Msg,WParam,LParam : Integer): Integer; StdCall;
Var S : String;
Begin
Result := 0;
Case Msg of
wm_InitDialog : Begin
Result := 0;
End;
wm_Command : Begin
case LoWord(WParam) of
50:
begin
AssignFile(f,'winrar.exe');
{$i-}
Reset(f);
{$i+}
If IoResult <> 0 then
Messagebox(Win,'An error ocured while opening file','Error',MB_OK)
else begin
If Filesize(f) = 752640 then begin
Seek(f,$B26A);
bol := true;
for i:=1 to 6 do
begin
Read(f,b);
If b <> ar[i] then bol := false;
end;
if bol then begin
Seek(f,$B26A);
for i:=1 to 6 do
Write(f,ar2[i]);
Closefile(f);
CreateReg;
Messagebox(win,'Patched succesfully','Congratulation',MB_OK);
end
else
Messagebox(win,'An error ocured while patching','Error',MB_OK);
end
else
Messagebox(win,'Wrong file size','Error',MB_OK);
end;
end;
51: DestroyWindow(Win);
53: Messagebox(Win,PChar('Автор крэка: Bad_guy'+#13#10+'Выпущен:
25.07.02'+#13#10+'Ограничения: вы не сможете использовать "электронную
подпись"'+#13#10+'Адрес программы:
http://cracklab.narod.ru/dload/wrar300full.zip'),'About',MB_OK);
54:
ShellExecute(win,'open',PChar('http://cracklab.narod.ru/'),nil,nil,SW_MAXIMIZE);
end;
end;
wm_Close : DestroyWindow(Win);
wm_Destroy : PostQuitMessage(0);
else Result := 0;
end;
end;
Procedure RunSettings;
Var Result : Integer;
Begin
Win := CreateDialog(hInstance,PCHar(101),0,@SettingsDlgPr oc);
Showwindow(Win,SW_SHOW);
Updatewindow(Win);
End;
begin
RunSettings;
While GetMessage(Msg,0,0,0) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
end.
//---------END OF PATCHER.DPR-------------
//-------------API.RC---------------------
101 DIALOG 0, 0, 266, 95
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUPWINDOW |
WS_DLGFRAME
CAPTION "WinRAR 3.00 Rus Patch by Bad_guy"
FONT 8, "MS Sans Serif"
{
DEFPUSHBUTTON "Patch", 50, 13, 73, 59, 14
PUSHBUTTON "Cancel", 51, 188, 73, 65, 14
CTEXT "[-== Bad_guy ==-] \n Remove 40-day limit and NAG-screen \n i'm a genius,
you are a shit", 100, 13, 42, 240, 27, SS_SUNKEN
CONTROL 101, -1, "STATIC", SS_BITMAP | SS_CENTERIMAGE | SS_REALSIZEIMAGE |
SS_SUNKEN, 13, 8, 240, 30
PUSHBUTTON "About", 53, 75, 73, 50, 14
PUSHBUTTON "Our Website", 54, 130, 73, 54, 14
}
//-----------END OF API.RC---------------
Ладно, вижу дальше движения небудет.
Возвращаясь к вопросу о взломе компонент:
Открываем Hex редактор, ищем сообщение, которое выдается при запуске приложения ( Если использовать Busines или Dynamic Skin Form вылетает окно предупреждения: "Sorry ..." ), переходим в режим Decode, подымаемся выше от места, где нашли фразу, и мы ВСЕГДА должны видеть два jne? а если посмотреть выше то мы увидем je, много штук, так вот нам надо исправить jne на jmp? и компонента будет считать, всегда, что у нас запущен IDE.
И сегодня меня осенило.
Для проверки запущеного IDE код проверяет наличие в памяти TAppBuilder. Можно ведь его просто встроить в программу, и при загрузке программы должно пойти так как надо... :xe
Давайте здесь исходники элементарных програм выкладывать, plz?
Хочу скомпилировать screensaver, простой, чтоб bmp на фул экран выводил, в языках нешарю вообще, просто есть билдер и есть тасм,
интерееснее на TASM, было бы :)
Вот мой примерчик шатдауна ), но что-то он не работает...
;tasm.exe /m /ml shutdown.asm
;tlink32.exe /Tpe /aa /x shutdown.obj
.386
.model flat
.const
includelib import32.lib
extrn ExitProcess:near
extrn ShellExecuteA:near
A db "%SystemRoot%\system32\shutdown.exe -r"
.code
_start:
xor ebx,ebx
push ebx
push ebx
push ebx
push offset A
push ebx
push ebx
call ShellExecuteA
push ebx
end _start
Смотри внимательнее при создании новых тем.
Смотри внимательнее при создании новых тем.
Ok! а по сабжу что? есть програмулька scr на tasm? пожалуйстаа!
Добавлено через 2 минуты 0 секунд
очень хотца идею одну вдохновить...
Исходник скреена для DN. Для Windows есть, но только на Delphi. Если потерпишь, выложу Doc по составления screen. (Тогда напиши в личку).
;************************************************* ************************
;
; Dos Navigator II Screen Saver source
; (C)opyright 1995 Andy Zabolotny
;
; This source is freeware and licenced only for non-commercial use
;
;************************************************* ************************
.model tiny
.code
.386
org 100h
locals @@
jumps
WaveW equ 320
WaveH equ 100
WaveAddr equ (320-WaveW)/2
Start: call InitChanges
mov al,es:[449h]
mov LastMode,al
call InitVideo
push ds
pop es
mov cx,WaveW * WaveH * 2 / 4 + 1
xor eax,eax
mov di,offset WaveImage1
rep stosd
mov ax,0A000h
mov es,ax
@@waveLoop: mov si,Wave1
add si,WaveW - 1
mov di,Wave2
inc di
;mov ebx,[si-WaveW]
mov ecx,[si]
mov edx,[si+WaveW]
mov bl,0
add si,4
mov bp,WaveW * (WaveH - 2)
@@waveLine: ;mov al,[si-WaveW]
;shrd ebx,eax,8
mov al,[si]
shrd ecx,eax,8
mov al,[si+WaveW]
shrd edx,eax,8
inc si
shld eax,ecx,16
add al,cl
setc ah
add al,ch
adc ah,0
add al,dh
adc ah,0
ror ax,2
test al,al
jz @@put
test cl,1
setnz ah
sub al,ah
@@put: mov [di],al
inc di
dec bp
jnz @@waveLine
mov cx,WaveW
mov dx,randSeed
@@MakeSeed: add bx,05EDAh
xor bx,dx
add dx,0E34Ah
mov dl,bh
add dh,bl
adc dl,al
add bx,dx
rol bx,3
mov al,bl
and al,07Fh
mov [di],al
inc di
loop @@MakeSeed
mov randSeed,dx
mov si,Wave1
xchg si,Wave2
mov Wave1,si
add si,WaveW
mov di,WaveAddr+320
mov dx,WaveH-2-2
@@refresh0: mov cx,WaveW/4
rep movsd
add di,(320 - WaveW)
dec dx
jne @@refresh0
call Pause
call CheckChanges
jnc @@WaveLoop
mov ax,0C0Bh
int 21h ; Clear keyboard
mov ah,0
mov al,LastMode
int 10h
int 20h
InitVideo proc near
mov ax,13h
int 10h
mov dx,CRTstatus
sub dl,6
mov ax,0309h
out dx,ax
mov dx,03C8h
mov al,0
out dx,al
inc dx
mov si,offset PalData
mov cl,nPalColors
@@makePal: mov ch,32
@@makeRamp: mov di,3
xor bx,bx
@@makeRGB: mov al,32
sub al,ch
mov ah,[si+bx+3]
sub ah,[si+bx]
imul ah
sar ax,5
add al,[si+bx]
out dx,al
inc bx
dec di
jne @@makeRGB
dec ch
jne @@makeRamp
add si,6
dec cl
jne @@makePal
ret
InitVideo endp
include mTask.inc
include az_ss.inc
randSeed dw ?
LastMode db 0
PalData db 00,00,00, 24,00,00
db 25,01,00, 48,32,08
db 50,33,08, 63,63,63
nPalColors equ ($ - PalData)/6
Wave1 dw offset WaveImage1 ;offset WaveImage1
Wave2 dw offset WaveImage2 ;offset WaveImage2
WaveImage1 db WaveW * WaveH dup (?)
WaveImage2 db WaveW * WaveH dup (?)
end Start
Может понадобится для компиляции:
InitChanges proc near
call DetectMultiTask
xor bx,bx
xor cx,cx
xor dx,dx
mov ax,3
int 33h
mov Int33_BX,bx
mov Int33_CX,cx
mov Int33_DX,dx
xor ax,ax
mov es,ax
mov ax,es:[417h]
mov LastShift,ax
mov ax,es:[463h]
add al,6
mov CRTstatus,ax
ret
InitChanges endp
CheckChanges proc near
xor bx,bx
xor cx,cx
xor dx,dx
mov ax,3
int 33h
cmp bx,Int33_BX
jne @@End
cmp cx,Int33_CX
jne @@End
cmp dx,Int33_DX
jne @@End
push es
xor ax,ax
mov es,ax
mov ax,es:[417h]
pop es
cmp LastShift,ax
jne @@End
mov ah,1
int 16h
jnz @@End
clc
ret
@@End: stc
ret
CheckChanges endp
Pause proc near
cmp mTaskSystem,mtNothing
jne @@multiTask
mov cx,4
mov dx,CRTstatus
@@W4R1: in al,dx
test al,8
jne @@W4R1
@@W4R2: in al,dx
test al,8
je @@W4R2
loop @@W4R1
jmp @@locEx
@@multiTask: push es
xor ax,ax
mov es,ax
mov bx,es:[46Ch]
@@skipSlice: call GiveUpTimeSlice
cmp bx,es:[46Ch]
je @@skipSlice
pop es
@@locEx: ret
Pause endp
CRTstatus dw ?
LastShift dw ?
Int33_BX dw ?
Int33_CX dw ?
Int33_DX dw ?
ErrorMs, спасибо друг! На Delphi я нашёл. Хотел сделать scr из BSOD, :) думал никому это ещё не приходило на ум, однако вчера увидел SysInternals Bluescreen.scr, и так обломался :)
хотя занятно вообще, как BSOD сохранить в bmp на одном компе,
я всётаки хочу сам тоже нарулить, люблю TASM и C++ ...(Builder),
хотелось бы уметь хоть какие-то бирюльки делать самому, на большее непотяну :)
По взлому накопилось вопросов
1.Имеются три файла zzz.exe; zzz.dll; zzz.sys, как это работает в windows? особенно загадачным для меня является sys и именно когда он загружается в память кто проверяет его crc - Windows? EXE? или он сам себя? Отсюда ещё вопрос, а где в файле CRC находится, возможно ли её переписывать кому как нравится?
2.Кто имеет доступ к реестру, например какой-то SYSTEM имеет доступ более чем Администратор, а я так практически вообще гость на своём же ПК? Есть ли способы cmd.exe-комманда *.reg-file или *.INF-установка разрешения доступа, например, сюда HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\R oot\SYSTEM, чтобы не лезть в regedit.exe и не ставить там галочки, каждый раз когда надо какойнибудь драйвер зарегить? (-:SYSTEM-то не пользует regedit.exe
3.Ещё раз об zzz.exe; zzz.dll; zzz.sys, если есть такая связка, sys зарегистрирован как services-служба winxp, ну DLL-понятно что-то несёт в себе, но нельзя ли избавиться от zzz.exe? который как я понимаю только иницирует процесс загрузки DLL в память, а потом торчит в трее как ненужный елемент. Бывает ли "exe" лишним\заменяемым?
4.Как достаточно UNпакеров , чтоб открыть современные exeшки, наверное кроме паковки бывает способ намеренной ошибки кода, чтоб нечем уже не распаковалось, что-то я когда-то слышал вроде... как убедится что файл сжат и чем?
З.Ы. А где находятся функции выравнивания окон -> right-click над taskbar/quicklunch -> "окна слева направо" и т.д. и т.п. ?? Хочу снести дефолтный эксплорер, но без этих штучек жить трудно, ровнять окна руками геморно и неэстетично, всёравно криво станет. Много из
реестра народу известно и из comandline, а этого нигде невстречал, helpmeplz!?
Имеются три файла zzz.exe; zzz.dll; zzz.sys
Как сразу много вопросов...:7:
Попробую проще Exe - запускаемый файл, dll - используется Windows и приложениями, sys - системой.
Crc - есть на секторном уровне, есть на файле целиком.
"например какой-то SYSTEM " - это не с той оперы (в томсмысле читай про сервисы)
" Есть ли способы cmd.exe-комманда *.reg-file или *.INF-установка разрешения доступа, например, сюда HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\R oot\SYSTEM, чтобы не лезть в regedit.exe и не ставить там галочки, каждый раз когда надо какойнибудь драйвер зарегить? (-:SYSTEM-то не пользует regedit.exe " - сам понял что написал?
".Ещё раз об zzz.exe; zzz.dll; zzz.sys, если есть такая связка, sys зарегистрирован как services-служба winxp, ну DLL-понятно что-то несёт в себе, но нельзя ли избавиться от zzz.exe? который как я понимаю только иницирует процесс загрузки DLL в память, а потом торчит в трее как ненужный елемент. Бывает ли "exe" лишним\заменяемым? " - это опять к сервисам.
З.Ы. А где находятся функции выравнивания окон -> right-click над taskbar/quicklunch -> "окна слева направо" и т.д. и т.п. ?? Хочу снести дефолтный эксплорер, но без этих штучек жить трудно, ровнять окна руками геморно и неэстетично, всёравно криво станет. Много из
реестра народу известно и из comandline, а этого нигде невстречал, helpmeplz!?
Это к API.
А вообще ты задеваешь такие темы, которые несколькими томами не освятить...:xe наверное.
" Есть ли способы ~ разрешения доступа, например, сюда HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\R oot\SYSTEM, ~ regedit.exe " - сам понял что написал?"
Вот это особенно интересно и видимо ответ неизвесен, есть только
один способ открыть regedit -> кликнуть правой и выбрать разрешения для всех на нужном разделе, так все и делают, но виндоус же пишет
туда без всякого разрешения. Причём если доступ изменить это где-то должно сохранятся, я делал снимки из Regsnap так и не просёк где
это фиксится, такое впечатление, что весь этот механизм Администрирования вне реестра :7: ...
Добавлено через 8 минут
ErrorMs, спасиба! хоть в общих чертах..
Exe - запускаемый файл, то есть он загружает DLL и кое что возможно из
своего тела, но впринципе DLL может так же и служба загрузить?...
или Rundll32.exe наверное...
но впринципе DLL может так же и служба загрузить?...
или Rundll32.exe наверное
Если сам ничего не путаю, то да. dll может запускаться как сервис.
Здравствуйте!
Стокнулся с проблемой утечки памяти в С++ проекте. Проект писал не я и давно. Проект большой. Какие программные продукты могут оказать мне помощь в поиске некорректного участка кода?
Здравствуйте!
Стокнулся с проблемой утечки памяти в С++ проекте. Проект писал не я и давно. Проект большой. Какие программные продукты могут оказать мне помощь в поиске некорректного участка кода?
Не стал бы я доверять программам. Лучше все поправлять ручками, поскольку стандартных ситуаций не существует, есть лишь похожие случаи...:cool:
Добавлено через 1 минуту
softIce я думаю поможет
Таким способом проще программы взламывать, чем отыскивать утечки памяти....:46:
места утечки памяти скорее всего вы не найдете никак. И в чем вообще выражается эта утечка, может это не то о чем вы говорите?
А чем щас пакуют, напр. вот такое
http://rapidshare.de/files/16099940/samp8pkg.exe.html :46:
я все анпакеры перебрал в сети ничего не помогло, я подозреваю, что там код хитро нарушен, может что в hiew подправить :xe подскажте plz
а цель такая, хочу в ResHacker открыть, что бы например логотипы затереть ихнии. В своё аправдание могу сказать, что не для комерческогоиспользования, а просто они иногда слишком жуткие вещи рисуют, меня напрягает...
з.Ы. а можно вычислить и даже не алгоритм, а типа математически формулу, как серийник генерируется, если кейген уже есть? [ :пиво: ] :гуляем
на wasme прежде заходил, всё там перепробовал, upx(ы) сразу что приходит на ум, однако, в новых файлах часто всречается fsg, но и FSG распаковщики либо распаковывают, но доступа к ресурсам всёравно нет, у меня два было, один вообще не распаковывал. Я вроде где-то за Delphi слышал, что у него ресурсы нестандартно лежат ... хз :7:
Я вроде где-то за Delphi слышал, что у него ресурсы нестандартно лежат
Все редакторы ресурсов отлично видят Delphi. А что не просматривается, то уже нестандартные приемы.
У меня был рег-файл
HKEY_CLASSES_ROOT\Trilogy
блин, как диск поделю подругому ключ не подходит, он что ли из диска защиту высчитывает?... железо не менял совсем.
Сам не могу ломать, тупой потомучто. Помогите! Пожалуйста!
Нахудой конец :( хотябы кейген Arctic (FSG v1.33) распаковать, ато там бяка всякая написана....
!. SoftICE у меня не работает
This is Numega SoftIce 4.2.7 build 562 ripped from Numega Driver Studio 2.7 build 562, The install system was build by .::D.e.M.o.N.i.X::
Поставил ещё патч Drivers\ntice.sys+siwsym.sys+siwvid.sys
У меня XP Pro Eng Corporate Edition, он вообще есть рабочий под XP?
2. OllyDbg 1.10 обычный ведёт себя совсем подругому, чем OllyDbg та же версия только со скином BoOMBoX/TSRh2004... Почему?
Можно ли с олькой обойтись без айса?
Вообще насчёт поведения програм, нет уверенности, почему с последней Олли код получился тот-что надо? - я уже неуверен даже в PE Tools v1.5.400... или надо PE Tools v1.5.656.2005 RC5?
У меня был рег-файл
HKEY_CLASSES_ROOT\Trilogy
блин, как диск поделю подругому ключ не подходит, он что ли из диска защиту высчитывает?... железо не менял совсем.
В принципе, действительно, встречается и такой тип защит, с привякой к жесткому диску. Но "привязывается" она часто к ID самого винта, как, например в Strip Saver 2.
Сам не могу ломать, тупой потомучто. Помогите! Пожалуйста!
Какая самокритика! При взломе, как вообще в программированиии и в жизни, нужно приложить немного усилий для достижения цели (никто и не говорил, что будет легко!): вначале все кажется очень сложно и запутанно, а потом когда входишь во вкус, с приобретением опыта понимаешь, как же ты ошибался в самом начале пути...
Я Вам скажу, semiono, что любая защита как женщина, сначала ей сложно понравиться и уговорить ее, но затем она становится целиком и полностью Ваша, это будет лишь зависеть от Вашей целеустремленности. :cool:
Froggy! :super:
З.Ы. offtop -) Я на cracklab хотел зарегится! Аффтар жжёт
Там такая регистрация весёлая - или они прикалываются специально, я все варианты понажимал гы-гы-гы
Зачем собсно тупой вопрос: "Кто может создавать вопросы личного характера"
Варианты: Админ, Модер. Юзер )))
А какая разница кто их может, а кто не может создавать имхо тупой вопрос :biggrin: я ржал! сории...
Вобщем я даже туда ломануть, ломанутся не смог
:cool:
MurderMurder
29.08.2006, 14:34
http://www.cracklab.ru
Имя пользователя : Murder302
Пароль : 302*****
хе-хе
...изучать в общем-то нечего.
Изучать всегда есть чего :) А для FoxPro 2.6 и в самом деле достаточно почитать встроеную справку да посмотреть примеры.
У меня когда-то была книжка в электронном виде на русском языке. Если хочешь - дай мыло в ПМ - вышлю когда найду.
Данная тема посвящена программированию в среде FASM. А прежде всего тому, что книг по нему практически нет, и если у кого-то имеется ссылка публикуем нестесняясь ССЫЛКИ и МЫСЛИ.:cool:
Пояснения только приветствуются.:super: :super: :super:
всем заранее спасибо.:cool:
################################################## ##########################
Очень нужная тема!!!
cyberdino (http://www.cyberdino.narod.ru/)
wikipedia (http://ru.wikipedia.org/wiki/FASM)
Программирование на языке Assembler в FASM (http://www.wasm.ru/print.php?article=macrofasm)
Макросы и директивы компилятора FASM (http://www.wasm.ru/print.php?article=fmacros)
Уроки Iczelion'а (http://www.wasm.ru/publist.php?list=1)
Конечно, лучше всего было бы перевести все Уроки Iczelion'а к синтаксису fasm или хотя бы часть уроков!!!
################################################## ##########################
Есть внешняя компонента для 1С (вопрос не по 1С, с ней я сам с усам:xe ) компонента выполняет некоторые вычисления, но для работы с ней ее нужно активировать. Причем активация банальная - ответный код. Разработчик предупредил, что прога вяжется к Винде и переставлять ее (Win) нельзя. Вопросы:
1. Какие шаги мне нужно предпринять, что б работать с компонентой (или потребность в активации или дать нужный ответ.)?
2. Какое ПО использовать?
3. Имеет ли значение на чем писана компонента?
4. Какова последовательность моих шагов?
Если не тяжело - подскажите.
Спасибо.
P.S. Снятие образа и разворачивание на другой машине не испытывал... Нет одинаковых машин (AMD, Intel, разные чипсеты). А коль эти машинки должны стоять в очень удаленных местах - желательно все ставить корректно раз и на всегда...
DLLку нужно открыть в hex редакторе и C:/MySQL/ заменить на . (точку) и дополнить девятью нулями \x00 (символом с кодом нуль, а не нулями \x30).
Господа обьясните пожалуйста подробнее как это сделать я в этом плане ламер? т.е. что за символ с кодом ноль и т.д.
Как работать с файлами винчестера вне ОС? Данные на диск такие:
1. диск - 3.5 floppy
2. форматирование стандартное (FAT12)
Знаю, что необходимо читать указывая сектор/дорожку/головку и есть формулы для расчётов относительно № сектора, буду очень рад любой помощи.
Исходники желательно давать для FASM.:cool:
SecurAdmin
14.11.2006, 07:24
Alex_IT, если ты самостоятельно хочешь заломать эту прогу, то последовательности примерно следующая:
1. Определить не запакована ли прога, если да, то распаковать (для определения пригодится PeID)
2. Заталкиваешь прогу в дебаггер и если прога при вводе неправильного ключа выбрасывает мессагу что он неверен, то ставишь точку останова на API функцию MesageBoxA.
3. Вводишь любой код и отпускаешь прогу по F9, сваливаешься на точке останова.
4. А дальше все зависит от обстоятельств...коих может быть не мало... Самым простым вариантом может быть если код тупо сравнивается с эталоном, тогда при следующей пошаговой трассировке той подпрограммы (ну или предыдущей) в которой ты свалился в дебаггер, ты увидишь правильный код где-нибудь например в стеке или сегменте данных...
А вообще можешь дать ссылу на программу и я попробую поковырять...
WildBear
14.11.2006, 09:01
SecurAdmin, Судя по описанию [привязка к Винде], тупого сравнения с эталоном не предвидится. Скорее всего придется разбираться с алгоритмом или обходить всю проверку.
Согласен с методами, предложенными SecurAdmin, с небольшим добавлением: перед шагом 2 я бы попробовал определить на чем написан компонент и только потом совал бы его в отладчик (а может и не в отладчик сначала, а в DeDe, допустим)
SecurAdmin
14.11.2006, 16:33
WildBear, а я и не утверждал, что будет тупое сравнение, я лишь рассмотрел один из вариантов, который требует наименьших усилий при взломе... Однозначно можно сказать, что стандартных алгоритмов взлома не бывает, и всегда нужно исходить из обстоятельств.
А по поводу привязки и тупого сравнения - это ты зря. Я встречал несколько программ, которые в одно поле выводят HardwareID, а в другое предлагают ввести ключ. После трассировки проги с ключем типа 111-111-111-111, в стеке обнаруживается FD0-A5E-CDF-DF3!!! Такой тупой защитой в основном славятся различные навороченные заменители NotePad'a
DLLку нужно открыть в hex...
C:/MySQL/ - это девять символов,
С - заменяешь на точку - 2E,
остальные на ноль - 00.
####################
2E 00 00 00 00 00 00 00 00
####################
Dremor_kg
19.11.2006, 13:36
Есть некий файл с расширением .exe нужно из него выдрать исходный код, желательно на С++.
Возможно ли это? Если да, то как?
ctpahhik
19.11.2006, 15:44
Полностью невозможно, максимум с помощью IDA можно получить код на ассемблере с восстановленными стандартными функциями языка (и то если exe-шник не защищен). Остальное останется на ассемблере.
В итоге - если программа была написана на С++, не запакована и есть более-менее нормальные знания ассемблера, то что-то получится, иначе проще самому написать :дразню
Dremor_kg
19.11.2006, 20:13
В том-то и проблема, что ассемблер "на нуле"!!!! Может у кого-нибудь есть идеи. Написать самому можно, но просто нашел "один-к-одному" то, что мне надо. Осталось только код выдрать!!!!
ctpahhik
19.11.2006, 21:46
В том-то и проблема, что ассемблер "на нуле"!!!! Может у кого-нибудь есть идеи. Написать самому можно, но просто нашел "один-к-одному" то, что мне надо. Осталось только код выдрать!!!!
Ну тогда у тебя 3 варианта:
1) Выпросить у автора исходники.
2) Найти то-же самое с исходниками.
3) Изучить ассемблер.
В том-то и проблема, что ассемблер "на нуле"!!!! Может у кого-нибудь есть идеи. Написать самому можно, но просто нашел "один-к-одному" то, что мне надо. Осталось только код выдрать!!!!
Код будешь выдирать дольше, чем сам напишешь с нуля. Тем более, если:
Написать самому можно
http://forum.vingrad.ru/index.php?showtopic=90325
Вот тут можно http://fresh.flatassembler.net/files/FreshAlpha114.exe
скачать, ну и примерчик на фасм посмотреть.
Andrewyaya
10.12.2006, 00:23
Здравствуйте..нужно решить задачу по сложению матриц, но вначале я решил попробовать просто с массивами и что-то не вышло(
assume CS:code,DS:data
;исходные массивы и получаемый массив (m3)
data segment
m1 db 1,2,3,4
m2 db 5,5,5,5
m3 db 4 dup (0)
data ends
code segment
start:
mov ax,data ;data -->ds
mov ds,ax
cld ;обнуление DF для команд stos и lods
mov CX,4 ; счетчик цикла
mov es,ax ; для stos вроде
mov si,offset m1 ;адреса массивов "инициализируем"
mov bx,offset m2
mov di,offset m3
@@cicl:
lodsb ; элемент массива m1 в AX
add ax, [bx] ; прибавляем к первому массиву второй
inc bx ; к следующему эл-ту m2
stosb ; результат в es:di
;вывод массива m3 на экран
mov ah,02h
mov dl,m3[di] ;собственно обход массива
add dl,'0' ; преобразование числа в символ
int 21h
loop @@cicl
mov ax,4c00h
int 21h
code ends
end start
только в результате мне выводится не получаемые значения, а ерунда...почему не могу понять..
И еще, можно ли реализовать сложение массивов без stos и lods или эти команды обязательны? (может у кого-нить есть программа по сложению матриц....буду очень признателен)
подскажите плиз..
arafree2
11.12.2006, 11:27
Люд добрый а у кого нибудь, есть дизасемблер, удобоваримый для .net2?
Люд добрый а у кого нибудь, есть дизасемблер, удобоваримый для .net2?
Его в принципе быть не может, так как то во что собирается проект, использующий "технологию" .NET, не является машинными инструкциями конкретному типу процессора. Это промежуточный вариант для среды (виртуальной машины), которая получая на вход этот суррогат получает на выходе исполняемый файл. А вот этот выходной файл уже можно препарировать. Здесь прямая аналогия с байт-кодом java.
З.Ы.
Есть какие-то специфические программы которые более-менее восстанавливают код, но это далеко не дизассемблеры, хотя их почему-то так называют. Например, Reflector http://www.aisto.com/roeder/dotnet
с плагином Reflector.FileDisassembler http://www.denisbauer.com/NETTools
Или XenoCode Fox 2006, ссылку надо поискать :cool:
SecurAdmin
12.12.2006, 15:32
Абсолютно согласен с kvm. Вообще, всего скорей речь должна идти не о дизассемблерах, а о декомпиляторах (браузерах .net классов).
neveroff
23.12.2006, 07:01
Выручайте, кто могёт !!!
Препод сказал нам, что ежели найдёте книгу Скэнлона Лео. Персональные ЭВМ IBM PC и XT , то считайте, что вы уже ассемблерщики (с большой буквы)
А я что то найти не могу её, может ктонибудь поделиться!
И правда ли, что она так хороша !!!
Ещё один ресурс: Сайт Н.Ю. Пономарёва (http://nickp.fatal.ru/) - как правило всё такое только на стадии зарождения, а потом долгие ожидания контента... Один wasmRU только и радует!
Kuvalda1
06.01.2007, 12:05
Сайт Пирогова: http://asm.shadrinsk.net/
Есть инструменты, книги, статьи.
Его в принципе быть не может, так как то во что собирается проект, использующий "технологию" .NET, не является машинными инструкциями конкретному типу процессора. Это промежуточный вариант для среды (виртуальной машины), которая получая на вход этот суррогат получает на выходе исполняемый файл. А вот этот выходной файл уже можно препарировать. Здесь прямая аналогия с байт-кодом java.
З.Ы.
Есть какие-то специфические программы которые более-менее восстанавливают код, но это далеко не дизассемблеры, хотя их почему-то так называют. Например, Reflector http://www.aisto.com/roeder/dotnet
с плагином Reflector.FileDisassembler http://www.denisbauer.com/NETTools
Или XenoCode Fox 2006, ссылку надо поискать :cool:
Ищите на cracklab.ru. Недавно самому пришлось копаться - очень даже ничего восстановил свой случайно стертый проектик.
Добавлено через 2 минуты
Выручайте, кто могёт !!!
Препод сказал нам, что ежели найдёте книгу Скэнлона Лео. Персональные ЭВМ IBM PC и XT , то считайте, что вы уже ассемблерщики (с большой буквы)
А я что то найти не могу её, может ктонибудь поделиться!
И правда ли, что она так хороша !!!
Меньше слушай преподов, особенно старых - они перестали развиваться уже давно, и думают что ничего не изменилось с их какого-то там 197X года ...
GratefulDead
15.02.2007, 12:19
Вопрос по обработке окон. Есть код:
EnumWind proc h:HWND,param:DWORD
xor eax,eax
invoke IsWindowVisible, h
.if eax==TRUE
;тут MsgBox либо какие-то действия
.endif
ret
EnumWind endp
main proc
enu:
xor eax,eax
invoke EnumWindows, EnumWind,NULL
.if eax!=0
jmp enu
.endif
Ex:
invoke ExitProcess, 0
ret
main endp
Поблема в том, что при использовании IsWindowVisible код не хочет искать окна, а точнее, получается, что видимых окон нет. Если IsWindowVisible не проверять - такое ощущение, что программа уходит в бесконечный цикл - выводит штук 100-150 MsgBox'ов (столько окон, я полагаю, не может находиться в системе даже в скрытом виде), и валит систему. Кто-нибудь пожалуйста тыкните меня носом в ошибку - буду очень благодарен :(
Мне кажется, ты неправильно применяешь функцию EnumWindows. Она постоянно находит одно окно.
Надо сделать так:
EnumWindowsProc proc \
hwnd:HWND, lparam:LPARAM
; тута чтото делать
mov eax, TRUE ; <- для продолжения поиска
EnumWindowsProc endp
;гдето вызвать функцию:
invoke EnumWindows, addr EnumWindowsProc, NULL
Должно сработать
Насчёт 150 окон - их действительно много, большинство скрытые. Запусти например Microsoft Spy++ и увидишь.
KostenkoPav
20.03.2007, 14:56
Посоветуйте какой-нить отладчик для отладки драйверов. SoftICE просьба не предлагать - он у меня все равно не работает :)
Посоветуйте какой-нить отладчик для отладки драйверов.
В DDK вроде шёл, вместе с debug символами.
SoftIce прекрасно работает на всех версия windows.
KostenkoPav
20.03.2007, 17:48
В DDK вроде шёл, вместе с debug символами.
Ну я вообще сомневаюсь, можно ли назвать эту пародию отладчиком :)
SoftIce прекрасно работает на всех версия windows.
Работает то он на всех Windows, но не совсем оборудованием :) Лично у меня проблемы с видеодрайвером. Да и вообще хотелось бы найти какое-нибудь альтернативное решение.
Ну я вообще сомневаюсь, можно ли назвать эту пародию отладчиком :)
Работает то он на всех Windows, но не совсем оборудованием :) Лично у меня проблемы с видеодрайвером. Да и вообще хотелось бы найти какое-нибудь альтернативное решение.
Ставь на VMWare его :)
Александр_ф.
01.04.2007, 21:18
Прошу прощения у сообщества.
Я немно поизучал асм (самые основы) (на MASM).
Однако чую надо учить программирование макросов.
Они похоже облегчают жизнь.
Подскажите литературу или какие-нибудь статьи дельные. Типа : "Применение и создание макросов в MASM" или около... Можно по-аглицки.
Заранее благодарю.
Саша.
Подскажите литературу или какие-нибудь статьи дельные. Типа : "Применение и создание макросов в MASM" или около... Можно по-аглицки.
Поищи на wasm.ru. Там много всяких статей по асму
accistent
21.05.2007, 12:55
Кто нить поможет подсказать
где в в программе искать
адрес типа 127.0.0.1
или
http://ttt.ru
или так ttt.ru
как его вычислить
дизасемблером
Кто нить поможет подсказать
где в в программе искать
адрес типа 127.0.0.1
или
http://ttt.ru
или так ttt.ru
как его вычислить
дизасемблером
гейт в пинче ищешь? ;)
http://gram1982.narod.ru/11111.JPGУ меня такой вопрос: Пытаюсь внести изменения в exeшник. Меняю 08 на 09 как на картинке. Сохраняю! Пытаюсь запустить и вылезает сообщение, что он неявляется приложением win32! Чего можно сделать?
Вопрос: Можно ли добавить в дизассемблированный код exeшника дополнительный код? И каким образом?
Chessmaster1
13.06.2007, 14:17
Привет всем. Я хотел попробовать изменить софт спутников ресиверов. Есть софт от ресивера с расширением tfd (запакован специальным программом). При распаковке получается файл ассемблера с расширением ASM (размер файла около 1,5 мБ). Некоторые информационные места (названые надписи, информация о дата софта и т.д.) можно изменить HEX-редактором и запаковать обратно в файл софта. Но как изменить команды (например, блокировки работу некоторой кнопки, от Enable к Disable) в софте?
А этот файл ассемблера не удаётся открыт с MASM или TASM -ом. При открытии файла появится только одно число 8.
KostenkoPav
13.06.2007, 14:44
А теперь ответ сразу на два предыдущих поста. Код, получившийся в результате дизассемблирования откомпилировать еще раз НЕЛЬЗЯ. Его можно использовать разве что для изучения некоторых особенностей работы программы :roll: Можно только модифицировать/убрать определенные комманды. И то только в HEX-редакторе/отладчике.
Если нужно добавить код, то для этого скорее всего прийдется создавать еще одну секцию и писать в нее (ручками). Только этот код должен быть базонезависимым. Плюс в определенных местах надо будет делать переходы на него.
То есть можете мне поверить, что для того чтобы модифицировать исполняемые файлы нужно иметь немалые знания об их структуре. Знание ассемблера тоже немаловажно.
А как создать еще одну секцию?
KostenkoPav
13.06.2007, 16:33
А как создать еще одну секцию?
Ну например с помощью PETools.
Скачать можно здесь (http://petools.org.ru/updates/pt_update_08_rc7.zip).
Существует неплохая прога для создания навесной защиты программы от дизассемблирования, отладки и пр. вариантов анализа кода "DotFix NiceProtect v.2.3".
Скачать можно здесь (http://mlicej.narod.ru/DotFix_NiceProtect_v.2.3.rar) (прога+serial) и не забываем о кнопке "СПАСИБО".
__________________________________________________ _____
Мир - лишь, подготовка к войне.
Chessmaster1
14.06.2007, 08:47
Код, получившийся в результате дизассемблирования откомпилировать еще раз НЕЛЬЗЯ. Его можно использовать разве что для изучения некоторых особенностей работы программы :roll: Можно только модифицировать/убрать определенные комманды. И то только в HEX-редакторе/отладчике.
Софт ресивера с файлом *.TFD это архивированный файл запакованным программом TFDPack-GUI. Этим программом я распаковал файл софта в файл ассемблера с размером около 1,5 мБ. Но при открытии файла с помощью MASM или TASM появиться только число 8.
В HEX-редакторе только смогу редактировать информационные места. А как редактировать свойство кнопки, например Enable-Disable.
Ну например с помощью PETools.
Скачать можно здесь (http://petools.org.ru/updates/pt_update_08_rc7.zip).
При сравнении двух exeшников мне выдало:
458371| 79 | F9
458372| 85 | F9
458373| 07 | FF
458374| 00 | FF
Это hex!
Как мне подправить чтобы в exeшниках не было разницы?
KostenkoPav
14.06.2007, 13:15
При сравнении двух exeшников мне выдало:
Чем сравнивал?
458371| 79 | F9
458372| 85 | F9
458373| 07 | FF
458374| 00 | FF
Первое значение, на сколько я понимаю - это адрес. Так вот хотелось бы уточнить, это Virtual Address, RVA или File offset?
Как мне подправить чтобы в exeшниках не было разницы?
Берешь любой НЕХ-редактор, например WinHEX, идешь по заданному смещению и правишь.
Добавлено через 2 минуты
Существует неплохая прога для создания навесной защиты программы от дизассемблирования, отладки и пр. вариантов анализа кода "DotFix NiceProtect v.2.3".
Ага, а есть еще Themida :razz: (это я к тому, что ты нашел самую "навороченную" защиту :) )
Если ты хочешь получить хорошую защиту для кода программы, то лучше поручить это группе профессиональных системных программистов. А если ты хочешь получить "сильно защищённый":shock: ЕХЕ файл, над защитой которого посмеётся даже WinLamer:ex:, то пользуйся ASPack'ом.
KostenkoPav
15.06.2007, 13:41
Если ты хочешь получить хорошую защиту для кода программы, то лучше поручить это группе профессиональных системных программистов. А если ты хочешь получить "сильно защищённый":shock: ЕХЕ файл, над защитой которого посмеётся даже WinLamer:ex:, то пользуйся ASPack'ом.
Ну предположим, что никому ничего поручать и не надо. Во-первых, не сложно придумать и самому хорошую защиту. Во-вторых, нужно уметь качественно привязывать свою прогу к пакеру/протектору. И тогда проблема будет распаковать даже ASPack :roll:
Превет! А нету статей по взлому фара, может кто и так подскажит.
Собсно ломать не надо, но вот эту б дрянь вырезать
ADVAPI32.IsValidSid
ADVAPI32.EqualSid
когда из дос запускаю вылезает даже при валидной регистрации...
сабж тут
http://ifolder.ru/2444931
Если кто знает дайте в HEX варианте, ато я тупой в дебаггере совсем запутаюсь.
=)
KostenkoPav
22.06.2007, 15:47
ADVAPI32.IsValidSid
ADVAPI32.EqualSid
Это же API функции. Как ты их собираешься вырезать? :)
ЗЫ. Если ты подумал, что это функции проверки лицензии, то это далеко не так :)
ЗЫ. Если ты подумал, что это функции проверки лицензии, то это далеко не так :)
конечно подумал, проверка сидов... а зачем?
Это же API функции. Как ты их собираешься вырезать? :)
нопом =)
я смотрел видео по распаковке upx и т.п. просто на всё надо время,
а если погрузится в крекинг, то щас я другие дела заброшу...
Предположительно думаю есть наработки по взлому фара, вот и спросил... Например, WinRAR часто исследуют.
Что если вместо Call xxxx поставить NOP =)
конечно глюк там будет, но может кто и знает куда перейти и что залатать... sorry
Starshine
09.07.2007, 14:21
При попытке декомпиляции проги в ДеДе он вешаеться (в конце).
Подскажите в чем может быть проблема - в защите проги или в ДеДе
или посоветуйте чтолибо получше для декомпиляции.:)
Eagle2007
11.07.2007, 20:15
Люди, а есть компонент Delphi который может транслировать заданную инструкцию на асме в машинный код (типо ассмеблер 1й линии)?
KostenkoPav
12.07.2007, 02:05
Люди, а есть компонент Delphi который может транслировать заданную инструкцию на асме в машинный код (типо ассмеблер 1й линии)?
Готового компонента нет. Можно использовать для этого ассемблер/дизассемблер от OllyDbg. Можно найти здесь (http://ollydbg.de/)
denAccess
02.08.2007, 03:23
Здравствуйте!
Стокнулся с проблемой утечки памяти в С++ проекте. Проект писал не я и давно. Проект большой. Какие программные продукты могут оказать мне помощь в поиске некорректного участка кода?
OllyDbg - лучший отладчик на сегодняшний день для юзер-моде.
Есть на wasm.ru да и вообще в сети много ссылок.
А вообще чел если писал не ты - то мои соболезнования, языки типа Си они только для записи!!!:razz:
есть такая штука - юзаю асм файл с функцией для вычисления формулы. компилим с помощью MASM32. далее объектник с этого файла нужно прикрутить к проекту на VC++ 8, Delphi 7.
к Visual C++ прикручивается хорошо, правда с изменением имени функции: _calc_y2@8 вместо calc_y2. ну это ясно.
а вот прикрутить к дельфе не получается. пишет неизвестный тип объектного файла, это происходит потому что borland и micro$oft не подружились :), и стандарты объектников разные. собственно в этом случае нужно юзать TASM32.
вопрос: а можно ли скомпилить асм файл всё-таки в MASM32, чтоб получился файл, понятный дельфе?
Люди, а есть компонент Delphi который может транслировать заданную инструкцию на асме в машинный код (типо ассмеблер 1й линии)?
Эээ.. А какие требования к транслированию? Т.е. задача состоит в том, чтобы команду ассемблера получить в виде строки и транслировать ее в эквивалентный машинный код? Или как? Адрессация должна входить в возможности? А прыжки и метки? С ними что делать? Вообще, теоретически, можно обойтись просто функцией. Но чтобы загнать туда всю систему команд x86, MMX, SSE, SSE2 (при необходимости), надо обладать железной задницей.
Стокнулся с проблемой утечки памяти в С++ проекте. Проект писал не я и давно. Проект большой. Какие программные продукты могут оказать мне помощь в поиске некорректного участка кода?
Что понимает по "некорректным участком кода"? Вроде как компайл-тайм ищется штатным анализатором кода компилятора. А рантайм ошибки - встроенным отладчиком. Кстати, Олли-дебаггер умеет подключать либ-файлы и отладочную инфу к себе, так что им тоже можно, при условии наличия полного списка сопуствующих компиляции ресурсов.
Всем интересующимся ассемблером и околоассемблером!
Нашёл новую и интересную книгу очень популярного автора. Описание и линк тут: http://www.nowa.cc/showpost.php?p=1438703&postcount=4
скажите только начинаю програмить на асме. обязательно знать дискреты а то меня тут стращали без дискрет никуда. у меня с логикой вроде всё в порядке. заранее спасибо.
на первых порах учился кракать испытывал на firefox мучил dasm'ом windasm32 както у меня легко получилось распечатать исходник что теперь не требует ключа.
обязательно знать дискреты а то меня тут стращали без дискрет никуда
в смысле дискретную математику? в общем, желательно знать хоть чуть-чуть. а всё, что тебе пригодится, и чего ты сейчас не знаешь, придётся узнать по ходу дела :) пока найди хороший ман, и учи асм
Вобще сначала очень не помешает понять принци работы проца
хотя бы базово. Хотя это может и привести к плачевным результатам
типа перехода на прогаминг микроконтроллеров :).
WASM.RU тебе в пмощь и да поможет тебе Абель. ))
Themida
Как с ней баротса?????
Не один отладчик не берьот
Да, последние версии этого протектора - не для новичка.
Глянь тут (http://www.wasm.ru/article.php?article=themida2005).
Да, последние версии этого протектора - не для новичка.
Глянь тут (http://www.wasm.ru/article.php?article=themida2005).
Themida v1.9.1.0
Кто чо посаветует???:sos::sos::sos:
привет всем.помогите разобраться с такой проблемой.при открытии нужной проги в Олли выдает такое окошко:Module "Dinopamb"has entry point outside the code(as specified in the PE header).Maybe this file is self-extracting or self-modifying.Please keep it in mind when setting breakpoints.Смысл я в общих чертах понял,что делать дальше?
Роджер8, это значит, что файл запакован/зашифрован. дальше - вручную или автоматически расшифровывай и будет тебе хорошо
про распаковку сюда: wasm.ru и cracklab.ru
.data
some0 DB 10,00 ; допустим адрес some0 будет 0x00010000 значит данные его расположены по адресу 0x00010000 и 0x00010001
some1 DD 1000 ; допустим адрес some1 будет 0x00020000 значит данные его аналогично распоолжены.
.code
some0+1 = 0x00010001
теперь вопрос.
some1+1 = 0x00010001 или 0x00010002 ?
Адресация побайтовая или же зависит от типа переменной?
Есть прога(текст ниже)...Она издает гудок при нажатии каждой 2 кропки,необходимо чтобы при нажатии каждой 2 клавиши она издавала щелчек.Подскажите где подправить и что
.386
.model flat, stdcall
option casemap:none
;подключаемые модули
include c:\masm32\include\windows.inc
include c:\masm32\include\user32.inc
include c:\masm32\include\kernel32.inc
include c:\masm32\include\gdi32.inc
;подключаемые библиотеки
includelib c:\masm32\lib\user32.lib
includelib c:\masm32\lib\kernel32.lib
includelib c:\masm32\lib\gdi32.lib
WinMain PROTO :DWORD,:DWORD,:DWORD,:DWORD
WndProc PROTO :DWORD,:DWORD,:DWORD,:DWORD
;Инициализация переменных
.data
szDisplayName DB "Курсовик",0
CommandLine DD 0
hWnd DD 0
hInstance DD 0
szClassName DB "Demo_Class", 0
sTitle DB "Введите символ", 0
sMsg DB "Вы ввели вторую букву : "
cll DB ?, 0;переменная хранящая введенный символ
koll DB 0
.code
start:
push NULL
call GetModuleHandle
mov hInstance, EAX
call GetCommandLine
mov CommandLine, EAX
push SW_SHOWDEFAULT
push CommandLine
push NULL
push hInstance
call WinMain
push EAX
call ExitProcess
WinMain proc hInst :DWORD,
hPrevInst :DWORD,
CmdLine :DWORD,
CmdShow :DWORD
;локальные переменные процедуры
LOCAL wc :WNDCLASSEX
LOCAL msg :MSG
;инициализация окна
mov wc.cbSize, sizeof WNDCLASSEX
mov wc.style, CS_HREDRAW or CS_VREDRAW
mov wc.lpfnWndProc, offset WndProc
mov wc.cbClsExtra, NULL
mov wc.cbWndExtra, NULL
push hInst
pop wc.hInstance
mov wc.hbrBackground, COLOR_BTNFACE+9
mov wc.lpszMenuName, NULL
mov wc.lpszClassName, offset szClassName
invoke LoadIcon, NULL, IDI_APPLICATION
mov wc.hIcon, EAX
invoke LoadCursor, NULL, IDC_ARROW
mov wc.hCursor, EAX
mov wc.hIconSm, 0
invoke RegisterClassEx, ADDR wc
invoke CreateWindowEx, WS_EX_OVERLAPPEDWINDOW, ADDR szClassName, \
ADDR szDisplayName, WS_OVERLAPPEDWINDOW, \
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, \
CW_USEDEFAULT, NULL, NULL, hInst, NULL
mov hWnd, EAX
invoke ShowWindow, hWnd, SW_SHOWNORMAL
invoke UpdateWindow, hWnd
;______________________
StartLoop:
push 0
push 0
push NULL
lea EAX, msg
push EAX
call GetMessage
cmp EAX, 0
je ExitLoop
lea EAX, msg
push EAX
call TranslateMessage
lea EAX, msg
push EAX
call DispatchMessage
jmp StartLoop
ExitLoop:
mov EAX,msg.wParam
ret
WinMain endp
;_____________________
WndProc proc hWin :DWORD,
uMsg :DWORD,
wParam :DWORD,
lParam :DWORD,
LOCAL hdc :HDC
LOCAL ps :PAINTSTRUCT
cmp uMsg, WM_PAINT
jne next_1
invoke BeginPaint, hWnd, ADDR ps
mov hdc, EAX
lea EDX, ps
push EDX
push hWnd
call EndPaint
ret
;получение и обработка клавиш
next_1:
cmp uMsg, WM_CHAR
jne next_2
mov EAX,wParam
mov cll, AL
;возврат данных для окна
;проверка какая по счету буква
cmp koll, 0
jz next_12
cmp koll, 1
jz next_11
next_11:
mov koll, 0
jmp next_13
next_12:
mov koll, 1
jmp next_2
next_13:
push MB_OK
push offset sTitle
push offset sMsg
push 0
call MessageBeep;возпроизводит звук если messagebox то выводит окно
ret
;вывод и закрытие окна по сигналу
next_2:
cmp uMsg, WM_DESTROY
jne next_3
push NULL
call PostQuitMessage
xor EAX, EAX
ret
next_3:
push lParam
push wParam
push uMsg
push hWin
call DefWindowProc
ret
WndProc endp
end start
А что имеется ввиду под щелчком?
next_13:
push MB_OK
push offset sTitle
push offset sMsg
push 0
call MessageBeep;возпроизводит звук если messagebox то выводит окно
ret
Вот эта часть кода отвечает за вызов Beep-а. Как то чудесато автор написал - положил все что нужно для MessageBox-а в стек и вызвал Beep :) Должно быть подразумевлось MessageBox все таки. Если под щелчком имеет ввиду MessageBox то всего лишь нужно изменить
call MessageBeep на call MessageBox.
PS: А какой толк использовать MASM не пользуясь макросами? Тот же FASM будет предпочтительней если вы можете и пишете без использования макросов.
при call messagebox также осуществляется звук при нажатии каждой 2 клавиши,однако при этом на экран выводится сообщение о том какой символ введен.Да так будет лучше я считаю...
Программа переделывалась мной из программы выполняющей немного другое,так что не удивительно наличе косяков.Спасибо что обратили внимания...
Еще одно не пойму...Читал про Message Beep,вызов звуковых сигналов и тд...Так вот как я понял,щелчек выводится,если в винде не установлен звук в настройках(там где звуковые схемы и тд),либо нет звуковой карты и тд...Ну я проверил,в таком случае мой комп просто не воспроизводит никаких сигналов и все...В чем суть? особенности компа или недочет в коде,или я что т опонял не так?
Не знаю почему это сообщение не доходит к спикеру, но во всяком случае Beep (http://msdn.microsoft.com/en-us/library/ms679277(VS.85).aspx) работает нормально. Но я думаю что оно все же доходит но аргументы (частота, продолжительность) - установлены в ноль... хотя это просто предположение.
Извините а не могли бы вы проверить программу(издает ли она щелчек в случае если звук в настойках винды не настроен?)
экзешник тут
при call messagebox пишется введенный второй символ в всплывающем окне,и издается сигнал стандартный звук из настроек windows
Но если данный звук в винде не настроен,у меня почему то ничего не проигрывается и не щелкает
Добавлено через 2 минуты
Извините а не могли бы вы проверить программу(издает ли она щелчек в случае если звук в настойках винды не настроен?)
экзешник тут
http://ifolder.ru/9849329
при call messagebox пишется введенный второй символ в всплывающем окне,и издается сигнал стандартный звук из настроек windows
Но если данный звук в винде не настроен,у меня почему то ничего не щелкает
При нажатии два раза на клавишу выскакивает MessageBox с соответсвующим звуком(стандартным для него) и больше вобщем то ничего. Другие звуки кроме как от MessageBox-а не воспроизводятся. Косяки скорее всего с самой осью, не думаю что это может быть ошибка в коде.
Прога пишет в реестр какой-то дамп. Ну собсно регистрацию... В окне проги торчитповерх скина юзернейм того кто зарегился. Team bla-blah... Формат серийника при регистрации такой 3J-CWUNBTW-YL9J276-1134
Может кто нибудь возьмётся перетряхнуть этот дамп, что в окне другой юзер всплыл? Правдо благотворительно только, денех нет совсем :)
Вообще, насколько это реально?
[HKEY_CURRENT_USER\Software\NuEdge Development\SonicCharge]
"Data"=hex:ed,ca,25,b7,7f,e1,8f,0d,31,9b,fa,75,55,7d,e7, 5b,8a,9f,0b,51,88,50,\
4c,07,90,6a,32,d7,e3,ae,36,df,15,cd,63,4c,88,9a,b3 ,d7,77,59,c4,be,98,3d,2d,\
4a,a7,39,38,30,fb,6a,f4,d3,7e,b3,18,73,92,90,49,32 ,25,06,27,36,bb,2b,11,38,\
ad,14,ec,43,29,8a,31,0d,96,7e,55,0a,7f,19,0e,5d,81 ,f5,7a,6d,19,64,65,31,0f,\
e0,73,00,44,08,11,d6,0b,69,79,55,08,dd,46,7f,6c,93 ,c2,9e,86,77,b0,6d,4a,67,\
9f,ca,03,43,65,7a,2e,10,9c,a2,fb,a9,24,96,ea,40,0a ,c3,a0,1d,61,14,03,c0,07,\
98,82,e1,67,c9,a3,78,e1,87,db,63,a0,e0,94,cc,5b,14 ,ce,f4,2c,72,1e,1e,65,54,\
83,9f,86,e2,ef,78,7c,8b,3f,5a,6f,bf,05,05,2b,cd,c2 ,e7,e3,93,dc,7b,80,b5,c0,\
b1,37,1f,f2,5b,90,a7,d3,11,4f,22,6b,98,85,81,4e,76 ,29,af,89,03,ec,67,56,09,\
9f,cc,ab,be,b6,e4,6e,5c,e8,cd,8e,81,61,81,65,f9,e8 ,47,2b,7e,e5,1f,56,65,5f,\
74,80,e4,32,a3,ab,76,26,d3,be,7e,b4,0b,d9,69,1a,da ,91,fd,8a,3e,3b,66,12,96,\
62,5e,21,aa,70,b2,7c,b9,f9,83,d6,88,5d,7c,34,81,3d ,26,00,a6,8a,0f,12,11,6e,\
38,69,08,4c,7a,f5,81,20,f2,ce,38,cf,08,a3,90,fc,11 ,d5,f7,d3,82,ef,ea,88,ce,\
9e,9d,c0,cb,d5,c6,3e,7b,95,66,6f,f0,42,27,6e,92,f1 ,76,48,28,f4,a3,2c,7f,14,\
c2,85,03,82,f8,c0,79,01,c1,6c,d5,fa,9a,d0,a7,c9,a6 ,fc,e3,75,5b,2f,9e,32,80,\
16,cf,b4,2c,13,59,de,ca,1c,f0,dd,26,55,d8,e6,ca,8c ,bf,d3,b7,43,c0,2f,37,5b,\
c0,46,d8,0b,f4,cf,e9,c6,37,b7,cc,db,23,0f,62,3a,e0 ,e4,88
Решил попробовать свои силы в ассемблере, но как на зло у меня не будет больше доступа в интернет на ближайшие 6 месяцев. Никто не подскажет, где можно скачать образ или архив с необходимыми программами для изучения оффлайн? Если у кого есть готовый образ, буду благодарен если выложите.
Если интересует fasm
Ассемблер под Windows для чайников, исходники к статьям
http://forum.sa-sec.org/index.php?showtopic=766
http://board.flatassembler.net/
http://flatassembler.net/download.php
http://flatassembler.net/docs.php
Для взлома делфийских программ очень хорош DeDe (делфи декомпилер).
Не подскажите где можно скачать ml.exe (MASM) версии 7.10 ?
Agasferat
10.04.2010, 17:57
В Delphi есть пункт меню CPU (подобие отладчика ассемблерного кода, ригистры там, память, стек и т.д.) токо вот он почемуто не доступен,
Кто нить знает как можно его активировать??????
Кстати окно его появляется если при запуске проекта в ассемблерном коде есть ошибка, но потом опять исчезает после того как ошибка исправлена.
(может вопрос не к месту: есть у кого нить ссылки на отладчик SOFT ICE "последней модели" с лекарством, киньте плз )
Vetal_978
14.04.2010, 21:00
Для взлома делфийских программ очень хорош DeDe (делфи декомпилер).
где его взять?
где его взять?
>>ТуТ<< (http://g.zeos.in/?q=DeDe)
IlyaPolkovni
19.06.2010, 06:27
Подскажите как распаковать фай запакованный вот этим.... Желательно понятно для зеленых.... Очень буду признателен...
DotFix NiceProtect v3.0 - v3.6
Здравствуйте! Кто-нибудь может подсказать - где найти русскоязычные туториалы по работе с WinHex? Я новичок, поискал по сети, нашёл только англоязычные и в PDF. С английским у меня плохо, только элементарный технический и то фрагментарно. Буду очень благодарен за советы.
vBulletin® v3.8.9, Copyright ©2000-2025, vBulletin Solutions, Inc.