随笔分类 - reverse
reverse
摘要:http://files.cnblogs.com/tk091/SMS.zip首先查壳ASPack 2.12 -> Alexey Solodovnikov很简单,用esp搞定 1 00401408 /EB 10 jmp short 0040141A ; oep 2 0040140A |66:623A bound di, dword ptr [edx] 3 0040140D |43 inc ebx 4 0040140E |2B2B sub ...
阅读全文
摘要:File下载:http://files.cnblogs.com/tk091/NetworkbAttack.zip继续学习,通过注册,提示信息已保存,重启程序。那么,就有可能是保存在注册表或者文件中,我们随便输入一个假码,然后关闭程序,打开程序对应目录下的文件看看,发现在zcm.inf中有我们输入的注册码。OD载入,bp CreateFileA,取消断点,返回到程序领空(返回到下面的第二行)。1 00407344 . FF15 C4104000 call dword ptr ds:[<&MSVBVM60.__vbaFileOpen>] ; MSVBVM60.__vbaFile
阅读全文
摘要:看黑鹰的教程,发现这个壳没有用到esp定律来脱,所以就自己实验了下。发现可以用esp定律。文件下载地址:http://files.cnblogs.com/tk091/PECompact2.55.rar下面是脱文:首先OD载入程序,找到第一个esp凸显变红的地方,在命令行输入hr espshift+F9运行。1 77578D0B 3B45 F8 cmp eax, dword ptr [ebp-8]2 77578D0E 72 09 jb short 77578D193 77578D10 3B45 F4 cmp ...
阅读全文
摘要:下载地址:http://files.cnblogs.com/tk091/crackme1.7z得到一个crackme,首先我们要对其进行分析,从而考虑如何下手,首先查壳,当然是无壳的了,然后运行程序,了解大致的情况。发现这是一个控制台程序,载入OD运行,看下OD的注释,发现有 1 0040139E |. 52 push edx ; /pWSAData 2 0040139F |. 68 02020000 push 0x202 ; |Requ...
阅读全文
摘要:下载地址:http://files.cnblogs.com/tk091/pushbox.rar首先,这个程序没有任何可以输入注册码信息的地方,那么首先就可以考虑文件key形式。用c32打开,搜索File或者Reg,看看是不是注册表或者文件的形式验证。我在其中很快就搜索到:CreateFileA用OD载入,输入bp CreateFileAAlt+B打开断点窗口,果然有一个断点。shift+F9运行程序,按步骤找到“开始”按钮,按下程序被CreateFileA断下,alt+F9返回到程序领空。 1 0040140F |. 50 push eax ...
阅读全文
摘要:1 UINT __cdecl sub_401150(HWND hDlg) 2 { 3 UINT result; // eax@3 4 unsigned int lenth; // kr04_4@4 5 signed int v3; // esi@4 6 unsigned int v4; // edi@5 7 char v5; // bl@6 8 unsigned int v6; // edx@8 9 unsigned int v7; // eax@1610 signed int j; // eax@2111 12 *(_DWORD *)szName = 0...
阅读全文
摘要:crackme下载地址:http://files.cnblogs.com/tk091/crackme2.7z很习惯的,首先查壳,ASPack 2.12 -> Alexey Solodovnikov,很简单,一个esp定律就搞定,dump后再说。dump后的文件下载:http://files.cnblogs.com/tk091/dump.rar运行后发现这个程序是反虚拟机的,反虚拟机的方式有很多,比如,通过特权指令来检测、利用IDT基址检测、利用LDT和GDT的检测方法、基于STR(StoreTaskRegister)的检测方法、通过注册表检测虚拟机(是否安装了tools工具等)、基于时间
阅读全文
摘要:from:http://www.52pojie.cn/forum.php?mod=viewthread&tid=120450你可以怀疑这个方法,真的假的一试就知道,如果不知道怎么找,可以把你的试验品传到网盘,有空我把针对你试验品的步骤帖给你。有的OEP被抽了代码的只能找到伪OEP,也就是被抽掉之后剩下的头部地址。你也可以直接无视这个方法,对你少一个选择,对我没有任何损失。 首先讲一下方法的原理。 每一个程序都是由无数个CALL加其参数组成了,在程序里,每一个CALL都是有返回地址的。当在程序领空的时候,返回到不能返回的时候。这个返回地址就是在程序的main函数里。 所以只要找到了最..
阅读全文
摘要:1 BOOL CInsideVmDlg::IsInsideVm() 2 { 3 bool rc = true; 4 5 __try 6 { 7 __asm 8 { 9 push edx10 push ecx11 push ebx12 13 mov eax, 'VMXh'14 mov ebx, 0 // 将ebx设置为非幻数’VMXH’的其它值15 ...
阅读全文
摘要:这是一个最简单的反虚拟机测试,通过检测是否包含虚拟机tools的进程来判断是否是虚拟机。首先写一个函数,判断是否包含某进程 1 //是否包含某进程 2 BOOL IsContainsProcess(CString strProName) 3 { 4 PROCESSENTRY32 pe32; //定义结构体变量来保存进程的信息 5 pe32.dwSize = sizeof(pe32); //填充大小 6 7 HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); ...
阅读全文
该文被密码保护。
摘要:首发:【吾爱破解】作者:小童工具:OllyDbg、Delphi程序一个、易语言程序一个、MFC程序一个----------------------------------------------------------------------------------------------------------------------------------------------------------《《《Delphi程序》》》特征码:FF 93 20 01 00 00 5B C3 53---------------------------------------------------
阅读全文
摘要:手写一个PE文件,首先要对PE文件有一个基本的了解。这里使用的工具是hex workshop6.5。一、开始为一个结构体,我们来看一下:typedef struct _IMAGE_DOS_HEADER { // DOS .EXE header WORD e_magic; // Magic number WORD e_cblp; // Bytes on last page of file WORD e_cp; // Pages i...
阅读全文
摘要:_______________________________ | IMAGE_DOS_HEADER | <-- Dos部首 ------------------------------- | PE,0,0 | <-- PE文件标志 ------------------------------- | IMAGE_FILE_HEADER | <-- 映像文件头 ------------------------------- | IMAGE_OPTIONAL_HEADER32 | <-- 映像可选头 -----------------...
阅读全文
摘要:from:http://www.2cto.com/Article/201203/123125.htmlPE的意思就是这个the Protable Executable (PE) file format 微软搞得那么一套东西,字面意思是可移植的,但是现实使用中没见他多么的可移植,PE格式借鉴了UNIX系统中的COFF (Common Object File Format) 格式。而且PE对MS-Dos的兼容,保留了MS-Dos头,在dos下打开会提示 “这是win32程序在dos下不能跑” 向下兼容,非常的友好。MS-DOS MZ header 的结构是这样的typedef struct _IM
阅读全文
摘要:这个IMAGE_NT_HEADERS其实就是PE相关结构的映像头,NT据我揣测应该是New Technology的缩写,区分于DOS WIN9X的新技术,您老要是非觉得是NTR什么的也没关系。IMAGE_NT_HEADERS的结构是这个样子的IMAGE_NT_HEADERS STRUCT{+0h DWORD Signature+4h IMAGE_FILE_HEADER FileHeader+18h IMAGE_OPTIONAL_HEADER32 OptionalHeader} IMAGE_NT_HEADERS ENDS其中包含两个子结构体,和一个标志。其中Signature字段被设置成0000
阅读全文
摘要:from:http://www.2cto.com/Article/201204/127992.html【文章作者】: NoAir【软件名称】: emu8086 v4.08【保护方式】: 有点戏剧性【编写语言】: Visual Basic【软件介绍】: 一款优秀的8086汇编IDE,支持可视化调试,内置FASM【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!--------------------------------------------------------------------------------【详细过程】 仅以此文纪念一下emu8086,现在官网不能打开
阅读全文
摘要:在熟悉了PE结构之后,我们还有知道系统从磁盘加载静态文件映射到内存,作了哪一些的改变。 PE结构,就好像一张指南,告之系统自己的各个属性,哪些地方保存着哪些数据,随后又加载到哪里去。加壳的PE文件始终是也是一个文件,同原始的PE文件比较,只不过是两种数据结构相同,却数据内容不同罢了。 下面我们模拟一次系统loader的过程,探讨一下PE文件是如何从磁盘的静态数据加载的内存中去的。 首先,loader会判断目标文件是否问正常的PE文件IMAGE_DOS_HEADER结构的MZ标志IMAGE_NT_HEADER结构的PE/0/0标志如果出错,就会弹出一个错误提示。\如果是正确的PE格式那么load
阅读全文
摘要:PE文件中的结构众多,但是其实,这些结构一多半是告诉loader怎么去加载自身PE的。正常的PE文件总是很严格去填充自身的内部结构,但是也有一小部分变形PE文件没有那么的中规中矩,所以PE结构中有的信息到了loader可能最终也只是起到了一个校验作用。在纵观PE整个大结构的时候,不应该去拘泥于每一个数据结构的特征,应该从大体上去把握它。本文试图通过loader加载方式的类比和举例的角度,介绍了loader是如何讲PE结构中相关重要数据进行加载的。因为介绍PE的优秀文章有很多加上作者水平很有限,如果有错误,请各位指正。下面,就开始逐一的介绍相关重要的结构:1.各种表头 1.1 Dos表头 1.2
阅读全文
摘要:from:http://www.2cto.com/Article/201202/118214.html这是我对之前学习写一个简单压缩壳的总结。期间查阅了很多的资料,借鉴了很多的代码,做了很多的笔记,有一些小心得和体会,希望与大家共同的交流和学习。再一次的感谢各位前辈们提供的无数资料。 文章分为了4个部分,从最基本的概念,到最后学习实践的代码,都在这个系列之中。文章包括:1.数据与指令,以及加载前期相关概念2.pe文件的结构解析3.pe文件load的过程4.壳的处理 因为小弟才疏学浅,肯定有不足和错误之处,希望各位大虾能多多的指点。希望为学习写压缩壳的朋友提供一点参考,哪怕是一点点,就很知足了:
阅读全文