|
ollyice编译后提示“程序已被破坏,无法正常运行”
程序自校验,可以尝试在修改前,记录一下CRC值,修改好后,用PEiD的那个插件修正一下CRC置原来的值,如果不是CRC校验,就没辙了。 |
|
[求助]想在网上学习脱壳逆向
我是这样走过来的: VB->C->C++->汇编(16位)->汇编(32位) 在用高级语言编程时,在IDE中就有调试器很方便,但是汇编不同,调试它,我只用过IDA和OD,自己编写程序,自己反向汇编,自己调试自己程序,时间长了,就会知道如何加密自己程序,如何破解别人程序。 |
|
DDK安装不了,大神帮忙看看什么错误
这个以前我也遇到过。 |
|
修复软件使其能在win7系统下运行
你没必要修改参数,你不修改代码,修改PE头无意义。 就算修改PE头,你也得熟悉PE Coff的标准(比如你将PE头中的NumberOfSection,或SizeOfCode,或SizeOfImage,或SizeOfHeaders等改错,你的程序就损坏了,以前编写向执行程序添加代码的程序时深有体会)。 其实,我感觉与执行体本身没有太大关系。 |
|
修复软件使其能在win7系统下运行
运行的程序不会是DOS程序吧。在winxp和之前的windows系统,运行DOS有个VMM,在Vista/7上面都没有。 如果是DOS程序,会报一个错误的信息框,指出不是一个有效的win32程序什么的,那可以用Dosbox之类的软件运行程序。 如果是一个标准的PE文件,只要都是32位的,都可以在这两个系统下运行。 |
|
小弟跪求大神赐隐藏进程源代码
主程序代码: .386 .model flat,stdcall option casemap:none ;####################################### Include windows.inc Include kernel32.inc Include user32.inc Includelib kernel32.lib Includelib user32.lib ;####################################### .data? lpKernelDll dd ? lpLoadLibrary dd ? lpGetProcAddress dd ? lpGetModuleHandle dd ? lpRemoteCode dd ? dwProcessID dd ? dwThreadID dd ? dwTemp dd ? hProcess dd ? ;####################################### .const szKernel32 db 'Kernel32.dll',0 szLoadLibrary db 'LoadLibraryA',0 szGetModuleHandle db 'GetModuleHandleA',0 szGetProcAddress db 'GetProcAddress',0 szDesktopClass db 'Progman',0 szDesktopWindow db 'Program Manager',0 szBuffer db 260 dup(?) ;####################################### .code Include ErrorRpt.asm Include .\RemoteCode\remote.asm;;这里放至注入代码 Main: invoke GetModuleHandle,addr szKernel32 mov lpKernelDll,eax invoke GetProcAddress,lpKernelDll,offset szLoadLibrary mov lpLoadLibrary,eax invoke GetProcAddress,lpKernelDll,offset szGetProcAddress mov lpGetProcAddress,eax invoke GetProcAddress,lpKernelDll,offset szGetModuleHandle mov lpGetModuleHandle,eax ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; invoke FindWindow,addr szDesktopClass,addr szDesktopWindow invoke GetWindowThreadProcessId,eax,offset dwProcessID mov dwThreadID,eax invoke OpenProcess,PROCESS_CREATE_THREAD OR PROCESS_VM_WRITE OR PROCESS_VM_OPERATION,0,dwProcessID .if eax mov hProcess,eax ;; invoke VirtualAllocEx,hProcess,0,REMOTE_CODE_LENGTH,MEM_COMMIT,PAGE_EXECUTE_READWRITE .IF eax mov lpRemoteCode,eax invoke WriteProcessMemory,hProcess,lpRemoteCode,offset REMOTE_CODE_START,REMOTE_CODE_LENGTH,offset dwTemp or eax,eax jnz @F pusha invoke _ErrorReport,0 popa @@: invoke WriteProcessMemory,hProcess,lpRemoteCode,offset lpLoadLibrary,sizeof DWORD * 3,offset dwTemp or eax,eax jnz @F pusha invoke _ErrorReport,0 popa @@: mov eax,lpRemoteCode add eax,offset _RemoteThread - offset REMOTE_CODE_START invoke CreateRemoteThread,hProcess,0,0,eax,0,0,0 ;;; create remote thread or eax,eax jnz @F pusha invoke _ErrorReport,0 popa @@: invoke CloseHandle,eax .ELSE invoke _ErrorReport,0 .ENDIF invoke CloseHandle,hProcess .else invoke _ErrorReport,0 .endif ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; invoke ExitProcess,0 End Main 这个是错误信息报告: _ErrorReport proc _hWnd LOCAL @szBuf[260]:BYTE LOCAL @szBuff[260]:BYTE pushad jmp @F szErrorMsgFmtForErrorReport db 'Error Code:%08X',0DH,0AH,'Error Reason:%s',0 @@: call GetLastError push eax lea ecx,@szBuf invoke FormatMessage,FORMAT_MESSAGE_IGNORE_INSERTS or FORMAT_MESSAGE_FROM_SYSTEM,\ 0,eax,0,ecx,sizeof @szBuf,0 pop eax lea ecx,@szBuf invoke wsprintf,addr @szBuff,offset szErrorMsgFmtForErrorReport,eax,ecx invoke MessageBox,_hWnd,addr @szBuff,0,30H popad ret _ErrorReport endp |
|
关于winio和VMware Workstation
当然可以啦。 |
|
请教Getprocaddress获得的API函数地址问题
在WinVista以上的,模块加载的基址随机化ASLR 在其他的一些系统(如openBSD,Mac OS X,Linux等也有这种机制),大致意思就是,一个模块装入内存后,比如说,gdi32.dll,第一次装入,获得API,SelectObject的基址是0F88230H,第二次启动程序时,这个API的地址,不再是这个值。好像Kernel32.dll中的API不会变,说明Kernel32.dll每次装入的基址都是一样的。 |
|
[求助]一个注册帐号问题
记录了硬件信息,硬件信息不能随意改,除非更换硬件,硬件有自己的信息标记,比如硬盘的UUID等。 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值