elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


  Mostrar Temas
Páginas: 1 ... 6 7 8 9 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 ... 39
201  Programación / Ingeniería Inversa / Modificar imagen de cheat engine? en: 5 Noviembre 2011, 23:03 pm
Hola a todos, estoy modificando cheat engine, por el momento funciona de maravilla pero tengo problemas al querer modificar el logo que aparece al costado a la derecha con exescope, reshack, xn resource editor no me muestran la imagen para editar, el programa no está empaquetado y se puede encontrar facilmente en la página oficial, si alguien puediera guiarme se lo agradecería

Saludos
202  Programación / Ingeniería Inversa / Desempaquetar DLL? en: 5 Noviembre 2011, 01:30 am
Hola a todos bueno esa es mi duda cuales son los procedimientos standar para desempaquetar una dll como llego al OEP cargo la dll directamente con Olly o con el programa que la utiliza? más que nada esa es mi duda

Saludos
203  Programación / Ingeniería Inversa / Duda con OllyScript Alloc Free en: 4 Noviembre 2011, 13:26 pm
Hola a todos tengo la siguiente duda:

utilizo ALLOC y guardo el resultado en una variable var aux
luego de realizar unas ciertas operaciones la libero con FREE aux
luego el script se dirige nuevamente a ALLOC y esta vez el resultado es distinto, mi duda es si esto es normal siendo que cada vez lo libero la memoria virtual con FREE

Saludos
204  Foros Generales / Dudas Generales / duda con expresión booleana en: 3 Noviembre 2011, 16:05 pm
Hola a todos siguiendo un libro me topo con que tengo que resolver la expresión booleana pero en el último ejemplo quedo en desacuerdo con el libro:

¬F^¬V

el libro dice que es V pero yo creo que es F ya que ¬(NOT) tiene mayor procedencia por lo que invierto F Y V quedándo

V^F y esto es F, alguien que me pueda corregir?, Gracias
205  Programación / Ingeniería Inversa / Problemas con aspack 2.12 en: 27 Octubre 2011, 16:18 pm
Hola a todos, estoy teniendo un problema con intentar desempaquetar este packer

Los datos que he obtenido:
OEP:
00401524

FINAL:
00591018

INICIO:
00590164

LARGO:
EB4

La IAT está perfecta solo con código basura, por lo que no hay que reparar nada:


Código:
; Syntax for each function in a thunk (the separator is a TAB)
; ------------------------------------------------------------
; Flag   RVA   ModuleName   Ordinal   Name
;
; Details for <Valid> parameter:
; ------------------------------
; Flag:  0 = valid: no  -> - Name contains the address of the redirected API (you can set
;                            it to zero if you edit it).
;                          - Ordinal is not considered but you should let '0000' as value.
;                          - ModuleName is not considered but you should let '?' as value.
;
;        1 = valid: yes -> All next parameters on the line will be considered.
;                          Function imported by ordinal must have no name (the 4th TAB must
;                                                                          be there though).
;
;        2 = Equivalent to 0 but it is for the loader.
;
;        3 = Equivalent to 1 but it is for the loader.
;
;        4 = Equivalent to 0 with (R) tag.
;
;        5 = Equivalent to 1 with (R) tag.
;
; And finally, edit this file as your own risk! :-)

Target: C:\Documents and Settings\Administrador\Escritorio\DFStd.exe
OEP: 00001524 IATRVA: 00190164 IATSize: 00000EB4

FThunk: 00190164 NbFunc: 00000021
1 00190164 advapi32.dll 001E AdjustTokenPrivileges
1 00190168 advapi32.dll 0038 ChangeServiceConfigA
1 0019016C advapi32.dll 0040 CloseServiceHandle
1 00190170 advapi32.dll 0044 ControlService
1 00190174 advapi32.dll 0061 CreateProcessAsUserA
1 00190178 advapi32.dll 0066 CreateServiceA
1 0019017C advapi32.dll 00B1 DeleteService
1 00190180 advapi32.dll 0135 InitiateSystemShutdownA
1 00190184 advapi32.dll 0142 LogonUserA
1 00190188 advapi32.dll 0146 LookupAccountNameA
1 0019018C advapi32.dll 014E LookupPrivilegeValueA
1 00190190 advapi32.dll 01AB OpenProcessToken
1 00190194 advapi32.dll 01AC OpenSCManagerA
1 00190198 advapi32.dll 01AE OpenServiceA
1 0019019C advapi32.dll 01C2 QueryServiceStatus
1 001901A0 advapi32.dll 01CB RegCloseKey
1 001901A4 advapi32.dll 01CF RegCreateKeyExA
1 001901A8 advapi32.dll 01D0 RegCreateKeyExW
1 001901AC advapi32.dll 01D2 RegDeleteKeyA
1 001901B0 advapi32.dll 01D4 RegDeleteValueA
1 001901B4 advapi32.dll 01D9 RegEnumKeyExA
1 001901B8 advapi32.dll 01DC RegEnumValueA
1 001901BC advapi32.dll 01DE RegFlushKey
1 001901C0 advapi32.dll 01E3 RegOpenCurrentUser
1 001901C4 advapi32.dll 01E5 RegOpenKeyExA
1 001901C8 advapi32.dll 01E6 RegOpenKeyExW
1 001901CC advapi32.dll 01EA RegQueryInfoKeyA
1 001901D0 advapi32.dll 01EF RegQueryValueExA
1 001901D4 advapi32.dll 01F0 RegQueryValueExW
1 001901D8 advapi32.dll 01FB RegSetValueA
1 001901DC advapi32.dll 01FC RegSetValueExA
1 001901E0 advapi32.dll 01FD RegSetValueExW
1 001901E4 advapi32.dll 0241 StartServiceA

