.text:00000000 ; .text:00000000 ; ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» .text:00000000 ; º This file is generated by The Interactive Disassembler (IDA) º .text:00000000 ; º Copyright (c) 2006 by DataRescue sa/nv, º .text:00000000 ; º Licensed to: University of Wisconsin, 5 users std, edu, 09/2004 º .text:00000000 ; ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ .text:00000000 ; .text:00000000 ; File Name : C:\working\TSL\analyzer\TSLFiles\DASH\regression\cert\underflow.obj .text:00000000 ; Format : COFF (X386MAGIC) .text:00000000 ; includelib "LIBCMT" .text:00000000 ; includelib "OLDNAMES"" .text:00000000 .text:00000000 .686p .text:00000000 .mmx .text:00000000 .model flat .text:00000000 .text:00000000 ; ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ .text:00000000 .text:00000000 ; Segment type: Pure code .text:00000000 _text segment para public 'CODE' use32 .text:00000000 assume cs:_text .text:00000000 assume es:nothing, ss:nothing, ds:nothing, fs:nothing, gs:nothing .text:00000000 .text:00000000 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000000 .text:00000000 ; Attributes: bp-based frame .text:00000000 .text:00000000 public _csurf_replace_strchr .text:00000000 _csurf_replace_strchr proc near ; CODE XREF: _main+1Ap .text:00000000 .text:00000000 var_4 = dword ptr -4 .text:00000000 arg_0 = dword ptr 8 .text:00000000 arg_4 = dword ptr 0Ch .text:00000000 .text:00000000 push ebp .text:00000001 mov ebp, esp .text:00000003 push ecx .text:00000004 mov [ebp+var_4], 0 .text:0000000B .text:0000000B loc_B: ; CODE XREF: _csurf_replace_strchr+2Cj .text:0000000B mov eax, [ebp+arg_0] .text:0000000E movsx ecx, byte ptr [eax] .text:00000011 cmp ecx, [ebp+arg_4] .text:00000014 jnz short loc_1B .text:00000016 mov eax, [ebp+arg_0] .text:00000019 jmp short loc_30 .text:0000001B ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000001B .text:0000001B loc_1B: ; CODE XREF: _csurf_replace_strchr+14j .text:0000001B mov edx, [ebp+arg_0] .text:0000001E movsx eax, byte ptr [edx] .text:00000021 mov ecx, [ebp+arg_0] .text:00000024 add ecx, 1 .text:00000027 mov [ebp+arg_0], ecx .text:0000002A test eax, eax .text:0000002C jnz short loc_B .text:0000002E xor eax, eax .text:00000030 .text:00000030 loc_30: ; CODE XREF: _csurf_replace_strchr+19j .text:00000030 mov esp, ebp .text:00000032 pop ebp .text:00000033 retn .text:00000033 _csurf_replace_strchr endp .text:00000033 .text:00000033 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000034 align 10h .text:00000040 .text:00000040 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000040 .text:00000040 ; Attributes: bp-based frame .text:00000040 .text:00000040 public _csurf_replace_strncpy .text:00000040 _csurf_replace_strncpy proc near ; CODE XREF: _main+35p .text:00000040 ; _main+7Ap .text:00000040 .text:00000040 var_8 = dword ptr -8 .text:00000040 var_4 = dword ptr -4 .text:00000040 arg_0 = dword ptr 8 .text:00000040 arg_4 = dword ptr 0Ch .text:00000040 arg_8 = dword ptr 10h .text:00000040 .text:00000040 push ebp .text:00000041 mov ebp, esp .text:00000043 sub esp, 8 .text:00000046 mov eax, [ebp+arg_0] .text:00000049 mov [ebp+var_8], eax .text:0000004C mov [ebp+var_4], 0 .text:00000053 jmp short loc_5E .text:00000055 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000055 .text:00000055 loc_55: ; CODE XREF: _csurf_replace_strncpy+42j .text:00000055 mov ecx, [ebp+var_4] .text:00000058 add ecx, 1 .text:0000005B mov [ebp+var_4], ecx .text:0000005E .text:0000005E loc_5E: ; CODE XREF: _csurf_replace_strncpy+13j .text:0000005E mov edx, [ebp+var_4] .text:00000061 cmp edx, [ebp+arg_8] .text:00000064 jge short loc_84 .text:00000066 mov eax, [ebp+arg_0] .text:00000069 mov ecx, [ebp+arg_4] .text:0000006C mov dl, [ecx] .text:0000006E mov [eax], dl .text:00000070 mov eax, [ebp+arg_0] .text:00000073 add eax, 1 .text:00000076 mov [ebp+arg_0], eax .text:00000079 mov ecx, [ebp+arg_4] .text:0000007C add ecx, 1 .text:0000007F mov [ebp+arg_4], ecx .text:00000082 jmp short loc_55 .text:00000084 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000084 .text:00000084 loc_84: ; CODE XREF: _csurf_replace_strncpy+24j .text:00000084 mov eax, [ebp+var_8] .text:00000087 mov esp, ebp .text:00000089 pop ebp .text:0000008A retn .text:0000008A _csurf_replace_strncpy endp .text:0000008A .text:0000008A ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000008B align 10h .text:00000090 .text:00000090 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000090 .text:00000090 ; Attributes: bp-based frame .text:00000090 .text:00000090 public _main .text:00000090 _main proc near .text:00000090 .text:00000090 var_4C = dword ptr -4Ch .text:00000090 var_2D = byte ptr -2Dh .text:00000090 var_2C = dword ptr -2Ch .text:00000090 var_D = byte ptr -0Dh .text:00000090 var_C = dword ptr -0Ch .text:00000090 var_8 = dword ptr -8 .text:00000090 var_4 = dword ptr -4 .text:00000090 .text:00000090 push ebp .text:00000091 mov ebp, esp .text:00000093 sub esp, 4Ch .text:00000096 mov eax, dword ptr ds:___security_cookie .text:0000009B xor eax, ebp .text:0000009D mov [ebp+var_C], eax .text:000000A0 mov [ebp+var_2D], 0 .text:000000A4 push 2Fh ; '/' .text:000000A6 lea eax, [ebp+var_4C] .text:000000A9 push eax .text:000000AA call _csurf_replace_strchr .text:000000AF add esp, 8 .text:000000B2 mov [ebp+var_4], eax .text:000000B5 cmp [ebp+var_4], 0 .text:000000B9 jnz short loc_D3 .text:000000BB push 1Fh .text:000000BD lea ecx, [ebp+var_4C] .text:000000C0 push ecx .text:000000C1 lea edx, [ebp+var_2C] .text:000000C4 push edx .text:000000C5 call _csurf_replace_strncpy .text:000000CA add esp, 0Ch .text:000000CD mov [ebp+var_D], 0 .text:000000D1 jmp short loc_11A .text:000000D3 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000000D3 .text:000000D3 loc_D3: ; CODE XREF: _main+29j .text:000000D3 mov eax, [ebp+var_4] .text:000000D6 lea ecx, [ebp+var_4C] .text:000000D9 sub eax, ecx .text:000000DB mov [ebp+var_8], eax .text:000000DE cmp [ebp+var_8], 1Fh .text:000000E2 jbe short loc_EB .text:000000E4 mov [ebp+var_8], 1Fh .text:000000EB .text:000000EB loc_EB: ; CODE XREF: _main+52j .text:000000EB mov edx, [ebp+var_8] .text:000000EE sub edx, 1 .text:000000F1 cmp edx, 20h ; ' ' .text:000000F4 jbe short loc_FB .text:000000F6 cmp eax, 2A10h .text:000000FB .text:000000FB loc_FB: ; CODE XREF: _main+64j .text:000000FB mov eax, [ebp+var_8] .text:000000FE sub eax, 1 .text:00000101 push eax .text:00000102 lea ecx, [ebp+var_4C] .text:00000105 push ecx .text:00000106 lea edx, [ebp+var_2C] .text:00000109 push edx .text:0000010A call _csurf_replace_strncpy .text:0000010F add esp, 0Ch .text:00000112 mov eax, [ebp+var_8] .text:00000115 mov byte ptr [ebp+eax+var_2C], 0 .text:0000011A .text:0000011A loc_11A: ; CODE XREF: _main+41j .text:0000011A xor eax, eax .text:0000011C mov ecx, [ebp+var_C] .text:0000011F xor ecx, ebp .text:00000121 call @__security_check_cookie@4 ; __security_check_cookie(x) .text:00000126 mov esp, ebp .text:00000128 pop ebp .text:00000129 retn .text:00000129 _main endp .text:00000129 .text:00000129 _text ends .text:00000129 UNDEF:00000130 ; ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ UNDEF:00000130 UNDEF:00000130 ; Segment type: Externs UNDEF:00000130 ; UNDEF UNDEF:00000130 extrn ___security_cookie:near ; DATA XREF: _main+6r UNDEF:00000134 ; __fastcall __security_check_cookie(x) UNDEF:00000134 extrn @__security_check_cookie@4:near ; CODE XREF: _main+91p UNDEF:00000134 UNDEF:00000134 UNDEF:00000134 end