160个练手CrackMe-034

160个练手CrackMe-0341 无壳 FileKey 类型 2 OD 载入 00 6A00push0x0 hTemplateFil NULL00 push0x80 Attributes NOR

1、无壳

FileKey类型 

2、OD载入

00 |. 6A 00 push 0x0 ; /hTemplateFile = NULL 00 |. 68 push 0x80 ; |Attributes = NORMAL 0040101D |. 6A 03 push 0x3 ; |Mode = OPEN_EXISTING 0040101F |. 6A 00 push 0x0 ; |pSecurity = NULL 00 |. 6A 03 push 0x3 ; |ShareMode = FILE_SHARE_READ|FILE_SHARE_WRITE 00 |. 68 000000C0 push 0xC0000000 ; |Access = GENERIC_READ|GENERIC_WRITE 00 |. 68 D push Cruehead.004020D7 ; |CRACKME3.KEY 0040102D |. E8 call <jmp.&KERNEL32.CreateFileA> ; \CreateFileA 00 |. 83F8 FF cmp eax,-0x1 00 |. 75 0C jnz XCruehead.00 00 |> 68 0E push Cruehead.0040210E ; CrackMe v3.0 0040103C |. E8 B call Cruehead.004012F5 ; " - Uncracked" 00 |. EB 6B jmp XCruehead.004010AE 00 |> A3 F mov dword ptr ds:[0x4020F5],eax ; 文件句柄 00 |. B8 mov eax,0x12 0040104D |. BB 0 mov ebx,Cruehead.00 ; ASCII " opqr" 00 |. 6A 00 push 0x0 ; /pOverlapped = NULL 00 |. 68 A0 push Cruehead.004021A0 ; |pBytesRead = Cruehead.004021A0 00 |. 50 push eax ; |BytesToRead => 12 (18.) 0040105A |. 53 push ebx ; |Buffer => Cruehead.00 0040105B |. FF35 F push dword ptr ds:[0x4020F5] ; |hFile = 000001E8 00 |. E8 call <jmp.&KERNEL32.ReadFile> ; \ReadFile 00 |. 833D A0>cmp dword ptr ds:[0x4021A0],0x12 ; 读取长度 0x12 0040106D |.^ 75 C8 jnz XCruehead.00 0040106F |. 68 0 push Cruehead.00 ;  00 |. E8 call Cruehead.00 ; 处理函数 1 00 |. 8135 F>xor dword ptr ds:[0x4020F9],0x 00 |. 83C4 04 add esp,0x4 00 |. 68 0 push Cruehead.00 ;  0040108B |. E8 AC020000 call Cruehead.0040133C ; 处理函数 2 00 |. 83C4 04 add esp,0x4 00 |. 3B05 F cmp eax,dword ptr ds:[0x4020F9] ; 比较 00 |. 0F94C0 sete al 0040109C |. 50 push eax 0040109D |. 84C0 test al,al 0040109F |.^ 74 96 je XCruehead.00 ; 跳向失败 

call 00()处理Serial前14位得到一个值,和Serial的后4位比较,相同成功,不相同失败;

原型:

int call_00(char *serial){ int sum = 0; for(int i = 0; i < 0xE; i++){ serial[i] ^= 0x41 + i; sum += serial[i]; if(serial[i] == 0) break; } return sum ^ 0x; } if(call_00(serial) == *(int *)(serial + 14)) "Y"; else "N"; 

3、注册机

