方案一:(普通版)#pragma comment(linker, "/STACK:102400000,102400000")方案二:(汇编版)const int main_stack = 16;
char my_stack[128<<20];int main() {
__asm__("movl %%esp, (%%eax);\n"::"a"(my_stack):"memory");...
分类:
其他好文 时间:
2015-08-17 21:52:18
阅读次数:
183
从暑假开始逆向研究也有一个半月了,今晚分析了一个压缩壳。其实像这种壳完全可以esp定律秒掉的,之所以分析它,是因为我想知道所谓IAT修复具体是怎么回事,还有压缩壳的到底流程是怎么样的,我认为学逆向最大的乐趣就是可以满足人的好奇心,只要精力够,程序的每个细节是怎么做的都可以知道。aplib部分没去搞(...
分类:
其他好文 时间:
2015-08-17 00:51:39
阅读次数:
159
我们在上一篇文章中提到Bootsect如何制作,接着我们来做打印字符,(某些朋友可能认为打印字符是最重要的,嘻嘻)
直接贴代码:
_ASM_Print_String:
push ebp
mov ebp, esp
mov esi, [ebp + 8] ; pszInfo
mov edi, [POS]
mov ah, [ebp + 12] ; color
.1:
lodsb
t...
分类:
其他好文 时间:
2015-08-15 12:04:39
阅读次数:
133
比如你用local在栈上定义了一个局部变量LocalVar,你知道实际的指令是什么么?一般都差不多像下面的样子: push ebp mov esp, ebp sub esp, 4 现在栈上就有了4各字节的空间,这就是你的局部变量。 接下来,你执行mov LocalVar, 4...
分类:
其他好文 时间:
2015-08-02 06:18:27
阅读次数:
215
方法一:载入OD,使用ESP定律:下硬件访问断点之后,运行四次,跑飞,那么我们运行三次,到这里看到很多pop:retn返回后就到达OEP了:方法二:直接单步跟踪,跟踪到F4跳过,继续跟踪:遇到这个loopd,F4跳过。继续单步跟踪,会在下面的这三个跳转指令间循环一阵子:往上跳到这里:往上跳到这里:这...
分类:
其他好文 时间:
2015-07-30 00:43:06
阅读次数:
194
1、 用AMS1117搭建一个3.3V输出的电路2、 ESP8266 ESP-01接线只要连接UTXD、GND、CH_PD、VCC、URXD这五个管脚就可以直接使用了。注意的是CH_PD要接高电平。3、 用TCP232的串口功能测试3.1 打开串口助手,波特率设为1152003.2断电重启的时候,蓝...
分类:
其他好文 时间:
2015-07-18 14:01:11
阅读次数:
2460
作者:Fly2015
吾爱破解论坛培训第一课选修作业练习的第7题。这个壳没听说过,但是脱起来比较简单,根据ESP定律即可直达光明,Dump出原来的程序。
老规矩,首先对需要脱壳的程序进行查壳处理。
使用DIE查壳的结果,程序加的是RLPack壳并且原程序是用微软编译器编译的。
OD载入加壳程序进行调试分析,入口点代码反汇编快照。
看到PUSHAD指令想都不要想,...
分类:
其他好文 时间:
2015-07-15 11:12:12
阅读次数:
126
完成一个简单的时间片轮转多道程序内核代码重要汇编代码分析 asm volatile(
"movl %1,%%esp\n\t"
"pushl %1\n\t"
"pushl %0\n\t"
"ret\n\t"
"popl %%ebp\n\t"
:
: "c" (task[pid]...
分类:
其他好文 时间:
2015-07-10 11:24:50
阅读次数:
131
这里脱壳的程序是吾爱破解培训的作业2,相较于作业1稍微要强一点,但是只要掌握了脱壳的ESP定律,脱这个Nspack壳并不难,不过还是蛮有意思的。
1.使用查壳软件对加壳的程序进行查壳。
使用PE Detective查壳的结果:
使用DIE查壳的结果:
2.OD载入程序进行脱壳操作
OD载入以后,被加壳程序的入口点的汇编代码,如图。很显然,加壳程序载入OD以后,发现...
分类:
其他好文 时间:
2015-07-09 16:17:10
阅读次数:
169
C/C++堆栈指引
Binhua Liu
document_thumb_thumb前言
我们经常会讨论这样的问题:什么时候数据存储在飞鸽传书堆栈(Stack)中,什么时候数据存储在堆(Heap)中。我们知道,局部变量是存储在堆栈中的;debug时,查看堆栈可以知道函数的调用顺序;函数调用时传递参数,事实上是把参数压入堆栈,听起来,堆栈象一个大杂烩。那么,堆栈(Stack)到底是如何工作的呢? 本文将详解C/C++堆栈的工作机制。阅读时请注意以下几点:
1)本文讨论的语言是 Visual C/...
分类:
编程语言 时间:
2015-07-07 19:34:27
阅读次数:
236