11 2013 档案
摘要:今天在asm中不通过msvcrt.inc调用c库。所以。第一时间就在vc的lib中拷贝了libc.lib问价。加入工程后。声明.调用如下:然后。链接报错.libc.lib(crt0.obj) : error LNK2001: unresolved external symbol _mainlibc.lib(a_env.obj) : error LNK2001: unresolved external symbol __imp__GetEnvironmentStrings@0Libc.exe : fatal error LNK1120: 2 unresolved externals然后。发现是找
阅读全文
摘要:在使用CreateProcess创建进程时,需要传递STARTUPINFO的结构的指针,而常常我们并不会一个一个设置其结构的值,连把其他不用的值清0都会忽略,而ollydbg也这样做了,我们可以使用GetStartupInfo检查启动信息,如果很多值为"不可理解"的,那么就说明自己不是由explorer来创建的.(explorer.exe使用shell32中ShellExecute的来运行程序,ShellExecute会清不用的值)还有一点ollydbg会向STARTUPINFO中的dwFlags设置STARTF_FORCEOFFFEEDBACK,而explorer不会//
阅读全文
摘要:TLS(Thread Local Storage 线程局部存储)一个进程中的每个线程在访问同一个线程局部存储时,访问到的都是独立的绑定于该线程的数据块。在PEB(进程环境块)中TLS存储槽共64个(位于PEB的TlsBitmapBits字段中,共64位(bit)微软保证每个进程最少拥有64个索引可用,如果需要,系统还会为线程提供更多的索引)。每个TEB(线程环境块)偏移0x2C处是一个PVOID THreadLocalStoragePointer指针,存放着当前进程TLS副本地址。TLS对每个线程都可见,并且这个值对于所有的线程都是相同的,操作这个索引就代表操作了所有线程的相同索引。typed
阅读全文
摘要:Windows是一个不断发展的系统,很多新的 API 在操作系统更新时更新,而MASM32开发包一般在很长一段时间内都无法及时更新,如果需要在编程中使用新添加的API函数。就得自己动手来更手库文件,下面我就给大家介绍一下如何通过手动的方法添加新的 API。为了便于说明,我们以 GetConsoleWindow 这个API为例。这个函数能够取得当前程序所在控制台的句柄。具体说明请参考后面的注释。MasmPlus 已经定义了这个函数,在你敲入函数名时会自动弹出提示:但是,在编译中会出现无法识别的错误,这是因为 MASM32 包这个函数根本没有引用,在对应的LIB中缺少声明,我们的编译器不认识它。如
阅读全文

浙公网安备 33010602011771号