|
|
|
[求助]这个HelloWorld.asm使用masm10编译之后,请问有什么办法反汇编成一样或者相近的源代码?
你双击Caption或Text变量IDA会自动跳转到Caption和Text的值的地方。 "Win32Asm"是IDA添加的注释,他是告诉你Caption保存的值就是"Win32Asm"字符串。 |
|
[求助]这个HelloWorld.asm使用masm10编译之后,请问有什么办法反汇编成一样或者相近的源代码?
; 这不是和你的程序差不多吗? start: start proc near push MB_OK push 0 ; uType lea eax,szCaption lea eax, Caption ; "Win32Asm" push eax push eax ; lpCaption lea eax,szText lea eax, Text push eax push eax ; lpText push NULL push 0 call messageboxa call MessageBoxA xor eax,eax xor eax, eax push eax push eax call exitprocess call ExitProcess end start start endp |
|
读取EXE文件中的字符串
Delphi的Object Pascal语言 var fs:TFileStream; od:TOpenDialog; s:String; begin od := TOpenDialog.Create(self); try od.Filter := 'Exe Files(*.exe)|*.exe|All Files(*.*)|*.*||'; if od.Execute then // 选取要修改的*.exe文件 begin fs := TFileStream.Create(od.FileName,fmOpenReadWrite); //打开要修改的*.exe文件 try fs.Position := FileOffset; // 定位到要修改的文件偏移地址 s := 'xxxxxxxxxxx'; // 要修改的字符串(注意:除非你确定更改写入的字符串大小不会影响原*.exe文件,你所要修改的字符串最好还是和*.exe中的字符串长度一样比较好)。 fs.Write(Pointer(s)^,StringLength); // 写入要修改的字串。 finally fs.Free; end; end; finally od.Free; end; end; 用打开命令打开的文件是属于分析静态文件,打开ROM的文件是属于分析执行中的文件。 不太清楚。可能是使用了内存映射流操作内存数据。 |
|
读取EXE文件中的字符串
如果知道那串字符串位置在哪里的话就比较简单。 1、创建一个TFileStream流,用TFileStream流打开*.exe文件 2、用GetMem申请一个和TFileStream.Size大小的内存缓冲 3、用TFileStream.Read方法读取文件 4、定位到要修改的文件偏移地址(如果不知具体偏移的话,那只好用pos函数查找字符串取得偏移了)。用move函数进行修改内容。 5、用TFileStream.Write方法写回*.exe文件。 6、FreeMem释放申请到的内存 7、释放TFileStream流。 |
|
[求助]为什么程序运行的很慢
; 改编自VC的rand和老罗的代码。 _srand proc seed:DWORD ifndef holdrand .data holdrand dd ? .code endif push seed pop holdrand ret _srand endp _rand proc min:DWORD, max:DWORD ifndef holdrand .data holdrand dd ? .code endif mov eax,holdrand mov ecx,214013 mul ecx add eax,2531011 mov holdrand,eax mov ecx,max sub ecx,min inc ecx xor edx,edx div ecx add edx,min mov eax,edx ret _rand endp |
|
[求助]为什么程序运行的很慢
; C的Rand函数内部没有调用其他函数,所以速度上比较快。你的函数内部每次都要调用一下GetTickCount,所以可能比较慢吧。 |
|
[求助]这个HelloWorld.asm使用masm10编译之后,请问有什么办法反汇编成一样或者相近的源代码?
差距当然会有了。不过我不觉上面反汇编出来的代码和你的代码有多大的差距,基本上就是你上面的源码了。 |
|
[求助]用什么软件可以查看软件是用什么语言开发的?
PEID... |
|
[求助]delphi 没有关于CreateProcessInternalW 函数声明
对这方面没有实践过,不太清楚。 |
|
[求助]delphi 没有关于CreateProcessInternalW 函数声明
//我定义是CreateProcessInternal函数其实就是CreateProcessInternalW函数,并不是两个函数啊。 function CreateProcessInternal; external 'kernel32.dll' name 'CreateProcessInternalW'; |
|
[求助]delphi 没有关于CreateProcessInternalW 函数声明
从你给的函数中转换过来的,一些结构则是从MSDN中转换过来的。 |
|
[求助]delphi 没有关于CreateProcessInternalW 函数声明
_SECURITY_ATTRIBUTES = packed record nLength:LongWord; lpSecurityDescriptor:Pointer; bInheritHandle:BOOL; end; TSecurityAttributes = _SECURITY_ATTRIBUTES; PSecurityAttributes = ^TSecurityAttributes; _STARTUPINFO = packed record cb:LongWord; lpReserved,lpDesktop,lpTitle:pChar; dwX,dwY,dwXSize,dwYSize,dwXCountChars,dwYCountChars,dwFillAttribute,dwFlags:LongWord; wShowWindow,cbReserved2:Word; lpReserved2:pByte; hStdInput,hStdOutput,hStdError:THandle; end; TStartupInfo = _STARTUPINFO; pStartupInfo = ^_STARTUPINFO; _PROCESS_INFORMATION = packed record hProcess,hThread:THandle; dwProcessId,dwThreadId:LongWord; end; TProcessInformation = _PROCESS_INFORMATION; PProcessInformation = ^_PROCESS_INFORMATION; function CreateProcessInternal(hToken:THandle; lpApplicationName,lpCommandLine:pWideChar; lpProcessAttributes,lpThreadAttributes:PSecurityAttributes; bInheritHandles:BOOL; dwCreationFlags:LongWord; lpEnvironment:Pointer; lpCurrentDirectory:pWideChar; lpStartupInfo:pStartupInfo; lpProcessInformation:PProcessInformation; hNewToken:PHandle):BOOL; stdcall; function CreateProcessInternal; external 'kernel32.dll' name 'CreateProcessInternalW'; |
|
[求助]能不能帮忙 把这段代码转换成 D7的 谢谢 有些汇编和D7之间的转换 我尚不很清楚
type _SYSTEM_INFORMATION_CLASS = ( SystemBasicInformation, SystemProcessorInformation, SystemPerformanceInformation, SystemTimeOfDayInformation, SystemNotImplemented1, SystemProcessesAndThreadsInformation, SystemCallCounts, SystemConfigurationInformation, SystemProcessorTimes, SystemGlobalFlag, SystemNotImplemented2, SystemModuleInformation, SystemLockInformation, SystemNotImplemented3, SystemNotImplemented4, SystemNotImplemented5, SystemHandleInformation, SystemObjectInformation, SystemPagefileInformation, SystemInstructionEmulationCounts, SystemInvalidInfoClass1, SystemCacheInformation, SystemPoolTagInformation, SystemProcessorStatistics, SystemDpcInformation, SystemNotImplemented6, SystemLoadImage, SystemUnloadImage, SystemTimeAdjustment, SystemNotImplemented7, SystemNotImplemented8, SystemNotImplemented9, SystemCrashDumpInformation, SystemExceptionInformation, SystemCrashDumpStateInformation, SystemKernelDebuggerInformation, SystemContextSwitchInformation, SystemRegistryQuotaInformation, SystemLoadAndCallImage, SystemPrioritySeparation, SystemNotImplemented10, SystemNotImplemented11, SystemInvalidInfoClass2, SystemInvalidInfoClass3, SystemTimeZoneInformation, SystemLookasideInformation, SystemSetTimeSlipEvent, SystemCreateSession, SystemDeleteSession, SystemInvalidInfoClass4, SystemRangeStartInformation, SystemVerifierInformation, SystemAddVerifier, SystemSessionProcessesInformation ); TSystemInformationClass = _SYSTEM_INFORMATION_CLASS; _SYSTEM_MODULE = packed record Reserved :Array[0..1] of LongWord; ImageBase :Pointer; ImageSize :LongWord; Flags :LongWord; Index :Word; Unknown :Word; LoadCount :Word; ModuleNameOffset:Word; ImageName :Array[0..255] of Char; end; TSystemModule = _SYSTEM_MODULE; PSystemModule = ^TSystemModule; _SYSTEM_MODULE_INFORMATION = packed record ModulesCount:LongWord; Modules :TSystemModule; end; TSystemModuleInformation = _SYSTEM_MODULE_INFORMATION; PSystemModuleInformation = ^TSystemModuleInformation; function NtQuerySystemInformation(SystemInformationClass:TSystemInformationClass; SystemInformation:Pointer; SystemInformationLength:LongWord; ReturnLength:pLongWord):LongWord;stdcall; function NtQuerySystemInformation; external 'NTdll.dll' name 'NtQuerySystemInformation'; procedure _wsprintf(var pOubBuff; pFormat:pChar; n1,n2,n3,n4:LongWord; s1,s2:pChar); cdecl; procedure _wsprintf; external 'user32.dll' name 'wsprintfA'; procedure EnumKernelModule(hListBox:Handle; dwReserved1,dwReserved2:LongWord); var pSM:PSystemModule; pSMI:PSystemModuleInformation; dwNumModules,dwKernelModuleSize:LongWord; i:Integer; pOutStr:Array[0..255] of Char; begin NtQuerySystemInformation(SystemModuleInformation,nil,0,@dwKernelModuleSize); GetMem(pSMI,dwKernelModuleSize); try NtQuerySystemInformation(SystemModuleInformation,pSMI,dwKernelModuleSize,nil); dwNumModules := pSMI^.ModulesCount; pSM := @pSMI^.Modules; for i := 1 to dwNumModules do begin ZeroMemory(@pOutStr,sizeof(pOutStr)); _wsprintf(pOutStr, '内核模块基地址:%08X --- 模块大小:%08X --- 模块标志:%08X --- 模块索引:%08X --- 模块名称:%s --- 模块路径:%s', LongWord(pSM^.ImageBase), pSM^.ImageSize, pSM^.Flags, pSM^.Index, pChar(LongWord(@pSM^.ImageName) + pSM^.ModuleNameOffset), @pSM^.ImageName); SendMessage(hListBox,LB_ADDSTRING,0,LongWord(@pOutStr)); pSM := PSystemModule(LongWord(pSM) + sizeof(TSystemModule)); end; finally FreeMem(pSMI,dwKernelModuleSize); end; end; |
|
[讨论]调试技术与逆向
通过调试技术可以知道正向执行才有逆向的可能。 |
|
[求助]文件格式分析
每一种文件格式都有其作者的定义,有些通用的文件定义格式可以在网上找到相关资源(如Bmp、EXE等图像格式等),而一些由作者私下定义的自定义格式是没办法直接知道的,要分析这些文件,只有通过调试器、反汇编调用这些文件的EXE或其他可执行操作的文件,通过分析这些EXE或其他可执行操作的文件对这些文件如何操作来猜测这些文件的格式定义,除此之外,除非作者提供或黑客,没有其他方法可以知道。也没有通用的方法或工具。 |
|
[求助]付酬金求写一工具软件。
论坛只是提供技术讨论,不允许申请有偿破解、编写补丁、外挂之类请求。 |
|
|
操作理由
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 }}
勋章
兑换勋章
证书
证书查询 >
能力值