FThunk: 00190438 NbFunc: 00000092
1 00190438 kernel32.dll 0032 CloseHandle
1 0019043C kernel32.dll 0038 CompareStringA
1 00190440 kernel32.dll 0040 CopyFileA
1 00190444 kernel32.dll 0048 CreateDirectoryA
1 00190448 kernel32.dll 004C CreateEventA
1 0019044C kernel32.dll 0050 CreateFileA
1 00190450 kernel32.dll 005D CreateMutexA
1 00190454 kernel32.dll 0063 CreateProcessA
1 00190458 kernel32.dll 006D CreateThread
1 0019045C kernel32.dll 0070 CreateToolhelp32Snapshot
1 00190460 kernel32.dll 0080 DeleteCriticalSection
1 00190464 kernel32.dll 0082 DeleteFileA
1 00190468 kernel32.dll 0089 DeviceIoControl
1 0019046C kernel32.dll 008E DosDateTimeToFileTime
1 00190470 kernel32.dll 0097 EnterCriticalSection
1 00190474 kernel32.dll 0098 EnumCalendarInfoA
1 00190478 kernel32.dll 00B7 ExitProcess
1 0019047C kernel32.dll 00B8 ExitThread
1 00190480 kernel32.dll 00BA ExpandEnvironmentStringsA
1 00190484 kernel32.dll 00C2 FileTimeToDosDateTime
1 00190488 kernel32.dll 00C3 FileTimeToLocalFileTime
1 0019048C kernel32.dll 00CD FindClose
1 00190490 kernel32.dll 00D1 FindFirstFileA
1 00190494 kernel32.dll 00DA FindNextFileA
1 00190498 kernel32.dll 00E0 FindResourceA
1 0019049C kernel32.dll 00EC FormatMessageA
1 001904A0 kernel32.dll 00F1 FreeLibrary
1 001904A4 kernel32.dll 00F3 FreeResource
1 001904A8 kernel32.dll 00F7 GetACP
1 001904AC kernel32.dll 00FE GetCPInfo
1 001904B0 kernel32.dll 010A GetCommandLineA
1 001904B4 kernel32.dll 010E GetComputerNameA
1 001904B8 kernel32.dll 013A GetCurrentDirectoryA
1 001904BC kernel32.dll 013C GetCurrentProcess
1 001904C0 kernel32.dll 013D GetCurrentProcessId
1 001904C4 kernel32.dll 013F GetCurrentThreadId
1 001904C8 kernel32.dll 0140 GetDateFormatA
1 001904CC kernel32.dll 0146 GetDiskFreeSpaceA
1 001904D0 kernel32.dll 0147 GetDiskFreeSpaceExA
1 001904D4 kernel32.dll 014C GetDriveTypeA
1 001904D8 kernel32.dll 014E GetEnvironmentStrings
1 001904DC kernel32.dll 0153 GetExitCodeProcess
1 001904E0 kernel32.dll 0157 GetFileAttributesA
1 001904E4 kernel32.dll 015B GetFileInformationByHandle
1 001904E8 kernel32.dll 015C GetFileSize
1 001904EC kernel32.dll 015E GetFileTime
1 001904F0 kernel32.dll 015F GetFileType
1 001904F4 kernel32.dll 0162 GetFullPathNameA
1 001904F8 kernel32.dll 0169 GetLastError
1 001904FC kernel32.dll 016B GetLocalTime
1 00190500 kernel32.dll 016C GetLocaleInfoA
1 00190504 kernel32.dll 016E GetLogicalDriveStringsA
1 00190508 kernel32.dll 0170 GetLogicalDrives
1 0019050C kernel32.dll 0175 GetModuleFileNameA
1 00190510 kernel32.dll 0177 GetModuleHandleA
1 00190514 kernel32.dll 018C GetOEMCP
1 00190518 kernel32.dll 0199 GetProcAddress
1 0019051C kernel32.dll 019D GetProcessHeap
1 00190520 kernel32.dll 01AA GetProfileStringA
1 00190524 kernel32.dll 01AD GetShortPathNameA
1 00190528 kernel32.dll 01AF GetStartupInfoA
1 0019052C kernel32.dll 01B1 GetStdHandle
1 00190530 kernel32.dll 01B2 GetStringTypeA
1 00190534 kernel32.dll 01B5 GetStringTypeW
1 00190538 kernel32.dll 01B7 GetSystemDefaultLCID
1 0019053C kernel32.dll 01B8 GetSystemDefaultLangID
1 00190540 kernel32.dll 01BA GetSystemDirectoryA
1 00190544 kernel32.dll 01C1 GetSystemTimeAsFileTime
1 00190548 kernel32.dll 01CA GetTempFileNameA
1 0019054C kernel32.dll 01CC GetTempPathA
1 00190550 kernel32.dll 01D0 GetThreadLocale
1 00190554 kernel32.dll 01D5 GetTickCount
1 00190558 kernel32.dll 01D8 GetTimeZoneInformation
1 0019055C kernel32.dll 01D9 GetUserDefaultLCID
1 00190560 kernel32.dll 01DE GetVersion
1 00190564 kernel32.dll 01DF GetVersionExA
1 00190568 kernel32.dll 01E1 GetVolumeInformationA
1 0019056C kernel32.dll 01E9 GetWindowsDirectoryA
1 00190570 kernel32.dll 01EC GlobalAddAtomA
1 00190574 kernel32.dll 01EE GlobalAlloc
1 00190578 kernel32.dll 01F0 GlobalDeleteAtom
1 0019057C kernel32.dll 01F1 GlobalFindAtomA
1 00190580 kernel32.dll 01F5 GlobalFree
1 00190584 kernel32.dll 01F9 GlobalLock
1 00190588 kernel32.dll 0200 GlobalUnlock
1 0019058C kernel32.dll 0206 HeapAlloc
1 00190590 kernel32.dll 020C HeapFree
1 00190594 kernel32.dll 0219 InitializeCriticalSection
1 00190598 kernel32.dll 021D InterlockedDecrement
1 0019059C kernel32.dll 021E InterlockedExchange
1 001905A0 kernel32.dll 0221 InterlockedIncrement
1 001905A4 kernel32.dll 0234 IsValidLocale
1 001905A8 kernel32.dll 0237 LCMapStringA
1 001905AC kernel32.dll 0244 LeaveCriticalSection
1 001905B0 kernel32.dll 0245 LoadLibraryA
1 001905B4 kernel32.dll 0246 LoadLibraryExA
1 001905B8 kernel32.dll 024A LoadResource
1 001905BC kernel32.dll 024B LocalAlloc
1 001905C0 kernel32.dll 024F LocalFree
1 001905C4 kernel32.dll 0258 LockResource
1 001905C8 kernel32.dll 0262 MoveFileExA
1 001905CC kernel32.dll 0267 MulDiv
1 001905D0 kernel32.dll 0268 MultiByteToWideChar
1 001905D4 kernel32.dll 0278 OpenProcess
1 001905D8 kernel32.dll 027F OutputDebugStringA
1 001905DC kernel32.dll 0288 Process32First
1 001905E0 kernel32.dll 028A Process32Next
1 001905E4 kernel32.dll 029A RaiseException
1 001905E8 kernel32.dll 02A7 ReadFile
1 001905EC kernel32.dll 02B6 RemoveDirectoryA
1 001905F0 kernel32.dll 02C0 ResetEvent
1 001905F4 kernel32.dll 02C3 ResumeThread
1 001905F8 kernel32.dll 02C8 RtlUnwind
1 001905FC kernel32.dll 02DF SetConsoleCtrlHandler
1 00190600 kernel32.dll 0301 SetEndOfFile
1 00190604 kernel32.dll 0304 SetErrorMode
1 00190608 kernel32.dll 0305 SetEvent
1 0019060C kernel32.dll 0308 SetFileAttributesA
1 00190610 kernel32.dll 030A SetFilePointer
1 00190614 kernel32.dll 030E SetFileTime
1 00190618 kernel32.dll 0258 LockResource
1 0019061C kernel32.dll 02C2 SetLastError
1 00190620 kernel32.dll 0331 SetThreadLocale
1 00190624 kernel32.dll 0342 SizeofResource
1 00190628 kernel32.dll 0343 Sleep
1 0019062C kernel32.dll 0344 SleepEx
1 00190630 kernel32.dll 034B TerminateProcess
1 00190634 kernel32.dll 034C TerminateThread
1 00190638 kernel32.dll 0350 TlsAlloc
1 0019063C kernel32.dll 0351 TlsFree
1 00190640 kernel32.dll 0352 TlsGetValue
1 00190644 kernel32.dll 0353 TlsSetValue
1 00190648 kernel32.dll 035C UnhandledExceptionFilter
1 0019064C kernel32.dll 036F VirtualAlloc
1 00190650 kernel32.dll 0372 VirtualFree
1 00190654 kernel32.dll 0375 VirtualProtect
1 00190658 kernel32.dll 0377 VirtualQuery
1 0019065C kernel32.dll 037F WaitForSingleObject
1 00190660 kernel32.dll 0383 WideCharToMultiByte
1 00190664 kernel32.dll 0390 WriteFile
1 00190668 kernel32.dll 03A8 lstrcat
1 0019066C kernel32.dll 03AB lstrcmp
1 00190670 kernel32.dll 03AE lstrcmpi
1 00190674 kernel32.dll 03B1 lstrcpy
1 00190678 kernel32.dll 03B4 lstrcpyn
1 0019067C kernel32.dll 03B7 lstrlen

