吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 8017|回复: 105

[原创逆向图文] ida分析一个易语言登陆程序

  [复制链接]
白云点缀的蓝 发表于 2021-8-6 18:45 | 显示全部楼层 |阅读模式

这次的教程是用ida来逆向分析一个易语言exe程序
这个是我简单写的一个易语言登陆校验
[ecode=1=0].版本 2

.程序集 窗口程序集_启动窗口

.子程序 _登陆_被单击


.如果真 (登陆校验 (编辑框1.内容, 编辑框2.内容))
    _启动窗口.可视 = 假
    载入 (窗口1, , 真)
.如果真结束


.子程序 登陆校验, 逻辑型
.参数 用户名, 文本型
.参数 密码, 文本型

.如果真 (用户名 = “starry” 且 密码 = “starry”)
    返回 (真)
.如果真结束
返回 (假)

[/ecode]
我们打开ida,把exe文件拖入ida
图片1.png

默认即可
点击ok
箭头位置表示他正在分析,分析完成后会自动消失
图片 2.png

这次的教程是动态调试,我们选择Local windows Debugger

图片 3.png

点击绿色的这个运行即可
点击yes即可

图片 4.png
提示下面这个,我们直接点yes

图片 1.png

下面这些就是寄存器


图片 5.png

图片 6.png

堆栈区

图片 7.png

数据区

图片 8.png

代码区,也就是汇编代码的显示
图片 9.png
按键盘上的空格可以放大
图片 10.png

tab键或者F5可以把汇编转为c伪代码
图片 11.png

生成字符串
图片 12.png

图片 13.png
稍等片刻
下面箭头位置是进度
完成后,就会自动消失

图片 14.png

这些就是字符串,类似od的字符串搜索

图片 15.png

我们直接看登陆校验,如果输入的用户名与密码都等于starry就会返回真
[ecode=1=0].版本 2

.子程序 登陆校验, 逻辑型
.参数 用户名, 文本型
.参数 密码, 文本型

.如果真 (用户名 = “starry” 且 密码 = “starry”)
    返回 (真)
.如果真结束
返回 (假)
[/ecode]
如果返回真,那么执行载入登陆成功的窗口
[ecode=1=0].版本 2

.子程序 _登陆_被单击


.如果真 (登陆校验 (编辑框1.内容, 编辑框2.内容))
_启动窗口.可视 = 假
载入 (窗口1, , 真)
.如果真结束

[/ecode]

我们可以在ida中搜索starry

图片 18.png

然后双击搜索到的starry字符串
右键查看是哪个代码引用了这个starry
图片 16.png

Push就是引用这个starry的地方
Sub开头的这个就是函数,ida处理分析的

图片 17.png

我们双击点击进入
360截图20210806182317906.jpg
然后我们按tab键,把汇编代码转为c代码,F5也行

360截图20210806182328713.jpg

转为c代码后为如下

[C++] 纯文本查看 复制代码
BOOL __stdcall sub_40116A(__int16 **a1, __int16 **a2)
{
  return !sub_4010CD(*a1, "starry") && !sub_4010CD(*a2, "starry");
}
函数的返回值为BOOL类型,调用规范__stdcall ,函数名sub_40116A,
参数__int16 **a1, __int16 **a2,参数是一个二级指针,
这个函数实际上就是那个登陆校验函数
return !sub_4010CD(*a1, "starry") && !sub_4010CD(*a2, "starry");
调用sub_4010CD函数,传入的第一个参数为我们输入的账号*a1*a2为密码
!这个叹号是取反的意思,如果为真那么“!真”就是假,&&这个是判断,如果两边同时为真,那么返回就为真,有一边为假,后面的函数就不执行了
!sub_4010CD(*a1, "starry") 如果这个函数返回值为假,
那么!sub_4010CD(*a2, "starry");就不执行
我们看看是哪个函数调用了这个登陆校验
我们同样右键找引用
图片 19.png
可以看到只有一个函数调用了这个登陆校验函数,那么这个函数应该就是登陆按钮点击后调用的函数了

图片 20.png

我们同样双击进入
图片 21.png

[C++] 纯文本查看 复制代码
  lpMem = (LPVOID)sub_401236(1375797249, (LPCSTR)0x16010003, 8, -1);//获取用户名

  v2 = (LPVOID)sub_401236(1375797249, (LPCSTR)0x16010004, 8, -1);//获取密码

//然后把用户名和密码分别给lpMem变量,v2变量

result = sub_40116A((__int16 **)&lpMem, (__int16 **)&v2);

//然后调用登陆校验函数,返回值给result

v1 = result;

//然后把result给v1

 if ( v1 )

  {

    sub_40122A((HWND)0x52010001, byte_6010000, 5, -1, 0, 0);

    result = sub_401224(3, 1375797266, 100728849, 65537, 0, 0, 0, 1, 0, -2147483646);

  }

 if ( lpMem ) //如果用户名不为空就调用释放堆内存的函数

    result = sub_401230(lpMem);

  if ( v2 )// 如果密码不为空就调用释放堆内存的函数

 

result = sub_401230(v2);

 

result = sub_401230(lpMem); //这个是释放堆内存

result = sub_401230(v2);//这个是释放堆内存

//是否释放成功给result变量

 

//判断v1是否为真,如果为真,那么执行载入窗口的函数

(HWND)0x52010001//这个就是窗口句柄

 sub_40122A((HWND)0x52010001, byte_6010000, 5, -1, 0, 0);

 result = sub_401224(3, 1375797266, 100728849, 65537, 0, 0, 0, 1, 0, -2147483646);
