使用IDA破解TraceMe.exe

我发现用IDA破解TraceMe.exe比ODeasy多了。

打开IDA 后。直接搜索“序列号”。得到

双击跳转到反汇编窗体,按F5转换为类C++代码

signed int __stdcall DialogFunc(HWND hWnd, int a2, unsigned __int16 a3, int a4)

{

signed int v5; // [email protected]

int v6; // [email protected]

HWND v7; // [email protected]

HWND v8; // [email protected]

HWND v9; // [email protected]

HICON v10; // [email protected]

const CHAR String2[4]; // [sp+8h] [bp-F4h]@1

int v12; // [sp+Ch] [bp-F0h]@1

int v13; // [sp+10h] [bp-ECh]@1

__int16 v14; // [sp+14h] [bp-E8h]@1

char v15; // [sp+16h] [bp-E6h]@1

char v16; // [sp+18h] [bp-E4h]@1

__int16 v17; // [sp+2Ch] [bp-D0h]@1

char v18; // [sp+2Eh] [bp-CEh]@1

char v19; // [sp+30h] [bp-CCh]@1

__int16 v20; // [sp+44h] [bp-B8h]@1

char v21; // [sp+46h] [bp-B6h]@1

CHAR String; // [sp+48h] [bp-B4h]@9

const CHAR String1; // [sp+98h] [bp-64h]@9

memcpy(&v16, "你输入字符要大于四个。", 0x14u);

v17 = *(_WORD *)"!";

v12 = dword_405054;

v18 = aUFIKGb[22];

v15 = byte_40505E;

memcpy(&v19, "序列号错误。再来一次!", 0x14u);

*(_DWORD *)String2 = dword_405050;

v20 = *(_WORD *)"!";

v14 = word_40505C;

v13 = dword_405058;

v21 = aAGmGb[22];

if ( a2 == 16 )

{

DestroyWindow(hWnd);

return 1;

}

if ( a2 == 272 )

{

v10 = LoadIconA(hInstance, (LPCSTR)0x70);

SendMessageA(hWnd, 0x80u, 1u, (LPARAM)v10);

SendDlgItemMessageA(hWnd, 110, 0xC5u, 0x50u, 0);

return 1;

}

if ( a2 != 273 )

return 0;

if ( (signed int)a3 > 1013 )

{

if ( a3 == 1014 || a3 == 40002 )

DialogBoxParamA(hInstance, (LPCSTR)0x67, hWnd, sub_401020, 0);

return 0;

}

if ( a3 != 1013 )

{

if ( a3 == 2 || a3 == 1002 )

{

SendMessageA(hWnd, 0x10u, 0, 0);

return 0;

}

return 0;

}

v5 = GetDlgItemTextA(hWnd, 110, &String, 81);//username

GetDlgItemTextA(hWnd, 1000, (LPSTR)&String1, 101);//序列号

if ( String && v5 >= 5 )//推断输入的username长度是不是大于5

{

LOBYTE(v6) = sub_401340(&String1, &String, v5);//此函数依据username生成序列号。并与输入的序列号进行比較

if ( v6 )//v6==1,表示username和序列号匹配

{

lstrcpyA(::String1, String2);

v7 = GetDlgItem(hWnd, 110);

EnableWindow(v7, 0);

v8 = GetDlgItem(hWnd, 1000);

EnableWindow(v8, 0);

v9 = GetDlgItem(hWnd, 1000);

}

else

{

lstrcpyA(::String1, &v19);

v9 = GetDlgItem(hWnd, 1000);

}

}

else

{

lstrcpyA(::String1, &v16);//username长度小于5。提示“你输入字符要大于四个”

v9 = GetDlgItem(hWnd, 110);

}

SetFocus(v9);

MessageBeep(0);

DialogBoxParamA(hInstance, (LPCSTR)0x79, hWnd, sub_401060, 0);

return 0;

}

bool __cdecl sub_401340(LPCSTR lpString1, LPSTR lpString2, signed int a3)

{

signed int v3; // [email protected]

int v4; // [email protected]

signed int i; // [email protected]

v3 = 3;

v4 = 0;

for ( i = 0; v3 < a3; ++i )

{

if ( i > 7 )

i = 0;

v4 += (unsigned __int8)byte_405030[i] * (unsigned __int8)lpString2[v3++];

}

wsprintfA(lpString2, "%ld", v4);

return lstrcmpA(lpString1, lpString2) == 0;

}

byte_405030[]数组在.data区:

char byte_405030[8]={0x0C,0x0A,0x13,0x09,0x0C,0x0B,0x0A,0x08}

假如我输入username为:tanyo

v4=121*12+111*10=2562

输入usernametanyo,序列号2562进行验证:

时间: 2024-08-09 10:44:43

使用IDA破解TraceMe.exe的相关文章

逆向破解学习二之&lt;TraceMe&gt;

这次在破解TraceMe的时候,我有看过别人的视频.但是我并没有按照别人思路走,而是完全安全自己的思路试了一次.结果破解成功.新手学破解,如果有不对的地方,还请指出来. 004013A0 crackmes.<ModuleEntryPoint> /$ 55 push ebp : EP入口 004013A1 |. 8BEC mov ebp, esp ;保护数据,入栈.方便程序结束后返回 004013A3 |. 6A FF push -1 004013A5 |. 68 D0404000 push 0

