本帖最后由 晴雯晴雯 于 2019-5-16 11:51 编辑
一、程序
置入代码 ({ 235, 254, 235, 254, 235, 254 })的作用是起一个标志,方便在反汇编中查看。如下图
这就是汇编中看到的,程序会在执行到此处进入死循环。在实际调试中可以修改为nop来跳过
二、加载核心库
程序只有一个按钮和一个文本框,点击弹出信息框,F7编译(非静态编译或独立编译)
看到程序调用了sub_40108E
sub_4011E4用来获取程序运行的argv[0](程序运行的全路径),并且返回路径(不包括程序名)。
v0 = lstrcatA(String1, "krnln.fnr");将krnln.fnr拼接到路径后面
v1 = LoadLibraryA(v0);载入指定的动态链接库
如果当前路径不存在krnln.fnr那么就去zc表读取易语言安装路径的lib
RegOpenKeyExA(HKEY_CURRENT_USER, "Software\\FlySky\\E\\Install", 0, 0x20019u, &phkResult)
随后调用核心库中的GetNewSock(1000)函数
IDA打开krnln.fnr
此时采用x32dbg动态调试
下面的00401175 call eax就是要进入krnln.fnr中的GetNewSock(1000)函数了,完成一些初始化操作。
三、快速定位功能主要参考第一个连接的帖子
程序开头会进入一个函数,按F7进去
在call eax这里按F4执行到这里,F7进去,这里将要进入krnln.fnr执行初始化
在图中所示call krnln.1B9DC3F处按F4,再按F7进入
下方有一个call eax,这里将离开krnln返回exe中,完成初始化。直接在这里按F4、F7返回。
返回地址的上方就是我们自己写的代码的汇编,由于我们设计了标志,可以方便的找到。
接下来就可以分析了。这里可以看附件(附件来自无名侠的帖子)
参考:
https://www.52pojie.cn/forum.php ... e=1&authorid=165876
https://bbs.pediy.com/attach-download-99227.htm 无名侠(看雪,精易,鱼 C)
附件
易逆向.zip
(454.14 KB, 下载次数: 20)
|