学破解第56天,零基础小白通过MessageBox认识堆栈窗口回溯
本帖最后由 小菜鸟一枚 于 2019-9-15 15:32 编辑一直对黑客充满了好奇,觉得黑客神秘,强大,无所不能,来论坛一年多了,天天看各位大佬发帖,自己只能做一个伸手党。也看了官方的入门视频教程,奈何自己基础太差,看不懂。自我反思之下,决定从今天(2019年6月17日)开始定下心来,从简单的基础教程开始学习,希望能从照抄照搬,到能独立分析,能独立破解。
立帖为证!--------记录学习的点点滴滴
零基础小白通过MessageBox认识堆栈窗口回溯
前言:不知不觉学了这么久,觉得对堆栈回溯有了一定的认识,于是自己写了一个C语言程序,
通过失败窗口定位到MessageBox,然后回溯到反汇编窗口,在段首F2下断点,开始单步跟,寻找爆破点!
1.通过MessageBox定位
004010E0|.85C0 test eax,eax
004010E2 75 07 jnz short demo01.004010EB
004010E4|.68 38214000 push demo01.00402138 ;UNICODE "恭喜你,成功了!"
004010E9|.EB 05 jmp short demo01.004010F0
004010EB|>68 4C214000 push demo01.0040214C ;UNICODE "亲,你失败了!"
004010F0|>6A 00 push 0x0 ; |hOwner = NULL
004010F2|.FF15 B8204000 call dword ptr ds:[<&USER32.MessageBoxW>>; \MessageBoxW
在这个函数段首(00401000)F2下断点,然后开始单步跟!
00401000 >/$55 push ebp
00401001|.8BEC mov ebp,esp
00401003|.83EC 40 sub esp,0x40
00401006|.A1 00304000 mov eax,dword ptr ds:
2.寻找爆破点
004010E2将这句nop掉,然后保存出去,即爆破成功!
3.对比源码分析总结
// demo01.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <string.h>
#include <stdlib.h>
#include <Windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
char ch1 = "xiaocainiao";//原始字符串
char ch2 = "xiaocainiao";//加密字符串
char ch3 = "";
printf("请输入正确的字符串:\n");
scanf("%s",ch3);//获取用户输入的值
fflush(stdin);//刷新缓冲流
//对字符串进行变换处理
for(int i = 0;i <strlen(ch1);i++)
{
ch2 = ch1[(strlen(ch1))-i-1];//将字符串进行对称变换
}
//比较用户输入的字符串与加密后的字符串是否相等
if(!strcmp(ch2,ch3))
{
MessageBox(NULL,TEXT("恭喜你,成功了!"),TEXT("小菜鸟一枚"),MB_OK);
}
else
{
MessageBox(NULL,TEXT("亲,你失败了!"),TEXT("小菜鸟一枚"),MB_OK);
}
//暂停一下程序
system("pause");
return 0;
}
堆栈地址=0018FF18, (ASCII "xiaocainiao")
edx=0018FF2C, (ASCII "666")
demo01.wmainerrinitgeBasexceptionFiltertion+9D
ecx最开始的xiaocainiao字符串
我们输入的值666,存在edx里面
我们失败时的ECX值
ecx=0018FF04, (ASCII "oainiacoaix")
demo01.wmainerrinitgeBasexceptionFiltertion+0C6
所以正确的字符串是oainiacoaix
====================================================================
以上为文字记录
学习视频+源码:链接:https://pan.baidu.com/s/1RniQtJknU0CfNZpwBO3tQQ
提取码:l7sv
复制这段内容后打开百度网盘手机App,操作更方便哦
总结:楼主目前虽然学了快两个月了,但是都是照搬照抄,不懂编程,目前学了点简单的
C语言,既然别人的程序看不懂,那就自己动动手,破解自己的程序。
『UnPackMe◇CrackMe◇KeyGenMe◇ReverseMe』这是一个好地方,可惜楼主仍然是小白一枚,不知道怎么破解里面
的程序,希望以后能够进去学习学习!
不足之处:视频分析的地方可能有错误,希望论坛大佬看到,不吝指正! standyy 发表于 2019-9-16 01:03
楼主好毅力,自己也准备学破解很久了的。还在无从下手
如果有基础你可以边自己破解边学,没基础的话我建议,先照着答案抄,抄多了你就有一定的经验,然后凭感觉去自己操作,发现行不通再来看一下答案怎么破解的,就这样一步步学进去,你可以看我第一篇帖子,那完完全全就是抄答案,希望你也能踏上破解之路,共同学习。:handshake 本帖最后由 小菜鸟一枚 于 2019-9-22 12:48 编辑
xglys 发表于 2019-9-22 09:06
把你的教程分享一下 看看吧!!@
你点我的名字,封面有个广播主题,论坛转载的教程和我的学习记录的导航链接里面都有。
https://www.52pojie.cn/thread-1020860-1-1.html,这是链接 虽然看不懂,但是楼主的学习精神值得学习,大大给赞!!! 加油,支持楼主 加油!大家都是小白!愿楼主更上一层楼! 加油,比我强,我都来论坛好久了都没学会 感谢分享 楼主加油! 小白们加油 你还是厉害,我也无从下手。不知道从哪学起