这两句的代码对应
[ecode=1=0].版本 2

    _启动窗口.可视 = 假
    载入 (窗口1, , 真)
[/ecode]

下面我们断点调试
单击圆点即可下断
图片 22.png
然后我们点击登陆

可以看到断下来了,看到颜色变了,红色变为了下面这个颜色,代表断下来了,代码执行到了这个位置
我们看看v1是什么,
图片 23.png
可以看到v1他是0所以,就不执行下面的代码

图片 24.png
F8为步过
F7为步入
Ctrl+F7为执行到return
F4为运行到指定位置,也就是鼠标指定的位置

图片 25.png

F8后执行到了return result位置
同时我们下断点的位置变为了红色,代表我们没执行到那个位置
图片 26.png

[C++] 纯文本查看 复制代码
 result = sub_40116A((__int16 **)&lpMem, (__int16 **)&v2);

  v1 = result;
从上面的代码,我们知道v1result给的
我们就在result位置下断,然后修改result的值试试
点击这个绿色的箭头就让他运行,不继续向下单步执行
图片 27.png

result赋值位置下断,也就是第10行,下面这个代表行数
图片 29.png
图片 28.png
下断后,我们点击登陆,断在了如下位置

图片 30.png

断下后,我们查看一下result的值是在哪个寄存器,
可以看到在eax,我们可以把eax改为1
就可以登陆成功

图片 31.png

我们双击eax寄存器后面的值,把他改为1

图片 32.png

图片 33.png
然后点击ok

可以看到变为了1
图片 34.png

我们F8单步
不好意思,我们应该执行完第10行后改eax才行,因为还没执行登陆校验函数
所以你提前改的话,会把原来改的值覆盖

图片 35.png

改完后,点击绿色的运行箭头,可以看到登陆成功了
图片 36.png

下面我们试试改汇编代码,达到登陆成功的目的
我们双击进入登陆校验函数,然后按tab键,转为汇编
我们修改一下汇编代码为如下代码
[Asm] 纯文本查看 复制代码
Mov eax,1  //    因为函数的返回值在eax,所以我们给eax赋值

retn  //返回

这里我用到的补丁插件是keypatch

下载地址:IDA Patch补丁工具
https://www.52hb.com/thread-51596-1-1.html
(出处: 吾爱汇编论坛)
图片 37.png
图片 38.png
图片 39.png

改好后,我们点击patch

动态调试时代码可能显示有问题,可能不会显示为我们改的汇编代码

360截图20210806184115854.jpg

我们可以先按D把代码变为数据,然后按c把数据变为code即可
D就是DataC就是Code
下面是按D然后按C后的显示效果
图片 2.png
我们再次点击登陆试试
可以看到登陆成功了,
图片 3.png

好的,分析到此结束

图片 36.png
图片 2.png

评分

参与人数 57威望 +1 HB +162 THX +27 收起 理由
再来壹瓶 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
longge188 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
iebaye + 1
虚心学习 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
1157141823 + 6 + 1
sjtkxy + 1 + 1
创客者V2.0 + 1
459121520 + 1
后学真 + 1
菜而爱玩 + 1
消逝的过去 + 2
冷亦飞 + 1
飞刀梦想 + 1
车太震 + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
你是我的小喵喵 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
a6855569 + 2
zyyujq + 1 + 1
武清一点点 + 1
abellixun + 2 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
无影无踪 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
hotD + 2 + 1
XiaoWeiSec + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
海底十万里 + 1 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
我是好人 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
小声点我布隆 + 1
大鹏展翅 + 1
xmwd123 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
playboy + 2
ldljlzw + 1
zwj00544 + 1
ghostxu + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
firstcmm + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
Hackers + 1 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
mckwap + 2 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
成丰羽 + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
zxjzzh + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
langzill + 1
hetao8003200 + 1
lai1124 + 1 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
6378895 + 2 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
bnjzzheng + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
谈心123 + 1
cyhcuichao + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
baoyue + 1
CraftDeadMRC + 1
liugu0hai + 1 + 1 [快捷评语]--吃水不忘打井人,给个评分懂感恩!
mengzhisuoliu + 1
king51999 + 1 [快捷评语]--你将受到所有人的崇拜!
lies + 1
temp + 1

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| 白云点缀的蓝 发表于 2021-8-6 18:56 | 显示全部楼层

视频版链接:ida逆向分析一个简单易语言程序https://www.52hb.com/thread-51804-1-1.html
(出处: 吾爱汇编论坛)



吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
192939 发表于 2021-8-6 18:57 | 显示全部楼层

你将受到所有人的崇拜!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| 白云点缀的蓝 发表于 2021-8-6 19:02 | 显示全部楼层

192939 发表于 2021-8-6 18:57
你将受到所有人的崇拜!

这个教程其实已经包含了基础知识,很详细的,就差你去实践练熟了
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
pizazzboy 发表于 2021-8-6 19:59 | 显示全部楼层

谢谢楼主的精彩教程,IDA的教程好少的。
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
lies 发表于 2021-8-7 00:33 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
mengzhisuoliu 发表于 2021-11-8 14:19 | 显示全部楼层

学习了,希望分享更多IDA的教程
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
消逝的过去 发表于 2021-11-15 22:52 | 显示全部楼层

点赞支持一下
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
1470214701 发表于 2021-11-16 03:32 | 显示全部楼层

谢谢分享   
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
ldgjzx211 发表于 2021-12-2 16:29 | 显示全部楼层

很好的教程,我看了一定加强学习
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表