|
[讨论]关于IDA遇到ExitProcess和ExitThread就不继续分析的问题。
这没有问题吧,正常情况下走到了ExitProcess当然就不会再返回了。如果ExitProcess下面的代码还能继续执行,说明肯定存在某条途径可以jump到下面,给IDA指明这条途径,IDA就可以继续分析了。 如果确实有其他路径可以jump过来,把那条路径告诉IDA。IDA就会正确分析。如果想简单一点,或确实是你说的那种反静态分析方法,可以把光标移到ExitProcess函数上,Alt + P调出 Edit Function对话框,里面有个函数属性选项是“does not return”,把它去掉,IDA就会认为这个函数会返回了。 所以,那个反静态分析的办法,似乎没有什么特别的意义,也就和普通的花指令差不多。 |
|
[求助]对整个程序文件求检测和,最终if语句判断的那个检测和是怎么确定的?
记得exe头部有个校验和的field。计算初始校验值时,先给它填0,然后计算出校验值,最后修改这个field为计算出的校验值。运行时验证校验和的时候,把这个field当0处理,然后计算完的值和这个field比较即可。 当然,也不一定非得用这个field,不一定非得填0,用这种思路即可。 还有其他的方法,比如用一个dll辅助校验,校验值存放在dll里面,到时候读出来比较即可。当然也不一定非得放dll里面,只要能存放数据的地方即可。 |
|
[求助]IDA 反汇编驱动的问题。
正常,就应该是这样的。IDA也是用dbghelp.dll的,这是这个dll里面操作symbol函数的行为,windbg,Visual Studio等也是用这个dll来操作symbol的,所以它们的行为是一致的。 BOOL WINAPI SymInitialize( _In_ HANDLE hProcess, _In_opt_ PCTSTR UserSearchPath, _In_ BOOL fInvadeProcess ); UserSearchPath [in, optional] The path, or series of paths separated by a semicolon (;), that is used to search for symbol files. If this parameter is NULL, the library attempts to form a symbol path from the following sources: The current working directory of the application The _NT_SYMBOL_PATH environment variable The _NT_ALTERNATE_SYMBOL_PATH environment variable Note that the search path can also be set using the SymSetSearchPath function. |
|
[求助]如何将下面的xml文件保存到一个结构体中
1. deque自动管理内存,何来malloc 2. xml天然就是树,如果要实现通用的树结构,可以这样: struct STreeNode { std::string key; std::vector<STreeNode> subNode; }; 或进一步泛型处理: template <typename GKey> struct STreeNode { GKey key; std::vector<STreeNode> subNode; }; 由于deque不能使用非完整类型,所以这里换成可以使用不完整类型的vector 3. 特殊问题有特殊的解决方案。对于你这个,这样即可: struct SProcessInfo { std::string processName; std::deque<std::string> fileInfo; }; |
|
[求助]IDA里面怎么选择数据结构里面的union字段啊
貌似最新版的神奇F5可以支持,等吧…… |
|
发两张图
简单介绍一下你的实现原理。例如CRT如何支持C++的RTTI,Exception等。 |
|
[求助]问个白痴问题,如果不依赖Win32 API以及微软的C库 在windows下能写出多线程程序吗?
1. 你的多线程是什么含义?如果是操作系统调度的内核线程,那离开操作系统的API是不可能的。如果是类似用户态线程之类自己实现的(操作系统看起来仍然是单线程),那没有问题。不过,用纯C来做恐怕也不现实,因为涉及执行上下文的保护。 2. 对于“通用”,封装是个好东西。 |
|
[求助]ReadVirtualMemory 这种API函数是怎样一步步走到 内核 NtReadVirtualMemory并返回的?
kd> k ChildEBP RetAddr 94a17d18 8269442a nt!NtReadVirtualMemory+0x13 94a17d18 777064f4 nt!KiFastCallEntry+0x12a 0021fa48 7770574c ntdll!KiFastSystemCallRet 0021fa4c 758ea83f ntdll!NtReadVirtualMemory+0xc 0021fa68 1d1aa9ed KERNELBASE!ReadProcessMemory+0x1b (Win 7, x86) |
|
[原创]群论的一些基础知识
抱歉插一句话:其实论坛是可以显示公式的,借助Google的Chart服务即可 [IMG]http://chart.apis.google.com/chart?cht=tx&chl=\[\sum_{k=1}^\infty\frac{\sin%20k}{k}=\frac{\pi-1}{2}\][/IMG] 代码(去掉标签二字) [img标签] http://chart.apis.google.com/chart?cht=tx&chl=\[\sum_{k=1}^\infty\frac{\sin%20k}{k}=\frac{\pi-1}{2}\] [/img标签] 格式 固定URL部分: http://chart.apis.google.com/chart? 图表类型:cht=类型,对于公式是tx(cht=tx) 后面是一串用&分割的参数,比如公式是 chl=\[\sum_{k=1}^\infty\frac{\sin%20k}{k}=\frac{\pi-1}{2}\] 公式是latex语法。一些特殊符号比如空格,%等,要用URL的编码规则写 |
|
求魔兽Jass里面的GetRandomInt函数的算法
应该是。我研究的是1.24e版本的。可能细节和老版本有出入 |
|
求魔兽Jass里面的GetRandomInt函数的算法
6F2AB332 |. BA 106E816F mov edx, 6F816E10 ; ASCII "GetRandomInt" 6F2AB337 |. B9 A01C2D6F mov ecx, 6F2D1CA0 ; 这个函数就是 6F2AB33C |. E8 2F323F00 call 6F69E570 悲剧,你就差一步。这个函数6F69E570是注册native的函数,ecx就是真正的GetRandomInt位置。 |
|
求魔兽Jass里面的GetRandomInt函数的算法
See my blog: http://hi.baidu.com/aerialtime/blog/item/d8a8500b6a1389a32eddd41e.html |
|
[下载]IDA Pro 5.5 with hex-Rays Decompiler v1.1 分流下载 & 相关资源集合
如果你不用IDAPython,Python可以不装。安装IDA时会自动禁用。 |
|
[分享]微软学生中心key申请
原来只需要一个.edu.cn结尾的邮箱,早知道就没必要再申请一个啦,我自己就有一个学校的邮箱 |
|
[求助]如何避开数据执行保护(DEP)的干扰?
新的PE文件格式说明中,PE头部增加了一个特殊的标志位,表明该文件是否兼容DEP 编译的时候加一个参数(叫什么??NX??的),使得这个标志位设置为不支持DEP 这样,只要系统不是设置为 对所有程序启用DEP 就可以运行 |
|
|
|
[建议]关于开源和我们论坛的思考
关于开源环境下是否需要逆向的问题 关于这个问题,其实关键并不是有没有源代码,而是研究的目的。举两个例子说明。如果我的目的是研究软件的运行机理,算法等,那么显然分析源码是最好的选择。可是,如果我们是在研究如何利用软件中溢出漏洞,那么这时源代码作用就不大了,源码最多也只是告诉我们,这里有个漏洞,对于如何利用这个漏洞没有太大的帮助。比如说微软前一阵子那个栈溢出漏洞,即使给你源代码,而且告诉你这个地方有溢出,但是不允许你调试和看反汇编代码,你能写出利用漏洞的程序吗?鬼才知道被编译器编译后,堆栈是什么样子的!这种情况下,源码只能起到辅助作用,二进制级别的逆向是必要的。 |
|
[讨论]关于杀毒软件的讨论。
杀毒软件背后的利益博弈很复杂,并不像楼主想象的那么简单。例如这个极端的假设:假如某天某公司研制了一套100%能够对付各种未知病毒的技术并付诸实现,那么用户是高兴了,可是整个杀毒产业就完了 |
操作理由
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 }}
勋章
兑换勋章
证书
证书查询 >
能力值