FThunk: 00190694 NbFunc: 00000003
1 00190694 netapi32.dll 00F2 NetUserAdd
1 00190698 netapi32.dll 00F4 NetUserDel
1 0019069C netapi32.dll 00A7 NetLocalGroupAddMembers

FThunk: 001906B4 NbFunc: 00000003
1 001906B4 version.dll 0001 GetFileVersionInfoA
1 001906B8 version.dll 0002 GetFileVersionInfoSizeA
1 001906BC version.dll 000B VerQueryValueA

FThunk: 001906D0 NbFunc: 00000002
1 001906D0 ws2_32.dll 0008 htonl
1 001906D4 ws2_32.dll 0008 htonl

FThunk: 001906F0 NbFunc: 00000004
1 001906F0 winspool.drv 0086 ClosePrinter
1 001906F4 winspool.drv 00B1 DocumentPropertiesA
1 001906F8 winspool.drv 00EA EnumPrintersA
1 001906FC winspool.drv 0105 OpenPrinterA

FThunk: 00190764 NbFunc: 00000017
1 00190764 comctl32.dll 0027 ImageList_Add
1 00190768 comctl32.dll 002A ImageList_BeginDrag
1 0019076C comctl32.dll 002D ImageList_Destroy
1 00190770 comctl32.dll 002E ImageList_DragEnter
1 00190774 comctl32.dll 002F ImageList_DragLeave
1 00190778 comctl32.dll 0030 ImageList_DragMove
1 0019077C comctl32.dll 0031 ImageList_DragShowNolock
1 00190780 comctl32.dll 0032 ImageList_Draw
1 00190784 comctl32.dll 0033 ImageList_DrawEx
1 00190788 comctl32.dll 0036 ImageList_EndDrag
1 0019078C comctl32.dll 0037 ImageList_GetBkColor
1 00190790 comctl32.dll 0038 ImageList_GetDragImage
1 00190794 comctl32.dll 003B ImageList_GetIconSize
1 00190798 comctl32.dll 003C ImageList_GetImageCount
1 0019079C comctl32.dll 0043 ImageList_Read
1 001907A0 comctl32.dll 0044 ImageList_Remove
1 001907A4 comctl32.dll 0045 ImageList_Replace
1 001907A8 comctl32.dll 004B ImageList_SetBkColor
1 001907AC comctl32.dll 004F ImageList_SetIconSize
1 001907B0 comctl32.dll 0052 ImageList_Write
1 001907B4 comctl32.dll 0011 InitCommonControls
1 001907B8 comctl32.dll 005A _TrackMouseEvent
1 001907BC comctl32.dll 002C ImageList_Create

