Month: August 2018

Duelist’s Crackme #3 算法分析

系统 : Windows xp 程序 :skilLa’s_keyGenMe#3 程序下载地址 : https://www.dreamcracker.online/d/93572bfed8124e798eab/files/?p=/Crack_Me/due-cm3.rar 要求 : 写出注册机 使用工具 :OD,IDA,eXeScope 可在看雪论坛中查找关于此程序的讨论:传送门   将程序投入OD、按下F9运行,发现这个CM很奇怪,有2*9个checkbox,再用字符串查找发现如下字符: 中文搜索引擎, 条目 3 地址=0040117B 反汇编=push due-cm3.00402017 文本字符串=Congratulations! Please send a screenshot of your solution to duelist@beer.com! 定位到关键代码,然后用IDA生成伪代码: INT_PTR __stdcall DialogFunc(HWND hDlg, UINT a2, WPARAM a3, LPARAM a4) { INT_PTR result; // eax@4 int v5; // esi@7 int v6; […]

skilLa’s_keyGenMe#3 算法分析

系统 : Windows xp 程序 :skilLa’s_keyGenMe#3 程序下载地址 : https://www.dreamcracker.online/d/93572bfed8124e798eab/files/?p=/Crack_Me/s_keygenme%233.rar 要求 : 写出注册机 使用工具 :OD,IDA 可在看雪论坛中查找关于此程序的讨论:传送门   将程序投入OD、按下F9运行,发现是一个标准的CM,通过输入用户名和密码判断是否有效。在用字符串查找发现如下字符: 中文搜索引擎, 条目 6 地址=0040115C 反汇编=push skilLa’s.0040302A 文本字符串=Goodboy, now write a keygen 查找到引用此字符串的相关代码段,经过修饰的伪代码如下: INT_PTR __thiscall DialogFunc(char *this, HWND hDlg, UINT a3, WPARAM a4, LPARAM a5) { CHAR v5; // t1@6 int (*v6)(); // eax@12 int v7; // ebx@13 if […]

《第一行代码 Android》 读书笔记

第一章 开始启程,你的第一行android代码 Android是目前世界上市场占有率最高的移动操作系统。 系统架构 1.linux 内核层 Android系统基于linux2.6内核。这一层为Android设备的各种硬件提供了底层驱动。 2.系统 运行库层 这一层通过一些 C/C++ 库为Android系统提供了主要的特性支持。 3.应用框架层 主要提供了各种API。 4.应用层 所有应用程序属于这层。 四大组件 活动 (Activity)、服务(Service)、广播接收器(Broadcast Receiver)、内容提供器(Content Provider)。   编译环境 Android stdio是google推出的一个集成开发环境。是自动化程度较高的一款IDE,对于硬盘空间有一定要求,最好在安装前在系统盘预留10-20G的空闲空间。   logcat是便于用户调试的日志工具,Android stdio中集成了这个工具,只需要写下log调试代码,运行程序时相关记录就会输出在日志窗口。 AVD manager 是管理虚拟移动设备的工具。可以构造任意的安卓模拟器,在配置较低的机器上运行流畅度不高,存在兼容性问题导致无法持久稳定运行。 第二章 先从看得到的入手 探究活动 活动(Activity)是一种可以包含用户界面的组件,主语用于与用户交互。是应用界面与响应用户互动的消息函数的集合。任何活动必须先要在AndroidManifest.xml文件中注册才可以生效。   活动的状态 1.运行状态 当一个活动位于返回栈的栈顶时,这时活动就处于运行状态。系统最不愿意回收的就是出于运行状态的活动,因为这会带来非常差的用户体验。 2.暂停状态 当一个活动不再处于栈顶位置,但仍然可见时,这时活动就进入了暂停状态时。 3.停止状态 当一个活动不再处于栈顶位置,且完全不可见时,就进入了停止状态。当其他地方需要内存时,处于停止状态的活动有可能会被系统回收。 4.销毁状态 当一个活动从返回栈中弹出后就变成了销毁状态。   活动的启动模式 1.standard 默认模式,按照标准的返回栈运作。 2.single top 当启动新活动时如果发现返回栈的栈顶已经是该活动,则认为可以直接使用它,不会创建新的活动实例。 3.single task 活动在整个返回栈中只有一份实例。 […]

CuTeEvil Crackme 2 算法分析

系统 : Windows xp 程序 :CuTeEvil Crackme 2 程序下载地址 : https://www.dreamcracker.online/d/93572bfed8124e798eab/files/?p=/Crack_Me/crckme2.rar 要求 : 写出注册机 使用工具 :OD,IDA 可在看雪论坛中查找关于此程序的讨论:传送门   将程序载入IDA,发现左边函数列表中有start,双击后F5查看: void __noreturn start() { WPARAM v0; // eax@2 hInstance = GetModuleHandleA(0); GetCommandLineA(); InitCommonControls(); v0 = sub_401031(hInstance, 0, dword_403228, 10); ExitProcess(v0); } 查看 sub_401031函数 WPARAM __stdcall sub_401031(HINSTANCE a1, int a2, int a3, int a4) { struct tagMSG […]