Sublime2 破解教程

说真的很多年没有写破解教程了,这次很多青年要求写一个,于是就再次献丑: 首先安装Sublime2,然后找一个IDA Pro,带HexRay的. ok,用IDA打开sublime_text.exe,然后搜索“This is an unregistered copy”之类的提示,按F5,经过几次搜索以后你会跳到类似于下面这样的代码段: 注意这个bRegistered,这是已经被重命名的变量,正是这个关键变量标志着Sublime是否已经注册,我们看看它的交叉引用: 注意到选中的这行,什么时候修改注册标

一些Wifi破解姿势

wlan0:无线网卡设备 BSSID/AP's MAC:目标路由器的mac地址 Client's MAC:连接到此wifi客户端的mac地址 ESSID:这个无线的名字 CH[X] 扫描的信道号,因为airodump是跳频扫描的,会一直扫描13个信道.后面是你的扫描时间和你本地时间. BSSID:路由器MAC地址 PWR:网卡的信号水平,新号越好数值越大,但是例如第一个出现‘-1’说明该客户端不在我的监听范围内. Beacons:就是Beacon数据的速率 #Date:被捕获的数据分组数量 #/

CVE-2010-0483分析 Microsoft Internet Explorer 6/7/8 - &#39;winhlp32.exe&#39; &#39;MsgBox()&#39; Remote Code Execution

相关资料:https://www.exploit-db.com/exploits/11615/ 目的是为了了解漏洞执行的流程. 根据资料准备服务端环境: 用一台win7当做是服务器,需要在win7上共享一个文件夹用于客户端访问.我的测试环境共享的文件夹是www. (1)启用Guest来宾账户,共享文件夹时将Guest添加读权限.此时在win7本机上应能访问,但在局域网的XP虚拟机无法访问  \\192.168.0.11\www\ (2)运行 secpol.msc 打开本地安全策略->本地策略->

爱博邮件群发系统专业版Version 10.5.2Build 429破解版

软件名称:爱博邮件群发系统专业版Version 10.5.2Build 429破解版 (此软件上一个版本小众论坛发布过破解版,大家对这个软件的反响都比较好,但是上一个版本的破解依然是存在问题,发送20封邮件会自动停止.这一次新版的破解已经更新此问题.目前算是比较完美的破解了,小瑕疵是不能批量导入发送帐号)去除了导入20个邮箱限制去除了发送20个邮箱限制去除了官方发送所带尾巴 软件介绍:只要一款软件,企业邮局群发.外贸邮件群发全部搞定! 最新版本的爱博邮件群发系统支持SMTP投递模式,支持企业邮箱

豪迪qq群发器2014破解版(5月26日)haodi软件QQ5.5群发

软件名称:豪迪qq群发器2014破解版(5月26日)haodi软件QQ5.5群发软件说明:官方对豪迪进行了更新,应该是针对QQ的版本升级到QQ5.5 的改变,已经针对QQ5.5测试过可以使用破解使用:(下载前后看下说明)1.小众论坛回帖下载豪迪qq群发器2014破解版(5月26日)haodi软件QQ5.5群发2.运行qqqf.exe3.运行 豪迪QQ2014破解(5月26日)破解补丁.exe  点击小众论坛破解4.开始使用吧.测试截图: 土豪下载通道:http://tuan.xzrj.cc/vi

Quartus II 12.0 下载、安装和破解

20130417 Quartus II 12.0 不支持波形仿真,推荐使用 QuartusII 9.1,win7 32/64 bit 均可用- 下载地址 http://download.altera.com/akdlm/software/quartus2/91/91_quartus_windows.exe 破解工具 http://files.cnblogs.com/imapla/QuartusII91_Crack.zip Quartus II 出到12.0了,之前装了11.0一直无法破解,无奈之

豪迪QQ群发器2015.1.22破解版by小众论坛

软件名称:豪迪QQ群发器2015.1.22破解版 软件介绍:最新的版本破解,一个众所周知的群发QQ消息的软件.更新是针对QQ的更新而更新的 测试截图: <ignore_js_op> <ignore_js_op> 破解说明:1.小众论坛下载解压豪迪QQ群发器2015.1.22破解版2.运行 豪迪QQ群发器2015.1.22破解版.exe3.点击小众论坛启动 豪迪QQ群发器2015.1.22破解版下载: http://www.xzrj.cc/thread-42321-1-1.html

traceme 爆破小记

F3 加载 traceme.exe F9 运行,出现如下界面 猜测输入使用 GetDlgItemTextA, ctrl + F2 重新运行,快捷键 ctrl + G 查找到 GetDlgItemTextA 位置处,下断点. F9 运行,弹出注册界面,输入用户名 hello,序列号 world. 按下 check,执行到 GetDlgItemTextA.按 F8 继续走.注意"信息窗口", 会出现 "stack address=0012F968, (ASCII "he