FThunk: 00190904 NbFunc: 0000004F
1 00190904 gdi32.dll 0013 BitBlt
1 00190908 gdi32.dll 0024 CopyEnhMetaFileA
1 0019090C gdi32.dll 0028 CreateBitmap
1 00190910 gdi32.dll 002A CreateBrushIndirect
1 00190914 gdi32.dll 002D CreateCompatibleBitmap
1 00190918 gdi32.dll 002E CreateCompatibleDC
1 0019091C gdi32.dll 002F CreateDCA
1 00190920 gdi32.dll 0033 CreateDIBSection
1 00190924 gdi32.dll 0034 CreateDIBitmap
1 00190928 gdi32.dll 003B CreateFontIndirectA
1 0019092C gdi32.dll 0040 CreateHalftonePalette
1 00190930 gdi32.dll 0042 CreateICA
1 00190934 gdi32.dll 0046 CreatePalette
1 00190938 gdi32.dll 0049 CreatePenIndirect
1 0019093C gdi32.dll 0051 CreateSolidBrush
1 00190940 gdi32.dll 008D DeleteDC
1 00190944 gdi32.dll 008E DeleteEnhMetaFile
1 00190948 gdi32.dll 0090 DeleteObject
1 0019094C gdi32.dll 0097 EndDoc
1 00190950 gdi32.dll 0099 EndPage
1 00190954 gdi32.dll 00D8 ExcludeClipRect
1 00190958 gdi32.dll 00DE ExtTextOutA
1 0019095C gdi32.dll 011C GdiFlush
1 00190960 gdi32.dll 014C GetBitmapBits
1 00190964 gdi32.dll 0152 GetBrushOrgEx
1 00190968 gdi32.dll 0162 GetClipBox
1 0019096C gdi32.dll 0167 GetCurrentPositionEx
1 00190970 gdi32.dll 0169 GetDCOrgEx
1 00190974 gdi32.dll 016B GetDIBColorTable
1 00190978 gdi32.dll 016C GetDIBits
1 0019097C gdi32.dll 016D GetDeviceCaps
1 00190980 gdi32.dll 0173 GetEnhMetaFileBits
1 00190984 gdi32.dll 0176 GetEnhMetaFileHeader
1 00190988 gdi32.dll 0177 GetEnhMetaFilePaletteEntries
1 0019098C gdi32.dll 0197 GetObjectA
1 00190990 gdi32.dll 019C GetPaletteEntries
1 00190994 gdi32.dll 019E GetPixel
1 00190998 gdi32.dll 01A6 GetRgnBox
1 0019099C gdi32.dll 01A7 GetStockObject
1 001909A0 gdi32.dll 01AB GetSystemPaletteEntries
1 001909A4 gdi32.dll 01B6 GetTextExtentPoint32A
1 001909A8 gdi32.dll 01B8 GetTextExtentPointA
1 001909AC gdi32.dll 01BE GetTextMetricsA
1 001909B0 gdi32.dll 01C3 GetWinMetaFileBits
1 001909B4 gdi32.dll 01C5 GetWindowOrgEx
1 001909B8 gdi32.dll 01C9 IntersectClipRect
1 001909BC gdi32.dll 01CF LineTo
1 001909C0 gdi32.dll 01D0 MaskBlt
1 001909C4 gdi32.dll 01D3 MoveToEx
1 001909C8 gdi32.dll 01DF PatBlt
1 001909CC gdi32.dll 01E2 PlayEnhMetaFile
1 001909D0 gdi32.dll 01F0 Polyline
1 001909D4 gdi32.dll 01F5 RealizePalette
1 001909D8 gdi32.dll 01F7 RectVisible
1 001909DC gdi32.dll 01F8 Rectangle
1 001909E0 gdi32.dll 0202 RestoreDC
1 001909E4 gdi32.dll 0209 SaveDC
1 001909E8 gdi32.dll 020E SelectClipRgn
1 001909EC gdi32.dll 0210 SelectObject
1 001909F0 gdi32.dll 0211 SelectPalette
1 001909F4 gdi32.dll 0212 SetAbortProc
1 001909F8 gdi32.dll 0217 SetBkColor
1 001909FC gdi32.dll 0218 SetBkMode
1 00190A00 gdi32.dll 021B SetBrushOrgEx
1 00190A04 gdi32.dll 0220 SetDIBColorTable
1 00190A08 gdi32.dll 0224 SetEnhMetaFileBits
1 00190A0C gdi32.dll 022D SetMapMode
1 00190A10 gdi32.dll 0233 SetPixel
1 00190A14 gdi32.dll 0237 SetROP2
1 00190A18 gdi32.dll 023A SetStretchBltMode
1 00190A1C gdi32.dll 023E SetTextColor
1 00190A20 gdi32.dll 0241 SetViewportOrgEx
1 00190A24 gdi32.dll 0243 SetWinMetaFileBits
1 00190A28 gdi32.dll 0245 SetWindowOrgEx
1 00190A2C gdi32.dll 0247 StartDocA
1 00190A30 gdi32.dll 024A StartPage
1 00190A34 gdi32.dll 024B StretchBlt
1 00190A38 gdi32.dll 0252 TranslateCharsetInfo
1 00190A3C gdi32.dll 0254 UnrealizeObject

