ollydbg分析,Ollydbg为什么要先脱壳

ollydbg能看到功能吗?微软有一个工具叫dependencywalker或者dumpbin,是VisualStudio附带的工具 。可以查看dll导出函数的名称 , 函数参数和调用方法(如__cdecl或__stdcall)不能在工具中显示,你需要使用IDA或OllyDbg等反汇编器来反汇编DLL,通过定位导出函数末尾的retn指令来判断参数个数和调用方法 。

1、求一本可以学习OllyDBG的书籍,可以在书店买到的!昏迷,你什么都不知道 。学习工具有什么用?唉,现在的孩子喜欢好高骛远 。等你做了几年软件看了od再说 。这个工具叫动态调试器,是动态的 。为什么你的栈关系是空的,别人还在?因为断点断点就是这个程序调用函数的时候 , 你可以把点断点到一个特定的位置 , 相当于拦截了函数 。程序就是一直跑的公路车 。断点就是路上的收费站 。如果这个程序使用这个函数,它会停止,直到你说 。
【ollydbg分析,Ollydbg为什么要先脱壳】
2、dll文件如何反汇编成源码,C语言编写DLL属于一种可执行文件,也叫动态链接库,DEBUG不能直接加载 。一般应用程序使用库中的函数,操作系统同时将应用程序加载到特定的地址 。该地址通常由DLL在链接时指定 。DLL加载到运行空间时,根据输出函数表,可以得到每个函数的入口地址,然后用DEBUG在每个入口下断点 。当函数被调用时,DEBUG会追踪到函数中 , 从而实现反汇编 。

上述方法属于dynamic 分析,调试反汇编 。这种方法不容易得到完整的代码,一般只能形成一段独立分散的代码 。同时 , 由于DEBUG的限制,反汇编的代码质量不高 , 生成的代码不能直接使用 。原因是如果DLL没有加载到指定的地址空间,操作系统会重定向代码,所以DEBUG只能得到重定向的代码 。

3、请问如何修改Ollydbg打开的EXE文件中的汉字用UE换 。如果程序没有被加壳,可以直接搜索UE或者WinHex , 因为是在PE文件的资源段,对于加壳或者加密的程序很麻烦 。方法很简单:要么分析其加密算法,利用加密函数的逆运算来修改字符串,要么写一个类似于内存寄存器的东西,要么加一段写段汇编代码给EXE来修改字符 。

4、怎么在 ollydbg中找到我要调试的代码使用Goto命令使用Goto命令(快捷键Ctrl G)打开Enterexpressiontofollow对话框,并输入要设置调试点的地址 。输入地址后,按回车键,光标将定位在输入的地址上 。然后,执行Executetillcursor,对这个地址执行调试过程 。

5、 ollydbg可以看到函数吗微软有一个工具叫dependencywalker或者dumpbin,是VisualStudio附带的工具,可以查看dll导出函数的名称 。工具中无法显示函数参数和调用方法(如__cdecl或__stdcall) 。你需要使用IDA或OllyDbg等反汇编器来反汇编DLL,通过定位导出函数末尾的retn指令来判断参数个数和调用方法 。
在IDA中,还可以使用F5快捷键,将反汇编代码转换成C代码 , 方便一点 。最后一个问题,至于思路,可以看看DLL的导出函数 , 然后用Detours类库挂接原函数做一个旁路,在HOOK函数中打印调用内容,这样可以在日志文件或者调试输出中看到调用规则 , 这纯粹是个人建 。