小菜鸟一枚 发表于 2019-9-15 15:17

学破解第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』这是一个好地方,可惜楼主仍然是小白一枚,不知道怎么破解里面
的程序,希望以后能够进去学习学习!

不足之处:视频分析的地方可能有错误,希望论坛大佬看到,不吝指正!

小菜鸟一枚 发表于 2019-9-16 08:19

standyy 发表于 2019-9-16 01:03
楼主好毅力,自己也准备学破解很久了的。还在无从下手

如果有基础你可以边自己破解边学,没基础的话我建议,先照着答案抄,抄多了你就有一定的经验,然后凭感觉去自己操作,发现行不通再来看一下答案怎么破解的,就这样一步步学进去,你可以看我第一篇帖子,那完完全全就是抄答案,希望你也能踏上破解之路,共同学习。:handshake

小菜鸟一枚 发表于 2019-9-22 12:47

本帖最后由 小菜鸟一枚 于 2019-9-22 12:48 编辑

xglys 发表于 2019-9-22 09:06
把你的教程分享一下 看看吧!!@
你点我的名字,封面有个广播主题,论坛转载的教程和我的学习记录的导航链接里面都有。
https://www.52pojie.cn/thread-1020860-1-1.html,这是链接

hsppc 发表于 2019-9-15 15:34

虽然看不懂,但是楼主的学习精神值得学习,大大给赞!!!

夜步城 发表于 2019-9-15 15:45

加油,支持楼主

honor-lions 发表于 2019-9-15 16:12

加油!大家都是小白!愿楼主更上一层楼!

huanghe302 发表于 2019-9-15 16:17

加油,比我强,我都来论坛好久了都没学会

coradong1985 发表于 2019-9-15 16:18

fuyu3939 发表于 2019-9-15 16:38

感谢分享

Jinqiu_Lee 发表于 2019-9-15 16:45

楼主加油!

acmelining 发表于 2019-9-15 16:46

小白们加油

414246704 发表于 2019-9-15 16:49

你还是厉害,我也无从下手。不知道从哪学起
页: [1] 2 3 4
查看完整版本: 学破解第56天,零基础小白通过MessageBox认识堆栈窗口回溯