FThunk: 00190D18 NbFunc: 000000B4
1 00190D18 user32.dll 0001 ActivateKeyboardLayout
1 00190D1C user32.dll 0003 AdjustWindowRectEx
1 00190D20 user32.dll 000E BeginPaint
1 00190D24 user32.dll 001B CallNextHookEx
1 00190D28 user32.dll 001C CallWindowProcA
1 00190D2C user32.dll 0027 CharLowerA
1 00190D30 user32.dll 0028 CharLowerBuffA
1 00190D34 user32.dll 002B CharNextA
1 00190D38 user32.dll 0031 CharToOemA
1 00190D3C user32.dll 0036 CharUpperBuffA
1 00190D40 user32.dll 003A CheckMenuItem
1 00190D44 user32.dll 003D ChildWindowFromPoint
1 00190D48 user32.dll 0041 ClientToScreen
1 00190D4C user32.dll 0049 CopyIcon
1 00190D50 user32.dll 0058 CreateIcon
1 00190D54 user32.dll 005E CreateMenu
1 00190D58 user32.dll 005F CreatePopupMenu
1 00190D5C user32.dll 0061 CreateWindowExA
1 00190D60 user32.dll 008A DefFrameProcA
1 00190D64 user32.dll 008C DefMDIChildProcA
1 00190D68 user32.dll 008F DefWindowProcA
1 00190D6C user32.dll 0092 DeleteMenu
1 00190D70 user32.dll 0096 DestroyCursor
1 00190D74 user32.dll 0096 DestroyCursor
1 00190D78 user32.dll 0098 DestroyMenu
1 00190D7C user32.dll 009A DestroyWindow
1 00190D80 user32.dll 009F DialogBoxParamA
1 00190D84 user32.dll 00A2 DispatchMessageA
1 00190D88 user32.dll 00A3 DispatchMessageW
1 00190D8C user32.dll 00B3 DrawEdge
1 00190D90 user32.dll 00B4 DrawFocusRect
1 00190D94 user32.dll 00B6 DrawFrameControl
1 00190D98 user32.dll 00B7 DrawIcon
1 00190D9C user32.dll 00B8 DrawIconEx
1 00190DA0 user32.dll 00B9 DrawMenuBar
1 00190DA4 user32.dll 00BD DrawTextA
1 00190DA8 user32.dll 00C3 EnableMenuItem
1 00190DAC user32.dll 00C4 EnableScrollBar
1 00190DB0 user32.dll 00C5 EnableWindow
1 00190DB4 user32.dll 00C7 EndDialog
1 00190DB8 user32.dll 00C9 EndPaint
1 00190DBC user32.dll 00CC EnumChildWindows
1 00190DC0 user32.dll 00DC EnumThreadWindows
1 00190DC4 user32.dll 00DF EnumWindows
1 00190DC8 user32.dll 00E0 EqualRect
1 00190DCC user32.dll 00E2 ExitWindowsEx
1 00190DD0 user32.dll 00E3 FillRect
1 00190DD4 user32.dll 00E4 FindWindowA
1 00190DD8 user32.dll 00EA FrameRect
1 00190DDC user32.dll 00EC GetActiveWindow
1 00190DE0 user32.dll 00F4 GetCapture
1 00190DE4 user32.dll 00F7 GetClassInfoA
1 00190DE8 user32.dll 00FB GetClassLongA
1 00190DEC user32.dll 00FD GetClassNameA
1 00190DF0 user32.dll 0100 GetClientRect
1 00190DF4 user32.dll 0102 GetClipboardData
1 00190DF8 user32.dll 0109 GetCursor
1 00190DFC user32.dll 010C GetCursorPos
1 00190E00 user32.dll 010D GetDC
1 00190E04 user32.dll 010E GetDCEx
1 00190E08 user32.dll 010F GetDesktopWindow
1 00190E0C user32.dll 0112 GetDlgItem
1 00190E10 user32.dll 0117 GetFocus
1 00190E14 user32.dll 0118 GetForegroundWindow
1 00190E18 user32.dll 011B GetIconInfo
1 00190E1C user32.dll 0120 GetKeyNameTextA
1 00190E20 user32.dll 0122 GetKeyState
1 00190E24 user32.dll 0123 GetKeyboardLayout
1 00190E28 user32.dll 0124 GetKeyboardLayoutList
1 00190E2C user32.dll 0125 GetKeyboardLayoutNameA
1 00190E30 user32.dll 0127 GetKeyboardState
1 00190E34 user32.dll 0128 GetKeyboardType
1 00190E38 user32.dll 0129 GetLastActivePopup
1 00190E3C user32.dll 012D GetMenu
1 00190E40 user32.dll 0133 GetMenuItemCount
1 00190E44 user32.dll 0134 GetMenuItemID
1 00190E48 user32.dll 0135 GetMenuItemInfoA
1 00190E4C user32.dll 0138 GetMenuState
1 00190E50 user32.dll 0139 GetMenuStringA
1 00190E54 user32.dll 013D GetMessagePos
1 00190E58 user32.dll 0146 GetParent
1 00190E5C user32.dll 014B GetPropA
1 00190E60 user32.dll 0156 GetScrollInfo
1 00190E64 user32.dll 0157 GetScrollPos
1 00190E68 user32.dll 0158 GetScrollRange
1 00190E6C user32.dll 015A GetSubMenu
1 00190E70 user32.dll 015B GetSysColor
1 00190E74 user32.dll 015C GetSysColorBrush
1 00190E78 user32.dll 015D GetSystemMenu
1 00190E7C user32.dll 0164 GetTopWindow
1 00190E80 user32.dll 0165 GetUpdateRect
1 00190E84 user32.dll 016B GetWindow
1 00190E88 user32.dll 016D GetWindowDC
1 00190E8C user32.dll 016F GetWindowLongA
1 00190E90 user32.dll 0170 GetWindowLongW
1 00190E94 user32.dll 0174 GetWindowPlacement
1 00190E98 user32.dll 0175 GetWindowRect
1 00190E9C user32.dll 0178 GetWindowTextA
1 00190EA0 user32.dll 017C GetWindowThreadProcessId
1 00190EA4 user32.dll 018B InflateRect
1 00190EA8 user32.dll 018E InsertMenuA
1 00190EAC user32.dll 018F InsertMenuItemA
1 00190EB0 user32.dll 0193 IntersectRect
1 00190EB4 user32.dll 0194 InvalidateRect
1 00190EB8 user32.dll 019D IsCharUpperA
1 00190EBC user32.dll 019F IsChild
1 00190EC0 user32.dll 01A1 IsDialogMessage
1 00190EC4 user32.dll 01A3 IsDialogMessageW
1 00190EC8 user32.dll 01A7 IsIconic
1 00190ECC user32.dll 01A9 IsRectEmpty
1 00190ED0 user32.dll 01AC IsWindow
1 00190ED4 user32.dll 01AD IsWindowEnabled
1 00190ED8 user32.dll 01AF IsWindowUnicode
1 00190EDC user32.dll 01B0 IsWindowVisible
1 00190EE0 user32.dll 01B1 IsZoomed
1 00190EE4 user32.dll 01B3 KillTimer
1 00190EE8 user32.dll 01B6 LoadBitmapA
1 00190EEC user32.dll 01B8 LoadCursorA
1 00190EF0 user32.dll 01BC LoadIconA
1 00190EF4 user32.dll 01C0 LoadKeyboardLayoutA
1 00190EF8 user32.dll 01C9 LoadStringA
1 00190EFC user32.dll 01D4 MapVirtualKeyA
1 00190F00 user32.dll 01D8 MapWindowPoints
1 00190F04 user32.dll 01DC MessageBeep
1 00190F08 user32.dll 01DD MessageBoxA
1 00190F0C user32.dll 01EF OemToCharA
1 00190F10 user32.dll 01F3 OffsetRect
1 00190F14 user32.dll 01FE PeekMessageA
1 00190F18 user32.dll 01FF PeekMessageW
1 00190F1C user32.dll 0200 PostMessageA
1 00190F20 user32.dll 0202 PostQuitMessage
1 00190F24 user32.dll 020C PtInRect
1 00190F28 user32.dll 0216 RedrawWindow
1 00190F2C user32.dll 0217 RegisterClassA
1 00190F30 user32.dll 021B RegisterClipboardFormatA
1 00190F34 user32.dll 021B RegisterClipboardFormatA
1 00190F38 user32.dll 022A ReleaseCapture
1 00190F3C user32.dll 022B ReleaseDC
1 00190F40 user32.dll 022C RemoveMenu
1 00190F44 user32.dll 022D RemovePropA
1 00190F48 user32.dll 0232 ScreenToClient
1 00190F4C user32.dll 0235 ScrollWindow
1 00190F50 user32.dll 0237 SendDlgItemMessageA
1 00190F54 user32.dll 023C SendMessageA
1 00190F58 user32.dll 0241 SendMessageW
1 00190F5C user32.dll 0244 SetActiveWindow
1 00190F60 user32.dll 0245 SetCapture
1 00190F64 user32.dll 0248 SetClassLongA
1 00190F68 user32.dll 024E SetCursor
1 00190F6C user32.dll 0257 SetFocus
1 00190F70 user32.dll 0258 SetForegroundWindow
1 00190F74 user32.dll 025E SetMenu
1 00190F78 user32.dll 0263 SetMenuItemInfoA
1 00190F7C user32.dll 0267 SetParent
1 00190F80 user32.dll 026B SetPropA
1 00190F84 user32.dll 026D SetRect
1 00190F88 user32.dll 026F SetScrollInfo
1 00190F8C user32.dll 0270 SetScrollPos
1 00190F90 user32.dll 0271 SetScrollRange
1 00190F94 user32.dll 027B SetTimer
1 00190F98 user32.dll 0281 SetWindowLongA
1 00190F9C user32.dll 0282 SetWindowLongW
1 00190FA0 user32.dll 0283 SetWindowPlacement
1 00190FA4 user32.dll 0284 SetWindowPos
1 00190FA8 user32.dll 0287 SetWindowTextA
1 00190FAC user32.dll 028B SetWindowsHookExA
1 00190FB0 user32.dll 0290 ShowOwnedPopups
1 00190FB4 user32.dll 0291 ShowScrollBar
1 00190FB8 user32.dll 0293 ShowWindow
1 00190FBC user32.dll 029A SystemParametersInfoA
1 00190FC0 user32.dll 02A5 TrackPopupMenu
1 00190FC4 user32.dll 02AA TranslateMDISysAccel
1 00190FC8 user32.dll 02AB TranslateMessage
1 00190FCC user32.dll 02AF UnhookWindowsHookEx
1 00190FD0 user32.dll 02B4 UnregisterClassA
1 00190FD4 user32.dll 02BC UpdateWindow
1 00190FD8 user32.dll 02D1 WaitMessage
1 00190FDC user32.dll 02D6 WindowFromPoint
1 00190FE0 user32.dll 02D9 wsprintfA
1 00190FE4 user32.dll 015E GetSystemMetrics

