任务:
我正在构建一组x86汇编逆向工程挑战,其中我已经完成了大约20个左右.他们只是为了娱乐/教育.
当前的挑战是更先进的挑战之一,并且涉及一些技巧,使得它看起来像EP实际上在正常程序中,但它实际上被包装在另一个PE部分中.
继承人的基本流程:
这个想法是因为他们认为他们处于正常的程序流程中,这使得他们错过了反调试和后来的检查.无论如何,一切正常.
问题:
目前的问题是,OllyDbg和其他一些工具会查看打包部分并发现它具有较高的熵,并发出一个警告,说它已经打包了.PE头中的代码段指针是正确设置的,所以它不会从EP外部代码中得到它 - 它纯粹是一个熵分析的东西.
题:
有没有我可以使用的加密方法保留低熵,但仍然很容易在x86 asm中实现?我不想使用普通的xor,因为它太容易了,但我也不希望它像包装一样抓住它并让游戏消失.
我想到了一个类似洗牌器的东西(以某种方式生成一个密钥流并使用它来交换4字节的代码块),但我不确定这是否会起作用,甚至是简单的.
有人有任何想法吗?
使用Microsoft Visual C++(不是CLI,只是标准的本机C++)时,内联汇编会导致函数禁用优化吗?
当我使用IDA检查时,块外部的一些功能代码似乎确实发生了变化,但我不确定原因是什么.该函数(相对)简单,包含位操作和一些数学,但没有外部调用.
我能想到的其他可能原因是:
有任何想法吗?
CryptProtectMemoryDPAPI中的API允许您传递该CRYPTPROTECTMEMORY_SAME_PROCESS标志,从而防止其他进程解密内存。解决此问题的一种方法是使用OpenProcess,WriteProcessMemory和CreateRemoteThread将代码注入目标进程并进行调用CryptUnprotectMemory,从而解密内存并将其泄漏给另一个进程。
假设两个进程都在Windows Vista或更高版本上的同一受限特权用户(即非管理员)的上下文中运行,这是否仍然可能?我给人的印象是,无论进程ACL是什么,进程内存写操作都被限制的用户拒绝,但我可能是错的。
我在VS2010中检查了一堆来自TFS的文件,并对其中几个进行了更改.如何查看实际更改的文件?
我开始使用phonegap为iphone/androids创建一个基于Web的应用程序.
我不明白为什么它有不同的iPhone和Android平台,当我们应该创建一个适合这两个平台的应用程序.此外,Facebook与phonegap的集成根据我正在进行的平台而有所不同.
我的问题是:
我应该创建两个项目,一个用于iphone,一个用于带有phonegap的android?
如果是,那么手机的重点是什么?
我正在研究一种PE解剖器,并且遇到了一些非常不寻常的事情.PE格式中目录的名称和顺序似乎根据您的外观而有所不同:
#define IMAGE_DIRECTORY_ENTRY_EXPORT 0 // Export Directory
#define IMAGE_DIRECTORY_ENTRY_IMPORT 1 // Import Directory
#define IMAGE_DIRECTORY_ENTRY_RESOURCE 2 // Resource Directory
#define IMAGE_DIRECTORY_ENTRY_EXCEPTION 3 // Exception Directory
#define IMAGE_DIRECTORY_ENTRY_SECURITY 4 // Security Directory
#define IMAGE_DIRECTORY_ENTRY_BASERELOC 5 // Base Relocation Table
#define IMAGE_DIRECTORY_ENTRY_DEBUG 6 // Debug Directory
#define IMAGE_DIRECTORY_ENTRY_ARCHITECTURE 7 // Architecture Specific Data
#define IMAGE_DIRECTORY_ENTRY_GLOBALPTR 8 // RVA of GP
#define IMAGE_DIRECTORY_ENTRY_TLS 9 // TLS Directory
#define IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 10 // Load Configuration Directory
#define IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT 11 // Bound Import …Run Code Online (Sandbox Code Playgroud) 出于测试目的,我需要一个这样的函数:
/**
* @param int $sizeInBytes
*
* @returns string with random data
*/
function randomData($sizeInBytes)
{
...
}
Run Code Online (Sandbox Code Playgroud)
任何有效实施的想法?需要速度但不是真正的随机性(更像是一种"lorem ipsum").我最简单的想法是在文件系统中使用真正的大文件并通过流获取所需的大小.但这需要至少100MB的文件.有没有更好的办法?
我有兴趣在临时会话中启动一个窗口,例如 UAC 提示的显示方式。有几个人对这个概念感兴趣,所以我想我会在这里问。本质上,我们想要的是一个像 UAC“你确定要<...>”提示的提升窗口,但带有任意窗口。最终目标是防止窗口事件挂钩和密码输入期间可能发生的各种其他问题。
我快速浏览了 UAC API 和其他一些地方,但没有什么特别有用的地方。显然 UAC 提示以某种方式提升到他们自己的桌面会话,所以必须有一种方法来以这种方式创建窗口。
是var << ifstream一样的ifstream >> var吗?
据我所知,它们应该完全相同.但现在已经很晚了,我的大脑半睡半醒,所以我想澄清一下.
在当前的项目中,我正在使用jQuery.我只是想知道为什么会这样,
$('#homeIcon').hover(function(){
document.getElementById('homeIcon').src = "pic/home-icon_hover.png";
})
Run Code Online (Sandbox Code Playgroud)
但这不会:
$('#homeIcon').hover(function(){
$(this).src = "pic/home-icon_hover.png";
})
Run Code Online (Sandbox Code Playgroud)
这些方法不应该完全一样吗?
FYI homeIcon是<img>.