bxm的第6个CrackMe
难度:1要求:找出注册码或做出注册机,爆破的不算!
祝各位玩得愉快! 先这样了.
是怎么来的啊
[ 本帖最后由 极速暴龙 于 2007-3-2 00:54 编辑 ] 这个CRACKME是个反调试的东西
利用GetStartupInfo检测是否存在调试器返回垃圾相+
所以很多人可以追出码但又发现重起不能注册呵呵@~
ww-jack
129;=
给出注册机
procedure TForm1.Button1Click(Sender: TObject);
var
i,j:Integer;
s:string;
begin
s:='';
Edit2.Text:='';
j:=1;
for i:=1 to Length(edit1.Text) do
j:= ($14 -i+1) * Ord(edit1.Text) +j;
s:=IntTostr(j);
for i:=0 toLength(s)-1 do
edit2.Text:=Edit2.text + chr(strtoint(IntToStr(Ord(s)+i))) ;
end;
原帖由 极速暴龙 于 2007-3-2 00:43 发表
先这样了.
是怎么来的啊
真的要看的话 先启动然后 OD 附加 在 D 42D0C0 可以看见了
如果在按钮事件或 定时检测的话是不是难度加大呢 多谢两位的支持,我这个CrackMe也是看了dummy兄的《使用 GetStartupInfo 检查自己是否被"调试"》一文。(http://bbs.pediy.com/showthread.php?threadid=31447)才有灵感写的. 进来学习一下,不知道这个函数是干什么用的 原帖由 digit 于 2007-3-5 11:32 发表
进来学习一下,不知道这个函数是干什么用的
标 题: 使用 GetStartupInfo 检查自己是否被"调试"
作 者: dummy
时 间: 2006-09-03,17:42
链 接: http://bbs.pediy.com/showthread.php?threadid=31447
在使用 CreateProcess 创建进程时,需要传递
STARTUPINFO 的结构的指针,
而常常我们并不会一个一个设置其结构的值,
连把其他不用的值清0都会忽略,
而 ollydbg 也这样做了,
我们可以使用 GetStartupInfo 检查启动信息,
如果很多值为"不可理解"的,那么就说明自己不是由 explorer 来创建的.(explorer.exe 使用 shell32 中 ShellExecute 的来运行程序, ShellExecute 会清不用的值)
还有一点 ollydbg 会向 STARTUPINFO 中的 dwFlags 设置 STARTF_FORCEOFFFEEDBACK,而 explorer 不会
////////////////////////
//ex
#include <windows.h>
#include <stdio.h>
#pragma comment(linker, "/subsystem:windows /entry:main")
int main()
{
STARTUPINFO si;
GetStartupInfo(&si);
if (
(si.dwX != 0) ||
(si.dwY != 0) ||
(si.dwXCountChars != 0) ||
(si.dwYCountChars != 0) ||
(si.dwFillAttribute != 0) ||
(si.dwXSize != 0) ||
(si.dwYSize != 0) ||
(si.dwFlags & STARTF_FORCEOFFFEEDBACK)
)
{
MessageBox(NULL, "found debugger!", NULL, 0);
}
else
{
MessageBox(NULL, "no found debugger!", NULL, 0);
}
return 0;
}
转载原创帖请注明出自看雪论坛pediy.com,本贴地址请保留:http://bbs.pediy.com/showthread.php?s=&threadid=31447 bxp能公布一下你的这个crackme的加密代码吗,我想研究一下。 源码见附件.
谢谢
谢谢,努力学习中
页:
[1]
2