FThunk: 00191004 NbFunc: 00000005
1 00191004 ole32.dll 0012 CoCreateInstance
1 00191008 ole32.dll 003C CoInitialize
1 0019100C ole32.dll 003E CoInitializeSecurity
1 00191010 ole32.dll 0065 CoTaskMemAlloc
1 00191014 ole32.dll 006A CoUninitialize

Los pasos que hago son:
Detenido en EP traceo paso el PUSHAD, luego follow in dump en el registro ESP y coloco un hardware breakpoint on access una vez detenido llego hasta el retn (Ctrl+F9) paso con F7 y llego al OEP, luego de eso busco alguna API que apunte a la IAT, verifico el inicio y final de la IAT, dumpeo abro import rect coloco RVA INICIO LARGO reparo con fix dump pero al iniciar el dump con la IAT reparada me aparecer

Error 00004

Si alguien me pudiera explicar cual es mi error por que desempaquetar aspack hay programas pero quiero aprender como desempaquetarlo de manera manual

Adjunto el link del programa:
http://www.mediafire.com/?ny17t4az6yh1whc
206  Programación / Ingeniería Inversa / Feliz cumpleaños MCKSys en: 24 Octubre 2011, 17:29 pm
Pues eso desearte un feliz cumpleaños y agradecerte humildemente por todo ese esfuerzo que haz dedicado para ayudar en especial agradecerte personalmente por tu apoyo frente a mi muchas gracias por todo

UND3R
207  Programación / Ingeniería Inversa / [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine en: 23 Octubre 2011, 17:01 pm
OllyDBG y Cheat engine

OllyDBG puede ser muy útil junto con Cheat engine al momento de querer
alterar, modificar un proceso en tiempo de ejecución y en este tutorial veremos cómo podemos aprovechar estos dos grandes programas en la creación de un trainer que funcione en cualquier máquina.

En esta ocasión utilizaremos como ejemplo un juego llamado: PlantsVsZombies versión 1.2.0.1073 Un juego simple pero muy adictivo.

Descarga:http://www.mediafire.com/download.php?6s16ifbo81evav9
(Subido por Wildseba)

Cheat engine:
Cheat engine es un potente buscador de address que por lo general es usado para modificar valores de juegos.

OllyDBG:
Excelente debugger con un sin fin de opciones que facilitan considerablemente su uso.

I)Conociendo al objetivo
Si iniciamos y luego de esperar que cargue el juego veremos el menú principal:


Iniciamos una nueva partida en modo aventura y al comenzar el juego veremos lo siguiente:


Explicaré rápidamente el juego, como podemos apreciar vemos una línea de césped esa línea es el lugar en donde nosotros podemos plantar plantas que se encargarán de combatir a los zombies y evitar que estos entren a "nuestra casa" y que nos coman el cerebro, para poder plantar requerimos soles, en la parte superior de la pantalla a la derecha podemos ver la cantidad de soles totales que tenemos y al lado las plantas que podemos plantar. Estas plantas tienen un coste de soles y podemos verlo en la parte inferior de la planta:


Para poder colocar una planta debemos seleccionarla con un clic y luego seleccionar en qué posición de nuestro césped la queremos plantar:


Una vez plantada se nos descontará de nuestros soles totales el coste de la planta, que en este caso su coste era de 100 soles quedándonos solo 50:


Para poder tener más soles podemos recoger los que caen del cielo, estos equivalen a 25 soles:


Si atrapamos 2 se nos sumarán 50 soles a nuestra cantidad total:


Lo que intentaremos en este tutorial será evitar que al plantar plantas se nos descuenten soles. para ello debemos entender que los juegos al igual que cualquier aplicación trabajan lógicamente con valores y estos están ubicados en una cierta dirección(Address) esta dirección puede estar dentro del ejecutable(rango de address) o fuera de él (Address generado en tiempo de ejecución) por lo que nuestro objetivo será encontrar el address que opera con la cantidad de soles totales, para localizar address utilizaremos Cheat engine.

II)Cheat engine
Abrimos la herramienta Cheat engine y veremos lo siguiente:


veremos un botón que tiene un borde que cambia de color, este botón se encarga de indicarle a la herramienta Cheat engine cual será su objetivo, hacemos clic en el botón y veremos nuestra lista de procesos activos:


en este caso el proceso del juego es popcapgame1.exe lo seleccionamos y presionamos Open

Una vez seleccionado podremos buscar el address de los soles:

en mi caso actualmente poseo 100 por lo que Cheat engine buscará en todos los address aquellos que tengan valor 100, aclaro que por defecto Cheat engine utiliza números decimales pero si deseamos buscar valores hexadecimales tildamos el cuadro hex y podremos buscarlos sin ningún problema

Si desconociéramos el valor inicial del address que queremos encontrar podemos utilizar la siguiente opción:

esto nos puede ser útil para aquellos valores que no son expresados de forma numérica como por ejemplo una barra de vida.

No entraremos en detalle de las opciones de búsqueda que trae Cheat engine ya que actualmente existe mucha información sobre esta herramienta

Presionamos First scan y en el lado izquierdo nos mostrará los address que contienen el valor que hemos buscado(la idea es llegar a 1 address):


Ahora es momento de alterar el valor, nos situamos en el juego y recogemos un sol al realizar esta operación el valor 100 se transformará en 125 ya que cada sol que cae suma 25 a nuestra cantidad total de soles:




Ahora de todos los valores que anteriormente encontró Cheat engine haremos que busqué el valor 125:

Presionamos Next scan

Si miramos en la parte izquierda del programa notaremos que encontramos el address correcto :


Le hacemos doble clic y nos aparecerá en la parte inferior del programa:


Active:congela o descongela el valor del address, esto nos da la posibilidad si es que está activado nuestra cantidad de soles totales serán siempre 125

Description:Nos da la posibilidad de cambiar o colocar un nombre al address para no confundirlo con otros que tengamos en la parte inferior del programa

