160 - 54 eKH

环境:windows xp

工具:
1、OllyDBG
2、IDA
3、exeinfo

查壳发现是程序无壳且用Delphi语言编写

可以通过搜索字符串的方式定位关键函数地址
这里定位到是

00427B44
ReadInput(a2, &v17);                          // 读取输入的usernameif ( StrLen(v17) >= 1                         // 判断username长度是否大于等于1&& (v5 = *(_DWORD *)(v2 + 492),ReadInput(v4,&v17),                                // 获取输入的serialserial = v17,v7 = *(_DWORD *)(v2 + 476),ReadInput(v8,&username),                           // 获取输入的usernameKeyFun_427A20(username, serial) >= 12345678) )// 判断这个几个条件是否符合要求{v10 = (HWND)sub_4199FC();MessageBoxA_0(v10, "Congratulation ! You've Did It.\rMail Us : ekhmail@egroups.com", "Success", 0);}else{v9 = (HWND)sub_4199FC();MessageBoxA_0(v9, "Wrong Serial Number !", "ERROR", 0);}

可以看出程序判断输入的username是否为空后就进KeyFun函数进行判断了,当KeyFun函数返回值大于等于12345678时才能得到正确结果

KeyFun:

  v4 = StrLen(username);if ( v4 > 0 ){v5 = 1;do{v6 = v5;v7 = *(_BYTE *)(username + v5 - 1);       // 遍历每个字符v8 = __OFADD__(v7, v2);v9 = v7 + v2;if ( v8 )                                 // 判断这个字符是不是0v5 = sub_402A30(v19, v20, v21);v3 = off_428880;                          // LANNYDIBANDINGINANAKEKHYANGNGENTOTv2 = (unsigned __int8)off_428880[v6 - 1] | (v9 << 8);if ( v2 < 0 )                             // 如果移动后是负数{v10 = -v2;                              // 取绝对值if ( (unsigned __int64)-(signed __int64)v2 >> 32 )v5 = sub_402A30(v19, v20, v21);v2 = v10;}++v5;--v4;}while ( v4 );                               // 循环次数为username长度}v11 = v2 ^ 0x12345678;                     //上面就是利用username来计算出v11sub_4063F4(v3, &v22);v12 = StrLen(v22);                            // serial长度if ( v12 > 0 ){do{_EDX = v11 % 10;                          //这里是计算v11的每一位数字,得到该数字为下标所对应字符,将所有对应的组合起来就是serial__asm { bound   edx, qword_427B3C }LOBYTE(_EDX) = byte_428884[v11 % 10];     // LANNY5646521sub_4036D8(10, _EDX);sub_4037B8(v14, v22);v11 /= 10;--v12;}while ( v12 );}flag = strcmp(v23, serial);if ( flag )                                   // flagv16 = 12345678;elsev16 = 1234577;v17 = v21;__writefsdword(0, v19);v21 = (int *)&loc_427B31;sub_403558(v17, 4);return v16;

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/376266.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

点赚接口(第二版)

1.查看是否有新消息 url&#xff1a;/get/message/status?user_id{user_id} method&#xff1a;get response&#xff1a; {"code": "ok","msg": "","data": 0 //新消息数目 } 2.获取消息列表 url&#xff1a;/get/messa…

Java基础之线程——使用Runnable接口(JumbleNames)

控制台程序。 除了定义Thread新的子类外&#xff0c;还可以在类中实现Runnable接口。您会发现这比从Thread类派生子类更方便&#xff0c;因为在实现Runnable接口时可以从不是Thread的类派生子类&#xff0c;并且仍然表示线程。Java只允许有单个基类&#xff0c;如果类派生于Thr…

cpri带宽不足的解决方法_白皮书:FPGA赋能下一代通信和网络解决方案(第四部分)...

对PCIe Gen 5的支持除了以太网和存储控制器&#xff0c;Speedster7t FPGA上提供的对PCIe Gen 5的支持还能够与主机处理器紧密集成&#xff0c;以支持诸如sidecar智能网卡(SmartNIC)设计等高性能加速器应用。PCI Gen 5控制器使其能够读取和写入存储在FPGA内存层级结构中的数据&a…

laravel里面使用event

模式&#xff1a;大概是通过一个自定义的event&#xff0c;一个handler&#xff0c;还有一个binder&#xff0c;然后用来简化通知模型 生成自定义的event ./artisan make:event MyEvent 生成自定义的handler ./artisan handler:event MyEventHandler --eventMyEvent 然后在Even…

C语言的条件编译#if, #elif, #else, #endif、#ifdef, #ifndef

有些程序在调试、兼容性、平台移植等情况下可能想要通过简单地设置一些参数就生成一个不同的软件&#xff0c;这当然可以通过变量设置&#xff0c;把所有可能用到的代码都写进去&#xff0c;在初始化时配置&#xff0c;但在不同的情况下可能只用到一部分代码&#xff0c;就没必…

山体等高线怎么看_每日一题 | 此处向斜山,你看出来了吗?

每日一题 | 此处向斜山&#xff0c;你看出来了吗&#xff1f;(2018江苏高考)如图为某区域地质简图。该区沉积地层有Q、P、C、D、S2、S1&#xff0c;其年代依次变老。读图回答1&#xff5e;2题。1&#xff0e;从甲地到乙地的地形地质剖面示意图是(  )2&#xff0e;为揭示深部地…

cmake The source directory xxxx does not appear to contain CMakeLists.txt

执行 cmake . 的时候报错&#xff1a; The source directory “xxxx” does not appear to contain CMakeLists.txt 简单来说就是当前文件夹里面没有 CMakeLists.txt

SSH出错--hibernate--org.hibernate.hql.ast.QuerySyntaxException: User is not mapped [from User]

String queryString "from user where u.userName ? and u.userPassword ?"; ----------------------------------------------------------- 改为&#xff1a; String queryString "from User where u.userName ? and u.userPassword ?"; 我估…

Linux下的tar压缩解压缩命令详解

tar -c: 建立压缩档案-x&#xff1a;解压-t&#xff1a;查看内容-r&#xff1a;向压缩归档文件末尾追加文件-u&#xff1a;更新原压缩包中的文件 这五个是独立的命令&#xff0c;压缩解压都要用到其中一个&#xff0c;可以和别的命令连用但只能用其中一个。下面的参数是根据需要…

java和c++的区别大吗_大空间消防水炮ZDMS0.8/30S坐装和吊装有区别吗?

大空间消防水炮现在是高大建筑的消防必备的设备之一&#xff0c;其型号按照流量可分为4种&#xff0c;ZDMS0.6/5S&#xff0c;ZDMS0.6/10S&#xff0c;SZDMS0.8/20S&#xff0c;ZDMS0.8/30S。在这中间使用较多的是5L和30L的&#xff0c;5L的消防水炮都是吊装&#xff0c;但是30…

Windows Hook(1)加载DLL

DLL代码 #include <Windows.h> BOOL APIENTRY DllMain( HMODULE hModule,DWORD ul_reason_for_call,LPVOID lpReserved) {switch (ul_reason_for_call){case DLL_PROCESS_ATTACH:MessageBox(NULL, L"dllHook", L"Hook", MB_OK);break;case DLL_THR…

WPF Delegate委托整理

那啥&#xff0c;是从这里整理出来的&#xff0c;感谢Rising_Sun&#xff0c;整理的过于简单&#xff0c;看不明白的戳这里 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; us…

silverligh的数据访问

对于在Silverlight中访问数据&#xff0c;初学者的误解之一就是他们在Silverlight中寻找ADO.NET类库。别找了&#xff0c;找不到的。记住&#xff0c;Silverlight是部署在互联网上的客端技术&#xff0c;你不能要求一个浏览器插件去直接访问你的数据库……除非你想把数据库直接…

cacheinterceptor第二次访问没被调用_访问者设计模式在OSG中的应用

为什么要谈谈访问者设计模式呢&#xff1f;因为OSG整个引擎就是用访问者设计模式建立起来的&#xff0c;不论是遍历节点图&#xff0c;还是做各种实用的功能&#xff0c;都需要大量的用到访问者设计模式。先谈谈访问者设计模式的定义。1&#xff1a;什么是访问者模式访问者模式…

Windows Hook(2)调用DLL函数

DLL代码 #include <Windows.h>BOOL APIENTRY DllMain( HMODULE hModule,DWORD ul_reason_for_call,LPVOID lpReserved) {switch (ul_reason_for_call){case DLL_PROCESS_ATTACH:MessageBox(NULL, L"dllHook", L"Hook", MB_OK);break;case DLL_THRE…

HDU4678_Mine

很有意思&#xff0c;很好的题目。 这样的&#xff0c;一个n*m的扫雷地图&#xff0c;告诉你哪些地方是有雷的。一个人如果点在了空白处&#xff0c;那么与其相邻的&#xff08;八个方向&#xff09;的数字以及空白都会递归地显示出来&#xff0c;如果点在数字上面&#xff0c;…

pygame只能编写游戏_游戏框架搭建

游戏框架搭建目标 —— 使用 面相对象 设计 飞机大战游戏类目标明确主程序职责实现主程序类准备游戏精灵组01. 明确主程序职责回顾 快速入门案例&#xff0c;一个游戏主程序的 职责 可以分为两个部分&#xff1a;游戏初始化游戏循环根据明确的职责&#xff0c;设计 PlaneGame 类…

周末阅读:本周热门文章排行榜

那道不清说不尽的故事 iPhone 的创意并非来自乔布斯一人&#xff0c;其起源可以追溯到 Jony 的设计团队对多点触控屏幕的思考和探索&#xff0c;也正是因为对这个技术的看好&#xff0c;在对其在手机上的可行新的不断测试后&#xff0c;苹果最后下定决心进军手机领域。这篇文章…

python3 hash算法使用

python3下的pycryptodome库 from Crypto.cipher import * if __name__ __main__:message 123#MD5和SHA的用法差不多print("SHA3_512: " SHA3_512.new(message.encode(utf-8)).digest().hex())print("SHA512: " SHA512.new(message.encode(utf-8)).dig…

poj3335 半平面交

题意&#xff1a;给出一多边形。判断多边形是否存在一点&#xff0c;使得多边形边界上的所有点都能看见该点。 sol&#xff1a;在纸上随手画画就可以找出规律&#xff1a;按逆时针顺序连接所有点。然后找出这些line的半平面交。 题中给出的点已经按顺时针排好序了&#xff0c;所…