【reversing.kr逆向之旅】Position的writeup

有提示是说flag就是当Serial为76876-77776时的Name    有多解    提示有四位 且最后一位是p

ReversingKr KeygenMe


Find the Name when the Serial is 76876-77776
This problem has several answers.

Password is ***p

PEiD查不到壳   于是IDA载入

shift+f12找不到什么关键的字符串

于是用OD载入   发现可以找到关键字符串

双击Input Name   找到函数开始的地址

在IDA的函数列表进行过滤

然后F5发现这里没什么用

那就找correct的函数开始地址   F5

发现sub_401740()这个函数处理了我们的输入input  之后将返回值赋给v2  从而判断是否正确

双击进入  发现有API获取输入

CWnd::GetWindowTextW(a1 + 304, &v50);

一共有两句  v50,v51猜测就是Name,Serial

signed int __stdcall sub_401740(int a1)
{
  int v1; // edi
  int v3; // esi
  int v4; // esi
  __int16 v5; // bx
  unsigned __int8 v6; // al
  unsigned __int8 v7; // ST2C_1
  unsigned __int8 v8; // al
  unsigned __int8 v9; // bl
  wchar_t *v10; // eax
  __int16 v11; // di
  wchar_t *v12; // eax
  __int16 v13; // di
  wchar_t *v14; // eax
  __int16 v15; // di
  wchar_t *v16; // eax
  __int16 v17; // di
  wchar_t *v18; // eax
  __int16 v19; // di
  unsigned __int8 v20; // al
  unsigned __int8 v21; // ST2C_1
  unsigned __int8 v22; // al
  unsigned __int8 v23; // bl
  wchar_t *v24; // eax
  __int16 v25; // di
  wchar_t *v26; // eax
  __int16 v27; // di
  wchar_t *v28; // eax
  __int16 v29; // di
  wchar_t *v30; // eax
  __int16 v31; // di
  wchar_t *v32; // eax
  __int16 v33; // si
  unsigned __int8 v34; // [esp+10h] [ebp-28h]
  unsigned __int8 v35; // [esp+10h] [ebp-28h]
  unsigned __int8 v36; // [esp+11h] [ebp-27h]
  unsigned __int8 v37; // [esp+11h] [ebp-27h]
  unsigned __int8 v38; // [esp+13h] [ebp-25h]
  unsigned __int8 v39; // [esp+13h] [ebp-25h]
  unsigned __int8 v40; // [esp+14h] [ebp-24h]
  unsigned __int8 v41; // [esp+14h] [ebp-24h]
  unsigned __int8 v42; // [esp+19h] [ebp-1Fh]
  unsigned __int8 v43; // [esp+19h] [ebp-1Fh]
  unsigned __int8 v44; // [esp+1Ah] [ebp-1Eh]
  unsigned __int8 v45; // [esp+1Ah] [ebp-1Eh]
  unsigned __int8 v46; // [esp+1Bh] [ebp-1Dh]
  unsigned __int8 v47; // [esp+1Bh] [ebp-1Dh]
  unsigned __int8 v48; // [esp+1Ch] [ebp-1Ch]
  unsigned __int8 v49; // [esp+1Ch] [ebp-1Ch]
  int Name; // [esp+20h] [ebp-18h]
  int Serial; // [esp+24h] [ebp-14h]
  char v52; // [esp+28h] [ebp-10h]
  int v53; // [esp+34h] [ebp-4h]

  ATL::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>(&Name);
  v1 = 0;
  v53 = 0;
  ATL::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,
逆向工程是一种通过对已有产品、软件或技术进行分析、研究和逆向推导,以揭示其设计、功能和运行原理的方法。它是为了获取对原产品的理解,从而进行改进、研究或模仿而进行的活动。 逆向工程使用各种技术和工具来研究产品的内部结构,包括软件反编译、硬件分析、电路追踪等。逆向工程的目的可能是为了获取技术上的好处,比如了解竞争对手的产品设计,学习新技术,提高产品的兼容性和易用性等。同时,逆向工程也经常用于软件安全领域,以发现潜在的漏洞和安全问题。 逆向工程需要有深入的技术知识和经验。研究人员需要拆解产品,进行逐层分析和测试。他们可能会使用一些特殊的工具和软件,例如反汇编器、调试器、仿真器等。通过逆向分析,研究人员可以了解产品的工作原理、算法、数据结构等核心内部信息。 尽管逆向工程在学术、商业和安全领域有着广泛的应用,但也存在着争议。一些公司对其进行严格保护和法律限制,防止他人逆向他们的产品。同时,逆向工程也可能被不法分子用于非法活动,如逆向工程软件获得非法利益。 总之,逆向工程是一种既有科学性、又有实践价值的技术活动。它为技术研究、产品改进、安全评估等提供了重要的途径和方法。但在进行逆向工程时,需要遵守法律法规,尊重知识产权,确保合法合规。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值