Address:Dirección en donde está contenido el valor encontrado

Value:Valor decimal por defecto que contiene el address

Una vez encontrado el valor podremos crear un programa que se encargue de congelar o modificar un valor de un address de un proceso en tiempo de ejecución con tan solo presionar una cierta combinación de teclas, estos programas en el área de los juegos son conocidos como trainer's

pero para poder crear un trainer el address que debemos encontrar debe estar localizado dentro del rango del ejecutable y no afuera de él ya que los address creados en tiempo de ejecución varían en cada máquina e inclusive cada vez que cargamos el juego por lo que el trainer creado funcionaría una sola vez lo cual no es la idea, esto se debe a que los programas generalmente le piden al sistema memoria virtual (VirtualAlloc) para almacenar información que solo será útil mientras se esté ejecutando, como lo son la información de una partida de un juego, no así los avances o progresos ya que estos si los debe tener el programa de manera permanente ya que cada vez que se inicie el juego se cargarán tales datos por lo que son guardados en archivos. Nuestro objetivo será localizar el address en donde operará con nuestro valor ubicado en tiempo de ejecución y modificar la operación para nuestra propia ventaja

III)OllyDBG
Atachamos con OllyDBG popcapgame1.exe:


ya cargado nos encontraremos detenido en la siguiente address:


Ahora volvemos a Cheat engine y nos dirigimos a la address en la parte inferior, presionamos clic derecho y seleccionamos "Show as hexadecimal",esto para visualizar de la misma manera que OllyDBG:


Nos quedará de la siguiente forma:


Ahora desde el dump de OllyDBG nos dirigimos al address encontrado con Cheat engine:




ya localizada la address desde OllyDBG intentaremos encontrar el lugar en donde el programa tendrá acceso al valor de la address, para ello colocamos un hardware breakpoint on write:


Presionamos F9 y plantamos una planta:


Nos detendremos en la siguiente address:


Subamos un poco más arriba para ver si encontramos alguna operación llamativa:


Notaremos que se realiza una resta, lo más probable es que se reste el valor de la planta con la cantidad total de soles, intentemos invertir el OP-Code por un ADD para que en vez de restar sume el costo de la planta con nuestra cantidad total



Quitamos el hardware breakpoint y damos RUN al comprar una planta el coste se adicionará:

En este caso de 150 aumentó a 250

Obtenido el address ubicado en el ejecutable podremos crear un trainer genérico es decir que sirva para cualquier máquina en donde sea usado

Ahora modificamos el address que está en la parte inferior del Cheat engine:


Nos quedará así:


Ahora solo nos queda crear el trainer, para ello contamos con la opción de crearlo desde el mismo Cheat engine, nos vamos a:


Veremos dos ventanas:

Esta es la ventana de configuraciones, en donde podremos seleccionar el icono, el título de la ventana, los atajos del teclado para activar las opciones del trainer, entre otras opciones

La siguiente ventana nos mostrará como quedará nuestro trainer finalizado con las configuraciones actuales que hemos hecho:


Nos ubicamos en la ventana de configuraciones  y presionamos Add Hotkey para agregar un atajo y nos aparecerá la siguiente ventana:

En esta ventana seleccionamos el addres que queramos que modifique o congele su contenido el trainer, en este caso al tener un solo address en la parte inferior, no nos aparecen más opciones

Seleccionamos el address a agregar el trainer y nos aparecerá lo siguiente:


Colocamos los siguientes datos:


Type the keys.....
Es la combinación de teclas que debemos digitar para que el trainer modifique el address

Set Value To
Cuando activemos la combinación cambiará el contenido del address al valor actual (ya que el valor actual del address lo hemos cambiado desde OllyDBG)

Description
Texto que aparecerá al lado de la combinación de teclas

Presionamos "OK" y si nos fijamos en la parte izquierda de la ventana de configuraciones veremos lo siguiente:


Ya agregada la combinación de tecla junto con su efecto presionamos "Generate trainer"

Seleccionamos la ruta en donde se generará el trainer, presionamos Guardar

Luego Presionamos Generate:


Esperamos hasta el siguiente mensaje:


Si abrimos el trainer y todo ha salido correctamente veremos lo siguiente:


Obviamente al ser un ejemplo no se ve bien estéticamente ni mucho menos posee múltiples opciones, pero de esta forma podremos crear Trainer genéricos:


208  Programación / Ingeniería Inversa / [TUTORIAL]Crackme 3 de flamer en: 20 Octubre 2011, 18:25 pm
Crackme 3 de flamer

Nombre:Crackme 3
Autor del crack:flamer
Compilador:Visual Basic
Dificultad:1

Cargamos el crackme desde OllyDBG:


Buscamos las API'S que utiliza el crackme (Ctrl+N):

Notamos la API __vbaStrCmp

Colocamos un BP en ella:


Le damos RUN (F9) e introducimos un serial cualquiera, presionamos acceder:


Se detiene en la API __vbaStrCmp:


Notamos que compara con 0 el serial introducido, retornamos de la API:


Llegamos hasta el siguiente salto:

en donde no saltará si no introducimos ningún serial

Si damos RUN se detendrá nuevamente en el BP:


Si llegamos hasta __vbaStrComp notaremos en el registro la comparación:
EAX con ECX en donde ECX es el serial correcto

Serial Correcto:subliminal_nexus

otra forma es nopear la comprobación:




Nopeando o introduciendo como serial subliminal_nexus obtendremos el siguiente mensaje:




UND3R
209  Programación / Ingeniería Inversa / [TUTORIAL]Crackme edu en: 20 Octubre 2011, 06:21 am
Tutorial Crackme edu

Nombre:Crackme edu
Dificultad:1-2
Compilador:Visual Basic
Autor del crack:$Edu$

Cargamos el crackme desde OllyDBG, Notamos claramente que es un Visual Basic 6.0:


Veamos las API'S que utiliza el crackme (Ctrl+N):


Notaremos dos API'S muy interesantes coloquemos BP'S en ellas:




La primera se encarga de comparar string's y la segunda se encarga de obtener el número de caracteres de una string, las veremos más detalladamente a continuación mientras vayamos desarrollando el tutorial

Iniciamos el crackme (F9) e introducimos ID,SERIAL y luego verificar:


Vemos que se detiene en la API __vbaStrCmp:




Llegamos hasta la call __vbaStrComp, si nos fijamos en el stack podremos ver la comparación que se va a realizar (arg2 con arg3) notaremos que comprueba el serial falso con 0, por lo que lo más probable es que esté comprobando que si es que NO introdujimos algún valor.(para ver los datos que compara debemos hacer click derecho en alguno de los dos argumentos y seleccionar follow in dump):



