Latest writings
上线能跑,本地一跑就崩——一个 Rust 项目给我上的六堂课
LOL-AI-Intelligence 开发过程中遇到的六个问题:async/blocking 边界、debug assertion 陷阱、UI 架构重构、错误处理、国际化和 line ending。每个都是踩出来的。
eFootball 爬虫技术拆解:从 JA3 到 Cookie 大法
我的 eFootball 球员数据爬虫是怎么从 38,000 次请求砍到 1,177 次的——TLS 指纹伪装、Perlin 噪声限速、熔断退避,以及那个救了命的 cookie 发现。
eFootball Player.bin 逆向手记:四次翻车教会我的事
从 FF 模式丢技能、编辑器搜不到球员、到 CSV 验证假警报——记录 eFootball 球员数据逆向中踩过的四个坑,以及它们背后的教训。
从被封到极速:一次爬虫对抗实录
目标:把 pesdb.net 上全部 37,650 张球员卡片的数据爬下来。从 TLS 指纹暴露、多线程崩溃、到发现一行 Cookie 省掉 97% 请求——完整记录一次反反爬实战。
AI 能客观吗?别闹了,它连「看到什么」都不是自己选的
很多人觉得 AI 是绝对理性的存在,比人类更中立、更没有情绪。但问题是——AI 学到的从来都不是真实世界,而是人类允许它看到的世界。
一个大小写问题,让我 debug 了一整个下午
用 Tauri + Rust 做的 LoL 桌面助手,技能数值全部显示为 0。排查了数据层、前端、后端,最后发现 bug 藏在一行 HashMap 的 key 里。
Selected projects
eFootball Research Platform
Reverse-engineered a 14.7MB binary. Cracked 26 abilities, 63 skill bits, 6 AI styles, Form/Injury. Python GUI editor + scraper extracting 37,650+ player records.
PESDB Large-Scale Scraper
TLS impersonation scraping with curl_cffi Chrome fingerprinting, Perlin-noise rate limiting, and cookie injection — 97% request reduction.
League of Legends Desktop Assistant
CS2 Tournament Database
Hey, I'm Jiahao Ren.
I'm a Computer Science student at the University of Waikato. I enjoy figuring out how systems work — recently, that has meant reverse engineering eFootball player data, building AI-powered tools, and turning failed experiments into blog posts.
I don't just list technologies — I build complete pipelines: reverse engineering binary formats, scraping 37K+ records with anti-detection tooling, modeling tournament databases, and shipping desktop apps to real users. When something breaks, I write about it.
Skills & Tools
Get in touch
Feel free to reach out about projects, tech stacks, or dev workflows.