int call_00(char *serial){ int sum = 0; for(int i = 0; i < 0xE; i++){ serial[i] ^= 0x41 + i; sum += serial[i]; if(serial[i] == 0) break; } return sum ^ 0x; } int main(){ FILE *fp; char serial[15]; int ret; cout << "Please enter a string with a length of 14:" << endl; cin >> serial; fp = fopen("CRACKME3.KEY", "wb+"); fwrite(serial, 0x0E, 1, fp); fflush(fp); ret = call_00(serial); fwrite(&ret, 0x04, 1, fp); // cout << hex << ret; return 0; }

这里写图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233821.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • icem网格划分如何给内部面网格,ICEM CFD处理混合网格划分中低质量的问题

    icem网格划分如何给内部面网格,ICEM CFD处理混合网格划分中低质量的问题所谓的混合网格,指的是模型中同时存在结构网格与非结构网格的情况。采用混合网格的主要优势在于:对于复杂的几何,我们可以将其分解成多个几何,对于适合划分结构网格的采用结构网格划分方式,而对于非常复杂的部分,可以使用非结构方式进行划分。然而采用混合网格也有一些缺点:交接面位置网格质量会非常差。因此我们需要采用一些方式对网格质量进行改善。另外对于交界面的处理也存在一些问题。我们先说说在ICEMCFD中进…

    2022年5月26日
    35
  • 深入浅出python学习

    深入浅出python学习最近开始自学python,网上找了本书《深入浅出python》个人感觉很好,图片很多,比较生动,让人印象深刻。昨天很快就看完了第一章,非常顺利。然而,今天看到发布那块开始出问题了。构建发布和安装的时候出问题那本书是在linux系统下运行,而我用的是windows10.折腾了老半天,得到以下结论:构建一个发布文件:linux:python3setup.pysdistwindow…

    2022年10月18日
    0
  • pve虚拟机单网口(虚拟机做软路由)

    PVE虚拟网口扩展实现一线多拨PVE网口设置可以看到这里有两个物理网口我的物理网口enp3s0没有对应的vmbr1,需要先创建LinuxBridge,步骤如下:ROS虚拟网口设置这是关键一步,需要创建四个虚拟网口对应一个LAN口设置四个虚拟网口,完成如下:完成!…

    2022年4月16日
    686
  • 归并排序算法详细图解_归并排序算法详解

    归并排序算法详细图解_归并排序算法详解一、什么是归并排序1.概念归并排序(Mergesort)是建立在归并操作上的一种有效的排序算法,归并排序对序列的元素进行逐层折半分组,然后从最小分组开始比较排序,合并成一个大的分组,逐层进行,最终所有的元素都是有序的2.算法原理这是一个无序数列:4、5、8、1、7、2、6、3,我们要将它按从小到大排序。按照归并排序的思想,我们要把序列逐层进行拆分序列逐层拆分如下然后从下往上逐层合并,首先对第一层序列1(只包含元素4)和序列2(只包含元素5)进行合并创建一个大序列,序列长度为两个小序列长度

    2022年10月20日
    0
  • c 语言条件运算符,C 语言条件运算符详细讲解

    c 语言条件运算符,C 语言条件运算符详细讲解C语言条件运算符详细讲解如果希望获得两个数中最大的一个,可以使用if语句,例如:if(a>b){max=a;}else{max=b;}不过,C语言提供了一种更加简单的方法,叫做条件运算符,语法格式为:表达式1?表达式2:表达式3条件运算符是C语言中唯一的一个三目运算符,其求值规则为:如果表达式1的值为真,则以表达式2的值作为整个条件表达式的值,否则以表达式3的值作为整…

    2022年10月2日
    0
  • 网站敏感词过滤的实现(附敏感词库)「建议收藏」

    网站敏感词过滤的实现(附敏感词库)「建议收藏」现在基本上所有的网站都需要设置敏感词过滤,似乎已经成了一个网站的标配,如果你的网站没有,或者你没有做相应的处理,那么小心相关部门请你喝茶哦。最近在调研Javaweb网站的敏感词过滤的实现,网上找了相关资料,经过我的验证,把我的调研结果写出来,供大家参考。一、敏感词过滤工具类把敏感词词库内容加载到ArrayList集合中,通过双层循环,查找与敏感词列表相匹配的字符串,如果找到以*号替换…

    2022年6月12日
    52

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号