Pasando la call __vbaStrComp y estando detenidos en RETN 8 veremos que EAX=1 por lo que deducimos que la API __vbaStrCmp retornará 1 si es que los string comparados no son iguales:



Luego mueve el valor de EAX a EDX y luego de algunas operaciones toma el EDX(1)y lo mueve dentro de [EBP-E4]  :


Ahora realizará los mismos pasos pero con la string ID:




Compara 0 con la ID que introdujimos esto devolverá 1 al retornar de la CALL:


una vez realizada las mismas operaciones mueve respectivamente ambos valores obtenidos de las llamadas a __vbaStrCmp (Ambos retornaron 1) a EAX y ECX:



realizando un TEST EAX,ECX:

Sabemos que la única forma de que no se active el flag Z (para que salte) es que EAX y ECX sean 1 con lo cual contamos de manera correcta

Si no se cumpliera nos mostrará un mensaje diciendo que debemos ingresar los datos


Si continuamos traceando el programa hará un llamado a la API __vbaLenBstr:


retornando la call EAX contiene el número de caracteres del serial que en este caso son 4 (serial falso:1234):


Continuando se llamará nuevamente a la API:

en esta nos retornará el valor 5 ya que UND3R contiene 5 caracteres

Luego se realiza una comparación entre EAX y ECX en donde EAX es el largo de la ID y ECX el largo del serial, notaremos que si no se realiza el salto obtendremos como resultado que el serial es incorrecto, para que pueda saltar el serial no puede ser mayor(más largo) que el ID en este caso cumplimos con el requisito:


Luego de esto no creo que se utilice nuevamente la API __vbaLenBstr debido a que ya se ha calculado el largo que hemos ingresado tanto del serial y del ID por lo que lo borraremos:


Ahora si damos nuevamente F9 se detiene en la API __vbaStrCmp:


si pusheamos hasta el call __vbaStrComp y miramos el stack notaremos que se está comparando 1 con Z, siendo 1 el primer digito que introdujimos en el serial falso:






Retornando de la API EAX toma el valor de FFFFFFFF y este es movido a ESI para luego pasar por un TEST SI,SI


:
en donde la única forma de que no salte es que ESI=0, por lo que podemos colocar un BP en el salto JNZ e introducir como serial Z234 o modificar el flag Z para que no salte ya que si salta notaremos se dirigirá a la string "Serial incorrecto"

Si seguimos traceando llegaremos a la siguiente address:

previamente vemos una comparación que es 1 con 3 en donde saltará si lo que está en DI sea mayor a 3, si vemos hacia donde salta notaremos que es hacia el cartel de que el serial es correcto, aquí veo un posible pequeño bug en la programación del crackme ya lo comentaré

[EBP-D0]:


Si seguimos traceando sin alterar el salto que nos dirige al cartel de serial correcto llegaremos hasta la siguiente address:


Si bajamos un poco notaremos un salto que anteriormente habíamos pasado por el, lo más probable es que tengamos a continuación la manera de como el crackme obtuvo la letra Z como respuesta correcta para el primer carácter del serial. obviamente en este caso obtendremos el valor del segundo carácter correcto:


Lleguemos hasta la siguiente address:


Aquí notamos algo muy interesante si miramos el registro y el OP-Code del address en donde estamos detenidos:


Sabemos que ECX apunta a nuestro ID, aquí moverá a DX el valor de ECX+2 por lo que moverá el segundo carácter a DX que en este caso es una N:




Quedando EDX con de la siguiente manera:


luego a EDX le suma 5, una vez sumado mueve a EAX el valor de DX y lo pushea para la API __vbaStrCmp:


luego llega nuevamente a una comprobación que es la misma en la que nos detuvimos cuando se comparó 1 con Z:


si vemos en el stack notaremos la comparación entre nuestro segundo caracter del serial con S:






Por lo que ya contamos con la fórmula y de alguna manera el entendimiento de como trabaja el crackme

Resumimos:
-verifica que ambas cajas de textos no estén vacías
-luego verifica que el SERIAL introducido no sea mayor a la ID
-luego toma el primer carácter del serial y le suma 5
-compara el resultado del primer carácter+5 con el primer carácter del serial
-luego continua sucesivamente con un contador que es hasta el tercer carácter
-Cumpliéndose los 3 primeros caracteres obtendremos el cartel de serial correcto

Aquí el problema de $Edu$, quizás es intencional pero la comprobación es solo hasta el tercer carácter por lo que podríamos colocar tan solo 3 caracteres este sería el pequeño bug del crackme

UND3R
U=55+5=Z
N=4e+5=S
D=44+5=I
3=3+5=8
R=52+5=W


Otra forma de crackearlo es nopear el salto que viene a continuación de la comparación del serial ya que si recordamos $Edu$ colocó un contador que si se pasa por el por tercera vez es considerado el serial como correcto:





Saludos a $Edu$

EDIT:
Adjunto el keygen hecho en OllyScript:


Código
  1. VAR CONT
  2. VAR VMEMORY
  3. VAR SIZE
  4. VAR AUX
  5. VAR RESP
  6. PREG:
  7. ASK "Introduzca su ID"
  8. MOV RESP,$RESULT
  9. LEN RESP
  10. MOV SIZE,$RESULT
  11. ALLOC 100
  12. MOV VMEMORY,$RESULT
  13. MOV VMEMORY2,VMEMORY
  14. CMP VMEMORY,0
  15. JE ERROR1
  16. MOV [VMEMORY],RESP
  17. OPERACION:
  18. CMP CONT,SIZE
  19. JE EXIT
  20. MOV AUX,[VMEMORY],1
  21. ADD AUX,5
  22. MOV [VMEMORY],AUX,1
  23. INC VMEMORY
  24. INC CONT
  25. JMP OPERACION
  26. ERROR:
  27. MSG "Debe ingresar un serial"
  28. JMP PREG
  29. ERROR1:
  30. MSG "Error inesperado"
  31. RET
  32. EXIT:
  33. MOV AUX,[VMEMORY2], SIZE
  34. BUF AUX
  35. STR AUX
  36. EVAL "ID:{RESP} SERIAL:{AUX}"
  37. MSG $RESULT
  38. FREE VMEMORY2
  39. RET
210  Programación / Ingeniería Inversa / Adicionar valores a una variable con ollyscript en: 20 Octubre 2011, 03:28 am
pues eso, como puedo ir adicionando valores me explico

tengo 3 valores

A B y C

como puedo hacer para que una variable vaya adicionando esos 3 valores

VAR AUX

que AUX sea A luego AB y luego ABC

No sé si se entienda bien mi duda jeje

Saludos y gracias
Páginas: 1 ... 6 7 8 9 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 ... 39
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines